From 8ec428a747c75ea5282feb64c3d7c4c3ac3dda11 Mon Sep 17 00:00:00 2001
From: codezwjava <1563330148@qq.com>
Date: Tue, 23 Mar 2021 13:56:33 +0800
Subject: [PATCH] =?UTF-8?q?bug=20=E4=BF=AE=E5=A4=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../impl/AerialDeliveryUserServiceImpl.java   | 103 ++++++++++++++++--
 1 file changed, 95 insertions(+), 8 deletions(-)

diff --git a/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/AerialDeliveryUserServiceImpl.java b/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/AerialDeliveryUserServiceImpl.java
index c3e852e..a60470c 100644
--- a/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/AerialDeliveryUserServiceImpl.java
+++ b/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/AerialDeliveryUserServiceImpl.java
@@ -7,16 +7,15 @@ import cn.wisenergy.model.app.RecommendUser;
 import cn.wisenergy.model.app.TeamUserInfo;
 import cn.wisenergy.model.app.User;
 import cn.wisenergy.service.app.AerialDeliveryUserService;
+import com.xxl.job.core.handler.annotation.XxlJob;
 import lombok.extern.slf4j.Slf4j;
 import org.bouncycastle.pqc.crypto.newhope.NHOtherInfoGenerator;
+import org.bytedeco.javacpp.presets.opencv_core;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 
 @Service
@@ -76,7 +75,7 @@ public class AerialDeliveryUserServiceImpl implements AerialDeliveryUserService
             }
         }
 
-        log.info("--------------------------空投池用户随机分派开始执行完成---------------------------------");
+        log.info("--------------------------空投池用户随机分配开始执行完成---------------------------------");
     }
 
     @Override
@@ -150,10 +149,12 @@ public class AerialDeliveryUserServiceImpl implements AerialDeliveryUserService
     }
 
     /**
-     * 团队数据维护
-     * @param beInvitedUserId 推荐人userId
-     * @param userId 当前用户的userId
+     * 团队整体数据的计算
+     * @param beInvitedUserId  推荐人的用户id
+     * @param userId 当前用户的id
+     * @return  map  团队中各等级的用户数量
      */
+    @Override
     public Map<String, Integer> teamUserInfoByAerialDelivery(String beInvitedUserId, String userId) {
         TeamUserInfo teamUserInfoByIntvitedUser = teamUserInfoMapper.getByUserId(beInvitedUserId);
         TeamUserInfo teamUserInfoByUserId = teamUserInfoMapper.getByUserId(userId);
@@ -228,6 +229,7 @@ public class AerialDeliveryUserServiceImpl implements AerialDeliveryUserService
     }
 
     //整体团队数据维护
+    @Override
     public void teamData(Map<String, Integer> teamDataMap, String userId){
         //最上级用户对象
         User user = usersMapper.getByUserId(userId);
@@ -263,6 +265,7 @@ public class AerialDeliveryUserServiceImpl implements AerialDeliveryUserService
     }
 
     //查询顶级用户
+    @Override
     public User highUser(String userId) {
         User byUserId = usersMapper.getByUserId(userId);
         String beInvitedCode = byUserId.getBeInvitedCode();
@@ -274,4 +277,88 @@ public class AerialDeliveryUserServiceImpl implements AerialDeliveryUserService
         return userByInviteCode;
     }
 
+    /**
+     * 团队数据维护  只维护团队数据 不包含直推数据的维护
+     * @param userId  当期用户的userId
+     * @param userInvitedId  推荐人的userId
+     */
+    @Override
+    public void teamDataNotRecommend(String userId, String userInvitedId){
+        //4、用户的团队表数据维护
+        //上级用户的团队数据
+        TeamUserInfo teamUserInfoMapperByUserId = teamUserInfoMapper.getByUserId(userInvitedId);
+        //团队中各等级人数
+        Integer normalUserNum = teamUserInfoMapperByUserId.getNormalUserNum();
+        Integer seedlingNum = teamUserInfoMapperByUserId.getSeedlingNum();
+        Integer bronzeTreeNum = teamUserInfoMapperByUserId.getBronzeTreeNum();
+        Integer silverTreeNum = teamUserInfoMapperByUserId.getSilverTreeNum();
+        Integer goldTreeNum = teamUserInfoMapperByUserId.getGoldTreeNum();
+        Integer farmerNum = teamUserInfoMapperByUserId.getFarmerNum();
+        Integer forestStartNum = teamUserInfoMapperByUserId.getForestStartNum();
+        Integer partnerNum = teamUserInfoMapperByUserId.getPartnerNum();
+
+        //当前用户升级后的数据
+        User userByUserId = usersMapper.getUserByUserId(userId);
+        if (null != userByUserId){
+            int userLevel = userByUserId.getUserLevel();
+            if (userLevel == 1){
+                //用户等级为1
+                //          团队普通用户数量 -1
+                //          是团队幼苗数量 +1
+                if (normalUserNum > 0){
+                    normalUserNum = normalUserNum - 1;
+                }
+                seedlingNum = seedlingNum + 1;
+            }else if (userLevel == 2){
+                if (seedlingNum > 0){
+                    seedlingNum = seedlingNum - 1;
+                }
+                bronzeTreeNum = bronzeTreeNum + 1;
+            }else if (userLevel == 3){
+                if (bronzeTreeNum > 0){
+                    bronzeTreeNum = bronzeTreeNum - 1;
+                }
+                silverTreeNum = silverTreeNum + 1;
+            }else if (userLevel == 4){
+                if (silverTreeNum > 0){
+                    silverTreeNum = silverTreeNum - 1;
+                }
+                goldTreeNum = goldTreeNum + 1;
+            }else if (userLevel == 5){
+                if (goldTreeNum > 0){
+                    goldTreeNum = goldTreeNum - 1;
+                }
+                farmerNum = farmerNum + 1;
+            }else if (userLevel == 6){
+                if (farmerNum > 0){
+                    farmerNum = farmerNum - 1;
+                }
+                forestStartNum = forestStartNum + 1;
+            }else if (userLevel == 7){
+                if (forestStartNum > 0){
+                    forestStartNum = forestStartNum - 1;
+                }
+                partnerNum = partnerNum + 1;
+            }
+        }
+
+        Map<String , Integer> teamDataMap = new HashMap<String , Integer>();
+        teamDataMap.put("resultTeamNormalNum",normalUserNum);
+        teamDataMap.put("resultTeamSeedlingNum",seedlingNum);
+        teamDataMap.put("resultTeamBronzeTreeNum",bronzeTreeNum);
+        teamDataMap.put("resultTeamSilverTreeNum",silverTreeNum);
+        teamDataMap.put("resultTeamGoldTreeNum",goldTreeNum);
+        teamDataMap.put("resultTeamFarmerNum",farmerNum);
+        teamDataMap.put("resultTeamForestStartNum",forestStartNum);
+        teamDataMap.put("resultTeamPartnerNum",partnerNum);
+        //4.1获取当前团队中最上级的用户对象
+        User highUser = highUser(userId);
+        if (null != highUser){
+            //4.2 最上级用户id
+            String highUserId = highUser.getUserId();
+            //4.1整体团队数据维护
+            teamData(teamDataMap, highUserId);
+        }
+    }
+
 }
-- 
2.18.1