From 714e98e20f8a534fef0a301c527a8b3ace0741cb Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Wed, 13 Mar 2024 14:30:20 +0800
Subject: [PATCH] 抽奖

---
 src/main/java/cc/mrbird/febs/mall/dto/MoneyChargeListDto.java                     |    2 
 src/main/java/cc/mrbird/febs/mall/service/IMallMemberWithdrawService.java         |    2 
 src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java         |    7 ++
 src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberWithdrawServiceImpl.java |   27 +++++++++
 src/main/resources/templates/febs/views/modules/mallMember/chargeFlowList.html    |   24 ++++++++
 src/main/resources/mapper/modules/MallMoneyFlowMapper.xml                         |    3 +
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java    |   77 ++++++++++++-------------
 7 files changed, 103 insertions(+), 39 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
index fc63774..bc4ff75 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
@@ -60,6 +60,13 @@
         return memberService.moneyFlows(moneyFlowDto);
     }
 
+    @ApiOperation(value = "充值", notes = "充值")
+    @PostMapping(value = "/charge")
+    public FebsResponse charge(@RequestBody @Validated WithdrawalDto withdrawalDto) {
+        mallMemberWithdrawService.charge(withdrawalDto);
+        return new FebsResponse().success().message("提交成功");
+    }
+
     @ApiOperation(value = "提现", notes = "提现")
     @PostMapping(value = "/withdrawal")
     public FebsResponse withdrawal(@RequestBody @Validated WithdrawalDto withdrawalDto) {
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/MoneyChargeListDto.java b/src/main/java/cc/mrbird/febs/mall/dto/MoneyChargeListDto.java
index 4acb2b3..baf9496 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/MoneyChargeListDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/MoneyChargeListDto.java
@@ -13,5 +13,7 @@
 
     private String phone;
 
+    private String remark;
+
     private Integer status;
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IMallMemberWithdrawService.java b/src/main/java/cc/mrbird/febs/mall/service/IMallMemberWithdrawService.java
index 500c484..c50c18d 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IMallMemberWithdrawService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IMallMemberWithdrawService.java
@@ -7,4 +7,6 @@
 public interface IMallMemberWithdrawService extends IService<MallMemberWithdraw> {
 
     void withdrawal(WithdrawalDto withdrawalDto);
+
+    void charge(WithdrawalDto withdrawalDto);
 }
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 02e21af..13bcee4 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
@@ -57,6 +57,7 @@
 
     private final MallMoneyFlowMapper mallMoneyFlowMapper;
     private final IMallMoneyFlowService mallMemberService;
+    private final IApiMallMemberService iApiMallMemberService;
     private final IApiMallMemberService apiMallMemberService;
 
     private final MallMemberPaymentMapper mallMemberPaymentMapper;
@@ -202,10 +203,23 @@
         objectQueryWrapper.eq("order_no",mallMemberWithdraw.getWithdrawNo());
         objectQueryWrapper.eq("type",MoneyFlowTypeNewEnum.RANK_BONUS.getValue());
         MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOne(objectQueryWrapper);
-        mallMoneyFlow.setStatus(3);
-        mallMoneyFlowMapper.updateById(mallMoneyFlow);
-        //用户佣金增加对应的余额
-        iApiMallMemberWalletService.add(mallMemberWithdraw.getAmount(),mallMemberWithdraw.getMemberId(),"balance");
+        if(ObjectUtil.isNotEmpty(mallMoneyFlow)){
+            mallMoneyFlow.setStatus(3);
+            mallMoneyFlowMapper.updateById(mallMoneyFlow);
+            //用户佣金增加对应的余额
+            iApiMallMemberWalletService.add(mallMemberWithdraw.getAmount(),mallMemberWithdraw.getMemberId(),"balance");
+        }else{
+            iApiMallMemberService.addMoneyFlow(
+                    mallMemberWithdraw.getMemberId(),
+                    mallMemberWithdraw.getAmount(),
+                    MoneyFlowTypeNewEnum.AGENT_BONUS.getValue(),
+                    mallMemberWithdraw.getWithdrawNo(),
+                    MoneyFlowTypeNewEnum.AGENT_BONUS.getDescription(),
+                    null,
+                    null,
+                    3,
+                    FlowTypeEnum.BALANCE.getValue());
+        }
 
         return new FebsResponse().success();
     }
