From 70cd2aec8a55e222070d4dd6d816dcb3231a1217 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 22 Dec 2022 16:57:08 +0800
Subject: [PATCH] 20221221

---
 src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java               |    2 
 src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java                          |    9 +++
 src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java                           |    3 +
 src/main/java/cc/mrbird/febs/common/utils/MallUtils.java                        |    2 
 src/main/java/cc/mrbird/febs/mall/mapper/MallMemberStarBuyMapper.java           |    2 
 src/main/resources/mapper/modules/MallMemberStarBuyMapper.xml                   |    9 +++
 src/test/java/cc/mrbird/febs/ProfitTest.java                                    |   58 +++++++++---------
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java |    8 ++
 src/main/resources/mapper/modules/MallOrderInfoMapper.xml                       |   26 ++++++--
 src/main/resources/mapper/modules/MallMoneyFlowMapper.xml                       |    9 +++
 src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java               |    2 
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java    |   11 +++
 12 files changed, 103 insertions(+), 38 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/common/utils/MallUtils.java b/src/main/java/cc/mrbird/febs/common/utils/MallUtils.java
index a93bbac..6931b85 100644
--- a/src/main/java/cc/mrbird/febs/common/utils/MallUtils.java
+++ b/src/main/java/cc/mrbird/febs/common/utils/MallUtils.java
@@ -37,7 +37,7 @@
         SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
         String dd=df.format(new Date());
         if (StrUtil.isNotBlank(prefix)) {
-            return prefix+getRandomNum(2);
+            return prefix+dd+getRandomNum(2);
         }
         return dd+getRandomNum(2);
     }
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberStarBuyMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberStarBuyMapper.java
index 7eefc32..85917fb 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberStarBuyMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberStarBuyMapper.java
@@ -16,4 +16,6 @@
     void updateStatusById(@Param("status")int i, @Param("id")Long id);
 
     List<MallMemberStarBuy> selectByStatusAndMemberId(@Param("status")int i, @Param("memberId")Long memberId);
+
+    BigDecimal selectSumAvaAmountByStatusAndMemberId(@Param("status")int i, @Param("memberId")Long id);
 }
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 f9bf87d..9acffe6 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java
@@ -46,4 +46,6 @@
                                                                            @Param("isReturn")Integer isReturn);
 
     IPage<AdminMallMoneyFlowVo> selectOrderMoneyFlowInPage(Page<AdminMallMoneyFlowVo> page, @Param("record")MallOrderInfo mallOrderInfo);
+
+    BigDecimal selectSumAmountByStatusAndMemberId(@Param("status")Integer statusIng, @Param("memberId")Long id);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
index 44250e4..b9bc6d1 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
@@ -69,4 +69,6 @@
     Integer selectCountByCreateTimeAndMemberId(@Param("createdTime")String yyyyMMdd,@Param("memberId")Long memberId);
 
     BigDecimal selectTodayAmountByCreateTimeAndMemberId(@Param("createdTime")String yyyyMMdd,@Param("memberId")Long memberId);
+
+    Integer selectOrderInfoByStatusAndMemberId(@Param("status")int value, @Param("memberId")Long id);
 }
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 fda28df..630c3a1 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
@@ -255,6 +255,15 @@
         mallMemberVo.setScore(wallet.getScore());
         mallMemberVo.setPrizeScore(wallet.getPrizeScore());
         mallMemberVo.setTotalCost(mallOrderInfoMapper.selectTotalAmount(id));
+        //提现冻结金额
+        BigDecimal froBalance = mallMoneyFlowMapper.selectSumAmountByStatusAndMemberId(MallMoneyFlow.STATUS_ING, id);
+        mallMemberVo.setFroBalance(froBalance);
+        //剩余保证金
+        BigDecimal avaAmount = mallMemberStarBuyMapper.selectSumAvaAmountByStatusAndMemberId(1,id);
+        mallMemberVo.setAvaAmount(avaAmount);
+        String accountLevel = mallMemberVo.getAccountLevel();
+        Integer memberLevelCode = MemberAccountLevelEnum.NORMAL.getMemberLevelCode(accountLevel);
+        mallMemberVo.setAccountLevelCode(memberLevelCode);
         return new FebsResponse().success().data(mallMemberVo);
     }
 
