From 5615f6bf82593370b0e7b1a903399bd5c84b18df Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 24 Mar 2023 23:52:10 +0800
Subject: [PATCH] 后台修改

---
 src/main/java/cc/mrbird/febs/mall/quartz/OrderOvertimeJob.java |   20 ++++++++++++++++----
 1 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/quartz/OrderOvertimeJob.java b/src/main/java/cc/mrbird/febs/mall/quartz/OrderOvertimeJob.java
index 4c9a605..1280ced 100644
--- a/src/main/java/cc/mrbird/febs/mall/quartz/OrderOvertimeJob.java
+++ b/src/main/java/cc/mrbird/febs/mall/quartz/OrderOvertimeJob.java
@@ -51,7 +51,7 @@
 
     @Scheduled(cron = "0 0/5 * * * ? ")
     public void overtimeJob() {
-        log.info("订单超时任务执行");
+//        log.info("订单超时任务执行");
         List<MallOrderInfo> orderList = orderInfoMapper.selectOrderInfoByStatus(OrderStatusEnum.WAIT_PAY.getValue());
         if (CollUtil.isNotEmpty(orderList)) {
             for (MallOrderInfo orderInfo : orderList) {
@@ -101,9 +101,9 @@
                     DataDictionaryEnum.RETURN_PERCENT.getCode()
             );
             String returnPercentStr = returnPercentDic.getValue();
-            BigDecimal returnPercent = new BigDecimal(returnPercentStr).multiply(new BigDecimal(0.01));
+            BigDecimal returnPercent = new BigDecimal(returnPercentStr).multiply(new BigDecimal(0.01)).setScale(2,BigDecimal.ROUND_DOWN);
             //本次返还金额
-            BigDecimal returnAmount = amount.multiply(returnPercent);
+            BigDecimal returnAmount = amount.multiply(returnPercent).setScale(2,BigDecimal.ROUND_DOWN);
             /**
              * 如果本次返还金额大于剩余返还总金额
              */
@@ -155,9 +155,16 @@
             if(BigDecimal.ZERO.compareTo(avaAmount) >= 0){
                 mallMemberStarBuyMapper.updateStatusById(2,mallMemberStarBuy.getId());
                 List<MallMemberStarBuy> mallMemberStarBuysIng = mallMemberStarBuyMapper.selectByStatusAndMemberId(1,memberId);
-                //如果没有其他生效中的记录,则更新用户的星级
+                //如果没有其他生效中的记录,则更新用户的星级为普通,更新会员代理等级为代理
                 if(CollUtil.isEmpty(mallMemberStarBuysIng)){
                     mallMemberMapper.updateAccountLevelById(MemberAccountLevelEnum.NORMAL.getName(), memberId);
+
+                    //如果代理等级为手动设置,则跳过该会员
+                    int levelStatus = ObjectUtil.isEmpty(mallMember.getLevelStatus()) ? 0 : 1;
+                    if(1 == levelStatus){
+                        continue;
+                    }
+                    mallMemberMapper.updateLevelById(MemberAgentLevelEnum.AGENT.getName(),mallMember.getId());
                 }
             }
         }
@@ -206,6 +213,11 @@
         List<MallMember> agentLevelList = mallMemberMapper.selectByAccountLevel(levelSelf);
         if(CollUtil.isNotEmpty(agentLevelList)){
             for(MallMember mallMember : agentLevelList){
+                //如果代理等级为手动设置,则跳过该会员
+                int levelStatus = ObjectUtil.isEmpty(mallMember.getLevelStatus()) ? 0 : 1;
+                if(1 == levelStatus){
+                    continue;
+                }
                 //有星级的直推
                 Integer directCnt = mallMemberMapper.selectByRefererIdAndAccountLevel(mallMember.getInviteId(),MemberAccountLevelEnum.NORMAL.getName());
                 //团队中星级会员数量

--
Gitblit v1.9.1