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

---
 src/test/java/cc/mrbird/febs/ProfitTest.java |  209 +++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 175 insertions(+), 34 deletions(-)

diff --git a/src/test/java/cc/mrbird/febs/ProfitTest.java b/src/test/java/cc/mrbird/febs/ProfitTest.java
index 21a7b3d..fb10558 100644
--- a/src/test/java/cc/mrbird/febs/ProfitTest.java
+++ b/src/test/java/cc/mrbird/febs/ProfitTest.java
@@ -1,18 +1,37 @@
 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;
 
 import java.math.BigDecimal;
+import java.text.DecimalFormat;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -62,9 +81,49 @@
     @Autowired
     private MallOrderInfoMapper mallOrderInfoMapper;
 
+    @Autowired
+    private MallMemberMapper mallMemberMapper;
+
+    @Autowired
+    private MallMoneyFlowMapper mallMoneyFlowMapper;
+
+    @Autowired
+    private IApiMallMemberWalletService memberWalletService;
+
+    @Autowired
+    private AgentProducer agentProducer;
+
     @Test
     public void directorProfitTest() {
-        memberProfitService.storeAndDirectorProfit(new Date());
+        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
@@ -80,37 +139,119 @@
             mallAchieveService.add(item.getId());
         }
     }
-
-    @Test
-    public void paramTest() {
-        Map<String, Integer> map = new HashMap<>();
-        BigDecimal amount = new BigDecimal("100");
-        map.put("amount", 1);
-        changeAmount(map);
-        System.out.println(map.get("amount"));
-    }
-
-    public void changeAmount(Map<String, Integer> amount) {
-        amount.put("amount", 2);
-    }
-
-    @Test
-    public void scorePool(){
-        memberProfitService.scorePool();
-    }
-
-    @Test
-    public void staticProfit(){
-        memberProfitService.staticProfit(null);
-    }
-
-    @Autowired
-    private OrderSettlementJob orderSettlementJob;
-
-    @Test
-    public void orderSettlementJobTest() {
-//        orderSettlementJob.normalGoodsSettlementJob();
-
-        mallAchieveService.add(83L);
-    }
+//
+//    @Test
+//    public void paramTest() {
+//        Map<String, Integer> map = new HashMap<>();
+//        BigDecimal amount = new BigDecimal("100");
+//        map.put("amount", 1);
+//        changeAmount(map);
+//        System.out.println(map.get("amount"));
+//    }
+//
+//    public void changeAmount(Map<String, Integer> amount) {
+//        amount.put("amount", 2);
+//    }
+//
+//    @Test
+//    public void scorePool(){
+//        memberProfitService.scorePool();
+//    }
+//
+//    @Test
+//    public void staticProfit(){
+//        memberProfitService.staticProfit(null);
+//    }
+//
+//    @Autowired
+//    private OrderSettlementJob orderSettlementJob;
+//
+//    @Test
+//    public void orderSettlementJobTest() {
+////        orderSettlementJob.normalGoodsSettlementJob();
+//
+//        mallAchieveService.add(83L);
+//    }
+//
+//
+//    @Autowired
+//    private UnipayService unipayService;
+//    @Test
+//    public void unipay(){
+//        UnipayDto unipayDto = new UnipayDto();
+//        unipayDto.setAmount(new BigDecimal("0.01"));
+//        unipayDto.setFrpCode("ALIPAY_H5");
+//        unipayDto.setTradeMerchantNo("777180800385820");
+////        unipayDto.setFrpCode("WEIXIN_APP3");
+//        unipayDto.setOrderNo("2022082316415386395");
+//        unipayDto.setProductName("洗护套装");
+//        unipayService.unipay(unipayDto);
+//    }
+//    @Test
+//    public void getAgreeMentPaySms(){
+//        AgreeMentPaySmsDto agreeMentPaySmsDto = new AgreeMentPaySmsDto();
+//        agreeMentPaySmsDto.setOrderNo("2022082617305930328");
+//
+//        BigDecimal value = new BigDecimal("0.1").setScale(2, BigDecimal.ROUND_DOWN);
+//        DecimalFormat decimalFormat = new DecimalFormat("0.00#");
+//        String strVal = decimalFormat.format(value);
+//        agreeMentPaySmsDto.setOrderAmount(new BigDecimal(strVal));
+//        agreeMentPaySmsDto.setName("肖永");
+//        agreeMentPaySmsDto.setCreatedTime(DateUtil.now());
+//        agreeMentPaySmsDto.setIdType("1");
+//        agreeMentPaySmsDto.setIdCardNum("430321199310113713");
+//        agreeMentPaySmsDto.setBankNo("6222031901002389639");
+//        agreeMentPaySmsDto.setPhone("15274802129");
+//        String agreeMentPaySms = unipayService.getAgreeMentPaySms(agreeMentPaySmsDto);
+//        if("JS000000".equals(agreeMentPaySms)){
+//            System.out.println("获取成功");
+//        }else{
+//            System.out.println(agreeMentPaySms);
+//        }
+//    }
+//
+//    @Test
+//    public void agreementSign(){
+//        AgreementSignDto agreementSignDto = new AgreementSignDto();
+//        agreementSignDto.setOrderNo("2022082614465345250");
+//        agreementSignDto.setSmsCode("841243");
+//        unipayService.agreementSign(agreementSignDto);
+//    }
+//
+//    @Test
+//    public void agreementPay(){
+//        AgreementPayDto agreementPayDto = new AgreementPayDto();
+//        agreementPayDto.setOrderNo("2022082614465345250");
+//
+//        BigDecimal value = new BigDecimal("0.1").setScale(2, BigDecimal.ROUND_DOWN);
+//        DecimalFormat decimalFormat = new DecimalFormat("0.00#");
+//        String strVal = decimalFormat.format(value);
+//        agreementPayDto.setOrderAmount(new BigDecimal(strVal));
+//        agreementPayDto.setOrderTime(DateUtil.now());
+//        agreementPayDto.setOrderDesc("测试");
+//        agreementPayDto.setBankNo("6222031901002389639");
+//        unipayService.agreementPay(agreementPayDto);
+//    }
+//
+//    @Test
+//    public void singlePay(){
+//        /**
+//         * 调用汇聚代付
+//         */
+//        String orderNo = MallUtils.getOrderNum("W");
+//        SinglePayDto singlePayDto = new SinglePayDto();
+//        singlePayDto.setMerchantOrderNo(orderNo);
+//        singlePayDto.setReceiverAccountNoEncBankNo("6222031903210023839639");
+//        singlePayDto.setReceiverAccountNoEncName("肖永");
+//        singlePayDto.setReceiverAccountType("201");
+//        BigDecimal paidAmount = new BigDecimal(1.00);
+//        singlePayDto.setPaidAmount(paidAmount);
+//        singlePayDto.setCurrency("201");
+//        singlePayDto.setIsChecked("202");
+//        singlePayDto.setPaidDesc("用户提现");
+//        singlePayDto.setPaidUse("202");
+//        String singlePayRep = unipayService.singlePay(singlePayDto);
+//
+//        System.out.println(singlePayRep);
+//    }
 }

--
Gitblit v1.9.1