@@ -672,7 +681,7 @@
         //产生用户升级会员等级记录
         MallMemberStarBuy mallMemberStarBuy = new MallMemberStarBuy();
         mallMemberStarBuy.setMemberId(mallMember.getId());
-        mallMemberStarBuy.setBuyCode(MallUtils.getLogisticsNum("ms"));
+        mallMemberStarBuy.setBuyCode(MallUtils.getLogisticsNum("MS"));
         mallMemberStarBuy.setStarName(buyStarDescription);
         mallMemberStarBuy.setStarCode(buyStarCode);
         mallMemberStarBuy.setAmount(buyStarPriceBigDecimal);
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index 3bc8606..96edc5b 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -100,6 +100,14 @@
             throw new FebsException(goods.getGoodsName() + "已下架");
         }
         /**
+         * 存在未支付的订单无法下单
+         */
+        Integer orderIng = this.baseMapper.selectOrderInfoByStatusAndMemberId(OrderStatusEnum.FINISH.getValue(), mallMember.getId());
+        if(1 <= orderIng){
+            throw new FebsException("请先完成未完成的订单");
+        }
+
+        /**
          * 会员一天最多下单次数
          */
         DataDictionaryCustom buyTimesDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java b/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java
index fab4137..293b224 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java
@@ -87,4 +87,13 @@
     @ApiModelProperty(value = "是否店长 1-是 2-否")
     private Integer storeMaster;
 
+    @ApiModelProperty(value = "剩余保证金")
+    private BigDecimal avaAmount;
+
+    @ApiModelProperty(value = "会员星级编码")
+    private Integer accountLevelCode;
+
+    @ApiModelProperty(value = "冻结金额")
+    private BigDecimal froBalance;
+
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java b/src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java
index 0407999..91fd4cb 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java
@@ -48,4 +48,7 @@
 
     @ApiModelProperty(value = "补贴金额")
     private BigDecimal subsidyAmount;
+
+    @ApiModelProperty(value = "物流编号")
+    private String payTradeNo;
 }
diff --git a/src/main/resources/mapper/modules/MallMemberStarBuyMapper.xml b/src/main/resources/mapper/modules/MallMemberStarBuyMapper.xml
index 9cfe55b..24853ca 100644
--- a/src/main/resources/mapper/modules/MallMemberStarBuyMapper.xml
+++ b/src/main/resources/mapper/modules/MallMemberStarBuyMapper.xml
@@ -31,4 +31,13 @@
             and member_id = #{memberId}
     </select>
 
+    <select id="selectSumAvaAmountByStatusAndMemberId" resultType="java.math.BigDecimal">
+        select
+            ifnull(sum(a.ava_amount),0)
+        from mall_member_star_buy a
+        where
+            a.member_id = #{memberId}
+          and a.status = #{status}
+    </select>
+
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml b/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
index c2827e7..fbb78fa 100644
--- a/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
+++ b/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
@@ -154,4 +154,13 @@
         where a.order_no = #{record.orderNo}
         order by a.CREATED_TIME desc
     </select>
+
+    <select id="selectSumAmountByStatusAndMemberId" resultType="java.math.BigDecimal">
+        select
+               ifnull(sum(a.amount),0)
+        from mall_member_withdraw a
+        where
+            a.member_id = #{memberId}
+          and a.status = #{status}
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
index 5a8d830..806a69b 100644
--- a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
+++ b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
@@ -113,6 +113,7 @@
         <result column="deliver_type" property="deliverType" />
         <result column="shop_id" property="shopId" />
         <result column="subsidy_amount" property="subsidyAmount" />
+        <result column="pay_trade_no" property="payTradeNo" />
         <collection property="items" ofType="cc.mrbird.febs.mall.entity.MallOrderItem">
             <id property="id" column="item_id" />
             <result property="orderId" column="order_id" />
@@ -322,11 +323,12 @@
             count(a.id)
         from mall_order_info a
         where
