From 615b4cba39cc01756d7c0299204cc6ecaf172be5 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Mon, 09 Jan 2023 16:11:38 +0800 Subject: [PATCH] 20221227 充值归集 --- src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java | 153 ++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 121 insertions(+), 32 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java index da38eb6..6716fb0 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java @@ -2,11 +2,15 @@ import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; +import cc.mrbird.febs.common.enumerates.FlowTypeEnum; +import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; +import cc.mrbird.febs.common.utils.RedisUtils; import cc.mrbird.febs.mall.dto.*; import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.mapper.*; import cc.mrbird.febs.mall.service.IAdminMallOrderService; import cc.mrbird.febs.mall.service.IApiMallMemberWalletService; +import cc.mrbird.febs.mall.service.IMallMoneyFlowService; import cc.mrbird.febs.mall.vo.*; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; @@ -19,6 +23,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.List; @Slf4j @@ -39,6 +44,8 @@ private final MallOrderRefundAddressMapper mallOrderRefundAddressMapper; + private final MallGoodsCommentMapper mallGoodsCommentMapper; + private final MallMoneyFlowMapper mallMoneyFlowMapper; private final IApiMallMemberWalletService iApiMallMemberWalletService; @@ -46,6 +53,8 @@ private final MallMemberPaymentMapper mallMemberPaymentMapper; private final DataDictionaryCustomMapper dataDictionaryCustomMapper; + private final IMallMoneyFlowService mallMoneyFlowService; + @Override public IPage<MallOrderInfo> findOrderListInPage(MallOrderInfo mallOrderInfo, QueryRequest request) { @@ -57,6 +66,18 @@ public IPage<AdminMallOrderInfoVo> getOrderListInPage(MallOrderInfoDto mallOrderInfo, QueryRequest request) { Page<AdminMallOrderInfoVo> page = new Page<>(request.getPageNum(), request.getPageSize()); IPage<AdminMallOrderInfoVo> adminMallOrderInfoVos = this.baseMapper.selectOrderListInPage(page, mallOrderInfo); + List<AdminMallOrderInfoVo> records = adminMallOrderInfoVos.getRecords(); + if(CollUtil.isNotEmpty(records)){ + for(AdminMallOrderInfoVo adminMallOrderInfoVo : records){ + Long id = adminMallOrderInfoVo.getId(); + List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectbyOrderId(id); + StringBuffer stringBuffer = new StringBuffer(); + for(MallOrderItem mallOrderItem : mallOrderItemList){ + stringBuffer.append(mallOrderItem.getGoodsName()+"*"+mallOrderItem.getCnt()+";"); + } + adminMallOrderInfoVo.setGoodsName(stringBuffer.toString()); + } + } return adminMallOrderInfoVos; } @@ -98,22 +119,6 @@ @Override public AdminOrderDetailVo getMallOrderDetailById(long id) { AdminOrderDetailVo adminOrderDetailVo = mallOrderInfoMapper.getMallOrderDetailById(id); - MallExpressInfo mallExpressInfo = mallExpressInfoMapper.selectByOrderId(id); - if(ObjectUtil.isNotEmpty(mallExpressInfo)){ - adminOrderDetailVo.setExpressNo(mallExpressInfo.getExpressNo()); - adminOrderDetailVo.setExpressCom(mallExpressInfo.getExpressCom()); - } - List<MallOrderItem> mallOrderItems = mallOrderInfoMapper.getMallOrderItemByOrderId(id); - if(CollUtil.isNotEmpty(mallOrderItems)){ - StringBuffer orderItems = new StringBuffer(); - for (MallOrderItem item : mallOrderItems){ - StringBuffer orderItem = new StringBuffer(); - orderItems.append(item.getGoodsName()+"-"+item.getCnt()+"*"+item.getPrice()+"-合计"+item.getAmount()+"; \n "); - orderItems.append(orderItem); - } - adminOrderDetailVo.setOrderItems(orderItems.toString()); - } - return adminOrderDetailVo; } @@ -149,15 +154,24 @@ mallOrderInfoMapper.updateById(mallOrderInfo); if(!"微信支付".equals(mallOrderInfo.getPayMethod()) && !"支付宝支付".equals(mallOrderInfo.getPayMethod())){ + BigDecimal amount = mallOrderRefund.getAmount(); //用户钱包增加对应的余额 - iApiMallMemberWalletService.addBalance(mallOrderInfo.getAmount(),mallOrderInfo.getMemberId()); - //新增一条资金流水 - MallMoneyFlow mallMoneyFlow = new MallMoneyFlow(); - mallMoneyFlow.setMemberId(mallOrderRefund.getMemberId()); - mallMoneyFlow.setOrderNo(mallOrderInfo.getOrderNo()); - mallMoneyFlow.setType(4); - mallMoneyFlow.setAmount(mallOrderInfo.getAmount()); - mallMoneyFlowMapper.insert(mallMoneyFlow); + iApiMallMemberWalletService.addBalance(amount, mallOrderInfo.getMemberId()); + + mallMoneyFlowService.addMoneyFlow(mallOrderRefund.getMemberId(), amount, MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue()); + + //积分池减少对应的数值 + String redisKey = "scorePool"; + String scorePoolRedis = redisUtils.getString(redisKey); + if(StrUtil.isBlank(scorePoolRedis)){ + redisUtils.set(redisKey,0,0L); + } + BigDecimal scorePoolOld = new BigDecimal(redisUtils.getString(redisKey)); + if(scorePoolOld.compareTo(amount) < 0){ + redisUtils.set(redisKey,0,0L); + }else{ + redisUtils.set(redisKey,scorePoolOld.subtract(amount).intValue(),0L); + } } MallOrderRefundOperation mallOrderRefundOperation = new MallOrderRefundOperation(); @@ -195,6 +209,7 @@ return new FebsResponse().success(); } + private final RedisUtils redisUtils; @Override public FebsResponse refundConfirm(Long id) { MallOrderRefund mallOrderRefund = mallOrderRefundMapper.selectById(id); @@ -221,17 +236,24 @@ mallOrderInfo.setStatus(6); mallOrderInfoMapper.updateById(mallOrderInfo); + BigDecimal refundAmount = mallOrderRefund.getAmount(); //用户钱包增加对应的余额 - iApiMallMemberWalletService.addBalance(mallOrderInfo.getAmount(),mallOrderInfo.getMemberId()); + iApiMallMemberWalletService.addBalance(refundAmount, mallOrderInfo.getMemberId()); + //积分池减少对应的数值 + String redisKey = "scorePool"; + String scorePoolRedis = redisUtils.getString(redisKey); + if(StrUtil.isBlank(scorePoolRedis)){ + redisUtils.set(redisKey,0,0L); + } + BigDecimal scorePoolOld = new BigDecimal(redisUtils.getString(redisKey)); + if(scorePoolOld.compareTo(refundAmount) < 0){ + redisUtils.set(redisKey,0,0L); + }else{ + redisUtils.set(redisKey,scorePoolOld.subtract(refundAmount).intValue(),0L); + } //新增一条资金流水 - MallMoneyFlow mallMoneyFlow = new MallMoneyFlow(); - mallMoneyFlow.setMemberId(mallOrderRefund.getMemberId()); - mallMoneyFlow.setOrderNo(mallOrderInfo.getOrderNo()); - mallMoneyFlow.setType(4); - mallMoneyFlow.setAmount(mallOrderInfo.getAmount()); - mallMoneyFlowMapper.insert(mallMoneyFlow); - + mallMoneyFlowService.addMoneyFlow(mallOrderRefund.getMemberId(), refundAmount, MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue()); return new FebsResponse().success(); } @@ -366,6 +388,73 @@ } @Override + public IPage<AdminMallGoodsCommentVo> getCommentListInPage(AdminMallGoodsCommentDto adminMallGoodsCommentDto, QueryRequest request) { + Page<AdminMallGoodsCommentVo> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<AdminMallGoodsCommentVo> adminMallGoodsCommentVos = mallGoodsCommentMapper.getCommentListInPage(page, adminMallGoodsCommentDto); + return adminMallGoodsCommentVos; + } + + @Override + public FebsResponse showStateSwitchOn(Long id) { + MallGoodsComment mallGoodsComment = mallGoodsCommentMapper.selectById(id); + if (ObjectUtil.isEmpty(mallGoodsComment)) { + return new FebsResponse().fail().message("评论不存在,请刷新当前页面"); + } + mallGoodsComment.setShowState(MallGoodsComment.SHOW_STATE_ENABLE); + mallGoodsCommentMapper.updateById(mallGoodsComment); + return new FebsResponse().success(); + } + + @Override + public FebsResponse showStateSwitchOff(Long id) { + MallGoodsComment mallGoodsComment = mallGoodsCommentMapper.selectById(id); + if (ObjectUtil.isEmpty(mallGoodsComment)) { + return new FebsResponse().fail().message("评论不存在,请刷新当前页面"); + } + mallGoodsComment.setShowState(MallGoodsComment.SHOW_STATE_DISABLED); + mallGoodsCommentMapper.updateById(mallGoodsComment); + return new FebsResponse().success(); + } + + @Override + public FebsResponse delOrder(Long id) { + MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(id); + if(ObjectUtil.isEmpty(mallOrderInfo)){ + return new FebsResponse().fail().message("订单不存在,请刷新重试"); + } + Integer status = mallOrderInfo.getStatus(); + if(status != 7){ + return new FebsResponse().fail().message("订单不是已取消状态"); + } + mallOrderInfoMapper.deleteById(id); + return new FebsResponse().success(); + } + + @Override + public FebsResponse takeGoods(Long id) { + MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(id); + if(ObjectUtil.isEmpty(mallOrderInfo)){ + return new FebsResponse().fail().message("订单不存在,刷新后重试"); + } + Integer status = mallOrderInfo.getStatus(); + if(2 != status){ + return new FebsResponse().fail().message("订单不是待发货状态"); + } + + mallOrderInfo.setStatus(3); + mallOrderInfoMapper.updateById(mallOrderInfo); + return new FebsResponse().success(); + } + + @Override + public IPage<AdminMallMoneyFlowVo> moneyFlow(QueryRequest request, MallOrderInfo mallOrderInfo) { + Page<AdminMallMoneyFlowVo> page = new Page<>(request.getPageNum(), request.getPageSize()); + MallOrderInfo orderInfo = this.baseMapper.selectById(mallOrderInfo.getId()); + IPage<AdminMallMoneyFlowVo> adminMallMoneyFlowVos = mallMoneyFlowMapper.selectOrderMoneyFlowInPage(page, orderInfo); + return adminMallMoneyFlowVos; + } + + @Override public void deliverGoodsByOrderNo(DeliverGoodsDto deliverGoodsDto) { MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectByOrderNo(deliverGoodsDto.getOrderNo()); if (mallOrderInfo == null) { -- Gitblit v1.9.1