From 836e019db92b9871cba9d440c8159b35f79e1726 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 30 Mar 2023 09:32:42 +0800
Subject: [PATCH] 根据补贴记录,减少用户贡献值

---
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java |   63 +++++++++++++++++++++++++------
 1 files changed, 51 insertions(+), 12 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
index 71684cc..e97394b 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
@@ -16,6 +16,8 @@
 import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
 import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
 import cc.mrbird.febs.mall.vo.*;
+import cc.mrbird.febs.pay.model.SinglePayDto;
+import cc.mrbird.febs.pay.service.UnipayService;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
@@ -34,6 +36,7 @@
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author wzy
@@ -64,6 +67,8 @@
     private final MallShopApplyMapper mallShopApplyMapper;
 
     private final IMallMoneyFlowService mallMoneyFlowService;
+    private final UnipayService unipayService;
+    private final MallMemberBankMapper mallMemberBankMapper;
 
     @Override
     public IPage<MallMember> getMallMemberList(MallMember mallMember, QueryRequest request) {
@@ -106,6 +111,15 @@
         if (type == 1) {
             mallMember.setDirector(value);
         } else if (type == 2){
+            /**
+             * 线下服务商设置
+             *  团队下没有线下服务商,才能成为线下服务商
+             */
+//            List<MallMember> mallMembers = mallMemberMapper.selectAllChildAgentListByInviteIdAndStoreMaster(mallMember.getInviteId(), 1);
+//            if(CollUtil.isNotEmpty(mallMembers)){
+//                List<String> phoneList = mallMembers.stream().map(MallMember::getPhone).collect(Collectors.toList());
+//                throw new FebsException("团队存在线下服务中心,账号为【"+phoneList.toString()+"】");
+//            }
             mallMember.setStoreMaster(value);
         } else {
             throw new FebsException("参数错误");
@@ -152,15 +166,27 @@
         if(1 != mallMemberWithdraw.getStatus()){
             return new FebsResponse().fail().message("当前状态不是提现中");
         }
-        mallMemberWithdraw.setStatus(2);
-        mallMemberWithdrawMapper.updateById(mallMemberWithdraw);
 
-        QueryWrapper<MallMoneyFlow> objectQueryWrapper = new QueryWrapper<>();
-        objectQueryWrapper.eq("order_no",mallMemberWithdraw.getWithdrawNo());
-        objectQueryWrapper.eq("type",MoneyFlowTypeEnum.WITHDRAWAL.getValue());
-        MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOne(objectQueryWrapper);
-        mallMoneyFlow.setStatus(2);
-        mallMoneyFlowMapper.updateById(mallMoneyFlow);
+        Long wtihdrawTypeId = mallMemberWithdraw.getWtihdrawTypeId();
+        MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(wtihdrawTypeId);
+        /**
+         * 调用汇聚代付
+         */
+        SinglePayDto singlePayDto = new SinglePayDto();
+        singlePayDto.setMerchantOrderNo(mallMemberWithdraw.getWithdrawNo());
+        singlePayDto.setReceiverAccountNoEncBankNo(mallMemberBank.getBankNo());
+        singlePayDto.setReceiverAccountNoEncName(mallMemberBank.getName());
+        singlePayDto.setReceiverAccountType("201");
+        BigDecimal paidAmount = mallMemberWithdraw.getAmount().subtract(mallMemberWithdraw.getAmountFee()).setScale(2, BigDecimal.ROUND_DOWN);
+        singlePayDto.setPaidAmount(paidAmount);
+        singlePayDto.setCurrency("201");
+        singlePayDto.setIsChecked("202");
+        singlePayDto.setPaidDesc("用户提现");
+        singlePayDto.setPaidUse("202");
+        String singlePayRep = unipayService.singlePay(singlePayDto);
+        if(!mallMemberWithdraw.getWithdrawNo().equals(singlePayRep)){
+            return new FebsResponse().fail().message("提现失败,请稍后查看错误信息一览");
+        }
 
         return new FebsResponse().success();
     }
@@ -176,7 +202,6 @@
             return new FebsResponse().fail().message("当前状态不是提现中");
         }
 
-
         mallMemberWithdraw.setStatus(3);
         mallMemberWithdrawMapper.updateById(mallMemberWithdraw);
 
@@ -188,7 +213,7 @@
         mallMoneyFlowMapper.updateById(mallMoneyFlow);
 
         //用户佣金增加对应的余额
-        iApiMallMemberWalletService.add(mallMemberWithdraw.getAmount().negate(),mallMemberWithdraw.getMemberId(),"commission");
+        iApiMallMemberWalletService.add(mallMemberWithdraw.getAmount(),mallMemberWithdraw.getMemberId(),"balance");
         return new FebsResponse().success();
     }
 
@@ -344,7 +369,7 @@
         if(StrUtil.isEmpty(level) || !AgentLevelEnum.ZERO_LEVEL.name().equals(mallMember.getLevel())){
             return new FebsResponse().fail().message("该用户无法激活");
         }
-        mallMember.setLevel(AgentLevelEnum.FIRST_LEVEL.name());
+        mallMember.setLevel(AgentLevelEnum.SECOND_LEVEL.name());
         mallMemberMapper.updateById(mallMember);
         return new FebsResponse().success();
     }
@@ -435,7 +460,7 @@
 
             // 重置交易密码
             if (type == 1) {
-                String payPwd = SecureUtil.md5("654321");
+                String payPwd = SecureUtil.md5("123456");
                 member.setTradePassword(payPwd);
                 // 重置登录密码
             } else {
@@ -590,6 +615,20 @@
         mallShopApplyMapper.updateById(mallShopApply);
     }
 
+    @Override
+    public AdminMallMemberPaymentVo getMallBankInfoById(long id) {
+
+        MallMemberWithdraw mallMemberWithdraw = mallMemberWithdrawMapper.selectById(id);
+        Long wtihdrawTypeId = mallMemberWithdraw.getWtihdrawTypeId();
+        MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(wtihdrawTypeId);
+        AdminMallMemberPaymentVo adminMallMemberPaymentVo = new AdminMallMemberPaymentVo();
+        if(ObjectUtil.isNotEmpty(mallMemberBank)){
+            adminMallMemberPaymentVo.setBankNo(mallMemberBank.getBankNo());
+            adminMallMemberPaymentVo.setBankName(mallMemberBank.getName());
+        }
+        return adminMallMemberPaymentVo;
+    }
+
     private String refererIds(String parentId) {
         boolean flag = false;
         if (StrUtil.isBlank(parentId)) {

--
Gitblit v1.9.1