@@ -774,44 +788,29 @@
             return new FebsResponse().fail().message("提现银行卡已删除");
         }
         String agreeType = mallMemberWithdrawInfo.getAgreeType();
-        if("1".equals(agreeType)){
-            mallMemberWithdraw.setStatus(2);
-            mallMemberWithdrawMapper.updateById(mallMemberWithdraw);
+        mallMemberWithdraw.setStatus(2);
+        mallMemberWithdrawMapper.updateById(mallMemberWithdraw);
 
-            QueryWrapper<MallMoneyFlow> flowQueryWrapper = new QueryWrapper<>();
-            flowQueryWrapper.eq("order_no",mallMemberWithdraw.getWithdrawNo());
-            flowQueryWrapper.eq("type",MoneyFlowTypeEnum.WITHDRAWAL.getValue());
-            MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOne(flowQueryWrapper);
-            if(ObjectUtil.isNotEmpty(mallMoneyFlow)){
-                mallMoneyFlow.setStatus(2);
-                mallMoneyFlowMapper.updateById(mallMoneyFlow);
-            }
-            return new FebsResponse().success();
+        QueryWrapper<MallMoneyFlow> flowQueryWrapper = new QueryWrapper<>();
+        flowQueryWrapper.eq("order_no",mallMemberWithdraw.getWithdrawNo());
+        flowQueryWrapper.eq("type",MoneyFlowTypeEnum.WITHDRAWAL.getValue());
+        MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOne(flowQueryWrapper);
+        if(ObjectUtil.isNotEmpty(mallMoneyFlow)){
+            mallMoneyFlow.setStatus(2);
+            mallMoneyFlowMapper.updateById(mallMoneyFlow);
         }else{
-            String bankName = mallMemberBank.getBankName();
-            NBYHResponse nbyhResponse = new NBYHResponse();
-            if("宁波银行".equals(bankName)){
-                nbyhResponse = nbyhService.tradeSinge(mallMemberWithdraw.getId());
-            }else{
-                nbyhResponse = nbyhService.tradeSingeOuterTransfer(mallMemberWithdraw.getId());
-            }
-            if(nbyhResponse.isFlag()){
-                mallMemberWithdraw.setStatus(2);
-                mallMemberWithdrawMapper.updateById(mallMemberWithdraw);
-
-                QueryWrapper<MallMoneyFlow> flowQueryWrapper = new QueryWrapper<>();
-                flowQueryWrapper.eq("order_no",mallMemberWithdraw.getWithdrawNo());
-                flowQueryWrapper.eq("type",MoneyFlowTypeEnum.WITHDRAWAL.getValue());
-                MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOne(flowQueryWrapper);
-                if(ObjectUtil.isNotEmpty(mallMoneyFlow)){
-                    mallMoneyFlow.setStatus(2);
-                    mallMoneyFlowMapper.updateById(mallMoneyFlow);
-                }
-                return new FebsResponse().success().message(nbyhResponse.getMsg());
-            }else{
-                return new FebsResponse().fail().message(nbyhResponse.getMsg());
-            }
+            iApiMallMemberService.addMoneyFlow(
+                    mallMemberWithdraw.getMemberId(),
+                    mallMemberWithdraw.getAmount(),
+                    MoneyFlowTypeNewEnum.AGENT_BONUS.getValue(),
+                    mallMemberWithdraw.getWithdrawNo(),
+                    MoneyFlowTypeNewEnum.AGENT_BONUS.getDescription(),
+                    null,
+                    null,
+                    2,
+                    FlowTypeEnum.BALANCE.getValue());
         }
+        return new FebsResponse().success();
 
     }
 
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberWithdrawServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberWithdrawServiceImpl.java
index c7d109f..a2c42c4 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberWithdrawServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberWithdrawServiceImpl.java
@@ -99,6 +99,7 @@
         withdraw.setAmount(withdrawalDto.getAmount());
         withdraw.setStatus(1);
         withdraw.setAmountFee(serviceFee);
+        withdraw.setRemark("提现");
         withdraw.setWtihdrawTypeId(mallMemberBank.getId());
         this.baseMapper.insert(withdraw);
 
