From 0ca35caa8bb1c58326e5c7760ccfb8ecf003a39a Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Mon, 25 Dec 2023 15:22:13 +0800 Subject: [PATCH] 富文本框输入版本变化 --- src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java | 50 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 46 insertions(+), 4 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java b/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java index c0d2b1d..81840af 100644 --- a/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java +++ b/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java @@ -8,10 +8,7 @@ import cc.mrbird.febs.common.utils.RedisUtils; import cc.mrbird.febs.common.utils.SpringContextHolder; import cc.mrbird.febs.mall.dto.RechargeWalletMessageSendDto; -import cc.mrbird.febs.mall.entity.DataDictionaryCustom; -import cc.mrbird.febs.mall.entity.MallMemberWallet; -import cc.mrbird.febs.mall.entity.MallMoneyFlow; -import cc.mrbird.febs.mall.entity.MallOrderInfo; +import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.mapper.*; import cc.mrbird.febs.mall.service.IApiMallMemberWalletService; import cc.mrbird.febs.pay.model.NotifyData; @@ -51,6 +48,7 @@ import java.math.RoundingMode; import java.util.Date; import java.util.HashMap; +import java.util.List; import java.util.Map; @Slf4j @@ -62,6 +60,12 @@ MallOrderInfoMapper mallOrderInfoMapper; @Autowired MallMoneyFlowMapper mallMoneyFlowMapper; + @Autowired + MallOrderItemMapper mallOrderItemMapper; + @Autowired + MallGoodsMapper mallGoodsMapper; + @Autowired + MallGoodsSkuMapper mallGoodsSkuMapper; @Autowired MallMemberWalletMapper mallMemberWalletMapper; @Autowired @@ -258,7 +262,45 @@ order.setPayTime(new Date()); order.setDeliveryState(OrderDeliveryStateEnum.DELIVERY_WAIT.getValue()); mallOrderInfoMapper.updateById(order); + Long memberId = order.getMemberId(); + MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(memberId); + if(ObjectUtil.isNotEmpty(mallMemberWallet)){ + List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(order.getId()); + if(ObjectUtil.isNotEmpty(mallOrderItemList)){ + /** + * 会员增加积分 + * (现价-成本价)/现价*支付的金额 = 这个商品可以得到的积分 + * 然后累加得到总增加的积分数量 + */ + BigDecimal totalScoreAdd = BigDecimal.ZERO; + for(MallOrderItem mallOrderItem : mallOrderItemList){ + Long skuId = mallOrderItem.getSkuId(); + MallGoodsSku mallGoodsSku = mallGoodsSkuMapper.selectById(skuId); + if(ObjectUtil.isEmpty(mallGoodsSku)){ + continue; + } + BigDecimal presentPrice = mallGoodsSku.getPresentPrice(); + BigDecimal costPrice = mallGoodsSku.getCostPrice(); + BigDecimal subtractPrice = presentPrice.subtract(costPrice);//现价和成本价之间的差价 + if(subtractPrice.compareTo(BigDecimal.ZERO) <= 0){ + continue; + } + BigDecimal multiply = subtractPrice.divide(presentPrice, 2, BigDecimal.ROUND_DOWN).multiply(mallOrderItem.getAmount()); + totalScoreAdd = totalScoreAdd.add(multiply); + } + if(totalScoreAdd.compareTo(BigDecimal.ZERO) <= 0){ + return; + } + BigDecimal bigDecimal = totalScoreAdd.add(mallMemberWallet.getScore()).setScale(2, BigDecimal.ROUND_DOWN); + mallMemberWallet.setScore(bigDecimal); + mallMemberWallet.setBalance(mallMemberWallet.getBalance()); + mallMemberWalletMapper.updateBalanceScoreWithId(mallMemberWallet); + } + } + threadResult.success().message("支付成功"); + + } else { log.info("订单状态不为待付款,order status=", order.getStatus()); } -- Gitblit v1.9.1