-            <if test="createdTime != null">
-                date_format(a.CREATED_TIME, '%Y-%m-%d') = #{createdTime}
-            </if>
-            and a.status = 4
+              a.status <![CDATA[>= ]]> 4
             and a.member_id = #{memberId}
+            <if test="createdTime != null">
+                and date_format(a.CREATED_TIME, '%Y-%m-%d') = #{createdTime}
+            </if>
+
     </select>
 
     <select id="selectTodayAmountByCreateTimeAndMemberId" resultType="java.math.BigDecimal">
@@ -334,10 +336,20 @@
                 ifnull(sum(a.subsidy_amount),0)
             from mall_order_info a
             where
+                  a.status <![CDATA[>= ]]> 4
+                and a.member_id = #{memberId}
             <if test="createdTime != null">
-                date_format(a.CREATED_TIME, '%Y-%m-%d') = #{createdTime}
+                and date_format(a.CREATED_TIME, '%Y-%m-%d') = #{createdTime}
             </if>
-            and a.status = 4
-            and a.member_id = #{memberId}
+
+    </select>
+
+    <select id="selectOrderInfoByStatusAndMemberId" resultType="java.lang.Integer">
+        select
+        count(a.id)
+        from mall_order_info a
+        where
+        a.status <![CDATA[< ]]> 4
+        and a.member_id = #{memberId}
     </select>
 </mapper>
\ No newline at end of file
diff --git a/src/test/java/cc/mrbird/febs/ProfitTest.java b/src/test/java/cc/mrbird/febs/ProfitTest.java
index fb10558..b47bba1 100644
--- a/src/test/java/cc/mrbird/febs/ProfitTest.java
+++ b/src/test/java/cc/mrbird/febs/ProfitTest.java
@@ -20,18 +20,23 @@
 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.mall.vo.ApiMallSubsidyAmountInfoVo;
 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.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.json.JSON;
+import cn.hutool.json.JSONUtil;
 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.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -95,35 +100,30 @@
 
     @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());
+        MallMember member = mallMemberMapper.selectById(633L);
+        ApiMallSubsidyAmountInfoVo apiMallSubsidyAmountInfoVo = new ApiMallSubsidyAmountInfoVo();
+        DateTime today = DateUtil.date();
+        DateTime yesterday = DateUtil.yesterday();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        String yyyyMMddToday = sdf.format(today);
+        String yyyyMMddYesterday = sdf.format(yesterday);
+        //今日补贴
+        BigDecimal todayAmount = mallOrderInfoMapper.selectTodayAmountByCreateTimeAndMemberId(yyyyMMddToday,member.getId());
+        apiMallSubsidyAmountInfoVo.setTodayAmount(todayAmount);
+        //今日累计接单
+        Integer todayTotalCnt = mallOrderInfoMapper.selectCountByCreateTimeAndMemberId(yyyyMMddToday,member.getId());
+        apiMallSubsidyAmountInfoVo.setTodayTotalCnt(todayTotalCnt);
+        //昨日补贴
+        BigDecimal yesterdayAmount = mallOrderInfoMapper.selectTodayAmountByCreateTimeAndMemberId(yyyyMMddYesterday,member.getId());
+        apiMallSubsidyAmountInfoVo.setYesterdayAmount(yesterdayAmount);
+        //昨日累计接单
+        Integer totalYesterdayCnt = mallOrderInfoMapper.selectCountByCreateTimeAndMemberId(yyyyMMddYesterday,member.getId());
+        apiMallSubsidyAmountInfoVo.setTotalYesterdayCnt(totalYesterdayCnt);
+        //获得总额
+        BigDecimal totalAmount = mallOrderInfoMapper.selectTodayAmountByCreateTimeAndMemberId(null,member.getId());
+        apiMallSubsidyAmountInfoVo.setTotalAmount(totalAmount);
+        JSON parse = JSONUtil.parse(apiMallSubsidyAmountInfoVo);
+        System.out.println(parse.toString());
     }
 
     @Autowired

--
Gitblit v1.9.1