From c70e92bedb031f28648a0d6e358ac7a1ecdfefea Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 31 Aug 2023 14:22:51 +0800
Subject: [PATCH] 退款查询

---
 src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java    |    7 +++++++
 src/main/java/cc/mrbird/febs/mall/service/impl/MallMoneyFlowServiceImpl.java |    5 +++++
 src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java  |   12 ++++++++----
 src/main/resources/mapper/modules/MallMoneyFlowMapper.xml                    |    8 ++++++++
 src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java         |    2 ++
 src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java            |    5 +++++
 src/main/java/cc/mrbird/febs/mall/service/IMallMoneyFlowService.java         |    2 ++
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java |   19 +++++++++++++++++++
 8 files changed, 56 insertions(+), 4 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 3ffb084..011afcc 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
@@ -179,6 +179,13 @@
         return null;
     }
 
+
+    @ApiOperation(value = "领红包")
+    @PostMapping(value = "/redBag")
+    public FebsResponse redBag() {
+        return memberService.redBag();
+    }
+
     @ApiOperation(value = "新增银行卡")
     @PostMapping(value = "/addMemberBank")
     public FebsResponse addMemberBank(@RequestBody AddMemberBankDto addMemberBankDto) {
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java
index eaa05c6..5d939fa 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java
@@ -37,4 +37,9 @@
     BigDecimal selectCommissionIncome(@Param("type") Integer type, @Param("date") Date date, @Param("memberId") Long memebrid);
 
     BigDecimal selectThankfulCommission(@Param("date") Date date, @Param("memberId") Long memberId);
+
+    List<MallMoneyFlow> selectByMemberIdAndTypeAndStatusAndDate(@Param("memberId")Long id,
+                                                                @Param("type")int value,
+                                                                @Param("status")int i,
+                                                                @Param("date") Date date);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java b/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
index d9653e6..73ce98a 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
@@ -74,4 +74,6 @@
     FebsResponse updateMemberBank(UpdateMemberBankDto updateMemberBankDto);
 
     FebsResponse delMemberBank(Long id);
+
+    FebsResponse redBag();
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IMallMoneyFlowService.java b/src/main/java/cc/mrbird/febs/mall/service/IMallMoneyFlowService.java
index 5b35700..62793fb 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IMallMoneyFlowService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IMallMoneyFlowService.java
@@ -11,6 +11,8 @@
 
     void addMoneyFlow(Long memberId, BigDecimal amount, Integer type, String orderNo, Integer flowType);
 
+    void addMoneyFlow(Integer status,Long memberId, BigDecimal amount, Integer type, String orderNo, Integer flowType);
+
     void addMoneyFlow(Long memberId, BigDecimal amount, Integer type, String orderNo, Integer flowType, Integer isReturn);
 
     void addMoneyFlow(Long memberId, BigDecimal amount, Integer type, String orderNo, Long rtMemberId, Integer flowType);
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
index 4465115..ec85264 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -592,4 +592,23 @@
         mallMemberBankMapper.deleteById(id);
         return new FebsResponse().success();
     }
+
+    @Override
+    public FebsResponse redBag() {
+        MallMember member = LoginUserUtil.getLoginUser();
+        List<MallMoneyFlow> mallMoneyFlows = mallMoneyFlowMapper.selectByMemberIdAndTypeAndStatusAndDate(member.getId(), MoneyFlowTypeEnum.SCORE_POOL.getValue(), 1, new Date());
+        if(CollUtil.isEmpty(mallMoneyFlows)){
+            throw new FebsException("没有红包");
+        }
+        BigDecimal amount = BigDecimal.ZERO;
+        for(MallMoneyFlow mallMoneyFlow : mallMoneyFlows){
+            mallMoneyFlow.setStatus(2);
+            mallMoneyFlowMapper.updateById(mallMoneyFlow);
+
+            amount = mallMoneyFlow.getAmount().abs();
+        }
+        walletService.add(amount, member.getId(), "commission");
+        walletService.reduce(amount.negate(), member.getId(), "score");
+        return new FebsResponse().success().message("领取成功");
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MallMoneyFlowServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MallMoneyFlowServiceImpl.java
index 54e1212..baef98b 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/MallMoneyFlowServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MallMoneyFlowServiceImpl.java
@@ -41,6 +41,11 @@
     }
 
     @Override
+    public void addMoneyFlow(Integer status,Long memberId, BigDecimal amount, Integer type, String orderNo, Integer flowType) {
+        this.addMoneyFlow(memberId, amount, type, orderNo, null, null, null, status, flowType, null);
+    }
+
+    @Override
     public void addMoneyFlow(Long memberId, BigDecimal amount, Integer type, String orderNo, Integer flowType, Integer isReturn) {
         this.addMoneyFlow(memberId, amount, type, orderNo, null, null, null, null, flowType, isReturn);
     }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
index b40eef9..cff92e6 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
@@ -18,7 +18,9 @@
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.NumberUtil;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.RandomUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSONObject;
@@ -561,10 +563,12 @@
                 }else{
                     outCome = income;
                 }
-                walletService.add(outCome, mallMember.getId(), "commission");
-                walletService.reduce(outCome, mallMember.getId(), "score");
-                moneyFlowService.addMoneyFlow(mallMember.getId(), outCome, MoneyFlowTypeEnum.SCORE_POOL.getValue(), null, FlowTypeEnum.COMMISSION.getValue());
-                moneyFlowService.addMoneyFlow(mallMember.getId(), outCome.negate(), MoneyFlowTypeEnum.SCORE_POOL.getValue(), null, FlowTypeEnum.SCORE.getValue());
+
+                outCome = new BigDecimal(RandomUtil.randomBigDecimal(BigDecimal.ZERO,outCome).intValue()).setScale(2,BigDecimal.ROUND_DOWN);
+//                walletService.add(outCome, mallMember.getId(), "commission");
+//                walletService.reduce(outCome, mallMember.getId(), "score");
+                moneyFlowService.addMoneyFlow(1,mallMember.getId(), outCome, MoneyFlowTypeEnum.SCORE_POOL.getValue(), null, FlowTypeEnum.COMMISSION.getValue());
+                moneyFlowService.addMoneyFlow(1,mallMember.getId(), outCome.negate(), MoneyFlowTypeEnum.SCORE_POOL.getValue(), null, FlowTypeEnum.SCORE.getValue());
                 cnt ++;
             }
         }
diff --git a/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml b/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
index 8b00702..2d1e848 100644
--- a/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
+++ b/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
@@ -132,4 +132,12 @@
           and date_format(created_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d')
           and type in (2,3,4)
     </select>
+
+    <select id="selectByMemberIdAndTypeAndStatusAndDate" resultType="cc.mrbird.febs.mall.entity.MallMoneyFlow">
+        select a.member_id, sum(a.amount) amount from mall_money_flow a
+        where a.type =#{type}
+          and a.status = #{status}
+          and a.member_id = #{memberId}
+          and date_format(a.created_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d');
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1