From 1fc5510367dcf321ac85e50e31c9dcdaaf5cd09e Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 21 Dec 2022 11:56:27 +0800
Subject: [PATCH] 20221221

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java |   80 +++++++++++++++++++---------------------
 1 files changed, 38 insertions(+), 42 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index 113348b..040638a 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -69,6 +69,7 @@
     private final MallShoppingCartMapper mallShoppingCartMapper;
     private final IApiMallMemberService memberService;
     private final IMallMoneyFlowService mallMoneyFlowService;
+    private final MallMoneyFlowMapper mallMoneyFlowMapper;
     private final RedisUtils redisUtils;
 
     private final AgentProducer agentProducer;
@@ -131,7 +132,8 @@
 //        orderInfo.setLongitude(address.getLongitude());
         orderInfo.setRemark(addOrderDto.getRemark());
         orderInfo.setOrderType(addOrderDto.getOrderType());
-
+        //补贴金额
+        orderInfo.setSubsidyAmount(goods.getSubsidyAmount());
         if (CollUtil.isEmpty(addOrderDto.getItems())) {
             throw new FebsException("参数错误");
         }
@@ -285,10 +287,11 @@
         if (OrderStatusEnum.WAIT_PAY.getValue() != orderInfo.getStatus()) {
             throw new FebsException("订单状态不能支付");
         }
-
+        String type = payOrderDto.getType();
+        type = type == "3" ? type : "3";
         String payResultStr = "";
         String rcResult = "";
-        switch (payOrderDto.getType()) {
+        switch (type) {
             case "1":
                 UnipayDto unipayDtoWx = new UnipayDto();
 //                unipayDto.setAmount(new BigDecimal("0.01"));
@@ -361,46 +364,22 @@
                 orderInfo.setPayTime(new Date());
                 orderInfo.setPayResult("1");
 
-//                boolean hasTc = false;
-                // 静态倍数
-//                List<MallOrderItem> orderItems = this.baseMapper.getMallOrderItemByOrderId(orderInfo.getId());
-//                if (CollUtil.isNotEmpty(orderItems)) {
-//                    for (MallOrderItem orderItem : orderItems) {
-//                        MallGoods mallGoods = mallGoodsMapper.selectById(orderItem.getGoodsId());
-//                        BigDecimal score = BigDecimal.ZERO;
-//                        MallGoodsSku sku = mallGoodsSkuMapper.selectById(orderItem.getSkuId());
-//                        if (mallGoods.getIsNormal() == 2) {
-//                            hasTc = true;
-//                            score = sku.getPresentPrice().multiply(mallGoods.getStaticMulti()).multiply(new BigDecimal(orderItem.getCnt()));
-////                            BigDecimal staticMulti = mallGoods.getStaticMulti() == null ? BigDecimal.ZERO : mallGoods.getStaticMulti();
-////                            score = sku.getPresentPrice().multiply(staticMulti);
-//                            // 普通商品也及时结算,不再10天结算
-//                        } else {
-//                            score = sku.getPresentPrice();
-//                        }
-//
-//                        if (score.compareTo(BigDecimal.ZERO) > 0) {
-//                            memberWalletService.add(score, member.getId(), "score");
-//                            mallMoneyFlowService.addMoneyFlow(member.getId(), score, MoneyFlowTypeEnum.STATIC_BONUS.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.SCORE.getValue());
-//
-//                            // 添加业绩
-//                            mallAchieveService.add(orderItem.getId());
-//                        }
-//                    }
-//                }
+//                mallMoneyFlowService.addMoneyFlow(member.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue());
+                /**
+                 * 生成下单的流水记录
+                 */
+                Long payFlowId = mallMoneyFlowService.addMoneyFlow(
+                        member.getId(),
+                        orderInfo.getOrderNo(),
+                        orderInfo.getAmount().negate().setScale(2, BigDecimal.ROUND_DOWN),
+                        MallMoneyFlowTypeEnum.PAY.getCode(),
+                        MallMoneyFlow.STATUS_SUCCESS,
+                        MallMoneyFlow.IS_RETURN_N,
+                        member.getId(),
+                        FlowTypeEnum.BALANCE.getValue(),
+                        MallMoneyFlowTypeEnum.PAY.getName()
+                );
 
-                // 购买套餐后,升级为普通会员
-//                if (hasTc) {
-//                    MallMember mallMember = memberMapper.selectById(member.getId());
-//                    if (AgentLevelEnum.ZERO_LEVEL.name().equals(mallMember.getLevel())) {
-//                        mallMember.setLevel(AgentLevelEnum.FIRST_LEVEL.name());
-//                        memberMapper.updateById(mallMember);
-//                    }
-//                }
-
-                mallMoneyFlowService.addMoneyFlow(member.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue());
-//                agentProducer.sendAutoLevelUpMsg(member.getId());
-//                agentProducer.sendOrderReturn(orderInfo.getId());
                 break;
             case "4":
                 if (orderInfo.getOrderType() != 2) {
@@ -600,6 +579,23 @@
         orderInfo.setStatus(OrderStatusEnum.FINISH.getValue());
         orderInfo.setReceivingTime(new Date());
         this.baseMapper.updateById(orderInfo);
+        /**
+         * 通过支付流水记录,返回下单金额
+         */
+        MallMoneyFlow payFlow = mallMoneyFlowMapper.selectOneByMemberIdAndOrderNoAndTypeAndStatusAndIsReturn(
+                member.getId(),
+                orderInfo.getOrderNo(),
+                MallMoneyFlowTypeEnum.PAY.getCode(),
+                MallMoneyFlow.STATUS_SUCCESS,
+                MallMoneyFlow.IS_RETURN_N);
+        if(ObjectUtil.isNotEmpty(payFlow)){
+            memberWalletService.addBalance(payFlow.getAmount().negate(),payFlow.getRtMemberId());
+            payFlow.setIsReturn(MallMoneyFlow.IS_RETURN_Y);
+            mallMoneyFlowMapper.updateById(payFlow);
+        }
+        //产生补贴流水记录
+        agentProducer.sendDirectRewardMsg(orderInfo.getId());
+
     }
 
     @Override

--
Gitblit v1.9.1