@@ -113,4 +114,30 @@
                 1,
                 FlowTypeEnum.BALANCE.getValue());
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void charge(WithdrawalDto withdrawalDto) {
+        Long memberId = LoginUserUtil.getLoginUser().getId();
+        MallMember mallMember = mallMemberService.getById(memberId);
+
+        MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(withdrawalDto.getBankId());
+        if(ObjectUtil.isEmpty(mallMemberBank)){
+            throw new FebsException("未找到银行卡信息");
+        }
+
+        if(BigDecimal.ZERO.compareTo(withdrawalDto.getAmount()) >= 0) {
+            throw new FebsException("金额需要大于0");
+        }
+        String orderNo = MallUtils.getOrderNum("C");
+
+        MallMemberWithdraw withdraw = new MallMemberWithdraw();
+        withdraw.setWithdrawNo(orderNo);
+        withdraw.setMemberId(memberId);
+        withdraw.setAmount(withdrawalDto.getAmount());
+        withdraw.setStatus(1);
+        withdraw.setRemark("充值");
+        withdraw.setWtihdrawTypeId(mallMemberBank.getId());
+        this.baseMapper.insert(withdraw);
+    }
 }
diff --git a/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml b/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
index 7ebba37..92b9eaf 100644
--- a/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
+++ b/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
@@ -82,6 +82,9 @@
                 <if test="record.status!=null and record.status!=''">
                     and a.status = #{record.status}
                 </if>
+                <if test="record.remark!=null and record.remark!=''">
+                    and a.remark = #{record.remark}
+                </if>
             </if>
         </where>
         order by a.created_time desc
diff --git a/src/main/resources/templates/febs/views/modules/mallMember/chargeFlowList.html b/src/main/resources/templates/febs/views/modules/mallMember/chargeFlowList.html
index 1d46d9f..22df7e8 100644
--- a/src/main/resources/templates/febs/views/modules/mallMember/chargeFlowList.html
+++ b/src/main/resources/templates/febs/views/modules/mallMember/chargeFlowList.html
@@ -14,6 +14,16 @@
                                         </div>
                                     </div>
                                     <div class="layui-inline">
+                                        <label class="layui-form-label">类型:</label>
+                                        <div class="layui-input-inline">
+                                            <select name="remark">
+                                                <option value="">请选择</option>
+                                                <option value="充值">充值</option>
+                                                <option value="提现">提现</option>
+                                            </select>
+                                        </div>
+                                    </div>
+                                    <div class="layui-inline">
                                         <label class="layui-form-label">状态:</label>
                                         <div class="layui-input-inline">
                                             <select name="status">
@@ -51,6 +61,18 @@
     {{# } else { }}
         <button class="layui-btn layui-btn-normal layui-btn-xs" type="button" shiro:hasPermission="paymentInfo:update" lay-event="paymentInfo">查看收款方式</button>
     {{# } }}
+</script>
+
+<script type="text/html" id="remarkFormat">
+    <div>
+        {{# if (d.remark == '充值') { }}
+        <span class="layui-badge febs-tag-blue">充值</span>
+        {{# } else if (d.remark == '提现') { }}
+        <span class="layui-badge febs-tag-green">提现</span>
+        {{# } else { }}
+        <span class="layui-badge febs-tag-green">提现</span>
+        {{# } }}
+    </div>
 </script>
 
 <script type="text/html" id="txStatusFormat">
@@ -142,6 +164,7 @@
                 totalRow: true ,// 开启合计行
                 cols: [[
                     {field: 'withdrawNo', title: '编号', minWidth: 100,align:'left', totalRowText: '合计:'},
+                    {templet:"#remarkFormat",  title: '类型', minWidth: 100,align:'left'},
                     {field: 'phone', title: '账号', minWidth: 150,align:'left'},
                     {field: 'amount', title: '金额', minWidth: 150,align:'left',totalRow: '{{= parseInt(d.amount) }}'},
                     {field: 'amountFee', title: '手续费', minWidth: 150,align:'left',totalRow: '{{= parseInt(d.amountFee) }}'},
@@ -157,6 +180,7 @@
             return {
                 phone: $searchForm.find('input[name="phone"]').val().trim(),
                 status: $searchForm.find("select[name='status']").val(),
+                remark: $searchForm.find("select[name='remark']").val(),
             };
         }
 

--
Gitblit v1.9.1