From ff549073aeb7d2ff8adaf2e5aa152c631ceb3683 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 22 Dec 2022 14:51:41 +0800
Subject: [PATCH] 20221221

---
 src/test/java/cc/mrbird/febs/ProfitTest.java |  159 +++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 106 insertions(+), 53 deletions(-)

diff --git a/src/test/java/cc/mrbird/febs/ProfitTest.java b/src/test/java/cc/mrbird/febs/ProfitTest.java
index 6d37c66..fb10558 100644
--- a/src/test/java/cc/mrbird/febs/ProfitTest.java
+++ b/src/test/java/cc/mrbird/febs/ProfitTest.java
@@ -1,18 +1,31 @@
 package cc.mrbird.febs;
 
 import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.common.enumerates.MallMoneyFlowTypeEnum;
+import cc.mrbird.febs.common.enumerates.OrderStatusEnum;
+import cc.mrbird.febs.common.exception.FebsException;
+import cc.mrbird.febs.common.utils.AppContants;
+import cc.mrbird.febs.common.utils.LoginUserUtil;
 import cc.mrbird.febs.common.utils.MallUtils;
+import cc.mrbird.febs.mall.entity.MallMember;
+import cc.mrbird.febs.mall.entity.MallMoneyFlow;
+import cc.mrbird.febs.mall.entity.MallOrderInfo;
 import cc.mrbird.febs.mall.entity.MallOrderItem;
+import cc.mrbird.febs.mall.mapper.MallMemberMapper;
+import cc.mrbird.febs.mall.mapper.MallMoneyFlowMapper;
 import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper;
 import cc.mrbird.febs.mall.mapper.MallOrderItemMapper;
 import cc.mrbird.febs.mall.quartz.OrderSettlementJob;
 import cc.mrbird.febs.mall.service.IAgentService;
+import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
 import cc.mrbird.febs.mall.service.IMallAchieveService;
 import cc.mrbird.febs.mall.service.IMemberProfitService;
 import cc.mrbird.febs.pay.model.*;
 import cc.mrbird.febs.pay.service.UnipayService;
 import cc.mrbird.febs.rabbit.consumer.AgentConsumer;
+import cc.mrbird.febs.rabbit.producter.AgentProducer;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
@@ -31,61 +44,101 @@
 @SpringBootTest
 public class ProfitTest {
 
-//    @Autowired
-//    private AgentConsumer agentConsumer;
-//
-//    @Autowired
-//    private IAgentService agentService;
-//
-//    @Autowired
-//    private IMemberProfitService memberProfitService;
-//
+    @Autowired
+    private AgentConsumer agentConsumer;
+
+    @Autowired
+    private IAgentService agentService;
+
+    @Autowired
+    private IMemberProfitService memberProfitService;
+
+    @Test
+    public void dynamicProfit() {
+        memberProfitService.dynamicProfit(21L);
+    }
+    @Test
+    public void agentProfit() {
+        memberProfitService.agentProfit(null);
+    }
+
+
 //    @Test
-//    public void dynamicProfit() {
-//        memberProfitService.dynamicProfit(21L);
+//    public void staticProfit() {
+//        memberProfitService.staticProfit(new Date());
 //    }
-//    @Test
-//    public void agentProfit() {
-//        memberProfitService.agentProfit(null);
-//    }
-//
-//
-////    @Test
-////    public void staticProfit() {
-////        memberProfitService.staticProfit(new Date());
-////    }
-//
-//    @Test
-//    public void thankfulProfit() {
-//        memberProfitService.thankfulProfit(new Date());
-//    }
-//
-//    @Test
-//    public void rankProfit() {
-//        memberProfitService.rankProfit();
-//    }
-//
-//    @Autowired
-//    private MallOrderInfoMapper mallOrderInfoMapper;
-//
-//    @Test
-//    public void directorProfitTest() {
-//        memberProfitService.storeAndDirectorProfit(new Date());
-//    }
-//
-//    @Autowired
-//    private MallOrderItemMapper mallOrderItemMapper;
-//
-//    @Autowired
-//    private IMallAchieveService mallAchieveService;
-//
-//    @Test
-//    public void achieveTest() {
-//        List<MallOrderItem> items = mallOrderItemMapper.selectList(null);
-//        for (MallOrderItem item : items) {
-//            mallAchieveService.add(item.getId());
-//        }
-//    }
+
+    @Test
+    public void thankfulProfit() {
+        memberProfitService.thankfulProfit(new Date());
+    }
+
+    @Test
+    public void rankProfit() {
+        memberProfitService.rankProfit();
+    }
+
+    @Autowired
+    private MallOrderInfoMapper mallOrderInfoMapper;
+
+    @Autowired
+    private MallMemberMapper mallMemberMapper;
+
+    @Autowired
+    private MallMoneyFlowMapper mallMoneyFlowMapper;
+
+    @Autowired
+    private IApiMallMemberWalletService memberWalletService;
+
+    @Autowired
+    private AgentProducer agentProducer;
+
+    @Test
+    public void directorProfitTest() {
+        MallMember member = mallMemberMapper.selectById(1L);
+        MallOrderInfo orderInfo = mallOrderInfoMapper.selectOrderByMemberIdAndId(member.getId(), 577L);
+        if (orderInfo == null || AppContants.DEL_FLAG_Y == orderInfo.getDelFlag()) {
+            throw new FebsException("订单不存在");
+        }
+
+        if (orderInfo.getStatus() != OrderStatusEnum.WAIT_FINISH.getValue()) {
+            throw new FebsException("该状态不能确认收货");
+        }
+
+        orderInfo.setStatus(OrderStatusEnum.FINISH.getValue());
+        orderInfo.setReceivingTime(new Date());
+        mallOrderInfoMapper.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());
+    }
+
+    @Autowired
+    private MallOrderItemMapper mallOrderItemMapper;
+
+    @Autowired
+    private IMallAchieveService mallAchieveService;
+
+    @Test
+    public void achieveTest() {
+        List<MallOrderItem> items = mallOrderItemMapper.selectList(null);
+        for (MallOrderItem item : items) {
+            mallAchieveService.add(item.getId());
+        }
+    }
 //
 //    @Test
 //    public void paramTest() {

--
Gitblit v1.9.1