From 1c18faca8b3c3031af60b7a759c9b741294cb37d Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 11 Nov 2022 01:20:42 +0800
Subject: [PATCH] 20221021

---
 src/main/java/cc/mrbird/febs/job/OnHookPlanJob.java         |   37 ++++++++++++------
 src/main/resources/mapper/dapp/DappMemberDao.xml            |   19 +++++++++
 src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java |    2 +
 src/test/java/cc/mrbird/febs/JunitTest.java                 |   43 ++++++++++++++-------
 4 files changed, 73 insertions(+), 28 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java b/src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java
index a8ee956..26236a5 100644
--- a/src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java
+++ b/src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java
@@ -71,4 +71,6 @@
     IPage<AppVersion> getAppVersionListInPage(Page<AppVersion> page, AppVersion appVersion);
 
     IPage<MemberCoinChargeEntity> getChargeListInPage(Page<MemberCoinChargeEntity> page, MemberCoinChargeEntity memberCoinChargeEntity);
+
+    List<DappMemberEntity> selectTotalMemberByRefererIdAndIdentity(@Param("inviteId")String inviteId);
 }
diff --git a/src/main/java/cc/mrbird/febs/job/OnHookPlanJob.java b/src/main/java/cc/mrbird/febs/job/OnHookPlanJob.java
index 80db3f8..f8db81e 100644
--- a/src/main/java/cc/mrbird/febs/job/OnHookPlanJob.java
+++ b/src/main/java/cc/mrbird/febs/job/OnHookPlanJob.java
@@ -427,13 +427,13 @@
             dappMemberDao.updateIdentity();
         }else{
             List<DappMemberEntity> LEVEL_IB = getMemberLevelList(dappMemberEntities, DataDictionaryEnum.LEVEL_MB.getCode(), DataDictionaryEnum.LEVEL_IB.getCode());
-            List<DappMemberEntity> LEVEL_FIB = getMemberLevelList(LEVEL_IB, DataDictionaryEnum.LEVEL_IB.getCode(), DataDictionaryEnum.LEVEL_FIB.getCode());
-            List<DappMemberEntity> LEVEL_CIB = getMemberLevelList(LEVEL_FIB, DataDictionaryEnum.LEVEL_FIB.getCode(), DataDictionaryEnum.LEVEL_CIB.getCode());
-            List<DappMemberEntity> LEVEL_AIB = getMemberLevelList(LEVEL_CIB, DataDictionaryEnum.LEVEL_CIB.getCode(), DataDictionaryEnum.LEVEL_AIB.getCode());
-            List<DappMemberEntity> LEVEL_GIB = getMemberLevelList(LEVEL_AIB, DataDictionaryEnum.LEVEL_AIB.getCode(), DataDictionaryEnum.LEVEL_GIB.getCode());
-            List<DappMemberEntity> LEVEL_BP = getMemberLevelList(LEVEL_GIB, DataDictionaryEnum.LEVEL_GIB.getCode(), DataDictionaryEnum.LEVEL_BP.getCode());
-            List<DappMemberEntity> LEVEL_SP = getMemberLevelList(LEVEL_BP, DataDictionaryEnum.LEVEL_BP.getCode(), DataDictionaryEnum.LEVEL_SP.getCode());
-            List<DappMemberEntity> LEVEL_GP = getMemberLevelList(LEVEL_SP, DataDictionaryEnum.LEVEL_SP.getCode(), DataDictionaryEnum.LEVEL_GP.getCode());
+            List<DappMemberEntity> LEVEL_FIB = getMemberLevelList(dappMemberEntities, DataDictionaryEnum.LEVEL_IB.getCode(), DataDictionaryEnum.LEVEL_FIB.getCode());
+            List<DappMemberEntity> LEVEL_CIB = getMemberLevelList(dappMemberEntities, DataDictionaryEnum.LEVEL_FIB.getCode(), DataDictionaryEnum.LEVEL_CIB.getCode());
+            List<DappMemberEntity> LEVEL_AIB = getMemberLevelList(dappMemberEntities, DataDictionaryEnum.LEVEL_CIB.getCode(), DataDictionaryEnum.LEVEL_AIB.getCode());
+            List<DappMemberEntity> LEVEL_GIB = getMemberLevelList(dappMemberEntities, DataDictionaryEnum.LEVEL_AIB.getCode(), DataDictionaryEnum.LEVEL_GIB.getCode());
+            List<DappMemberEntity> LEVEL_BP = getMemberLevelList(dappMemberEntities, DataDictionaryEnum.LEVEL_GIB.getCode(), DataDictionaryEnum.LEVEL_BP.getCode());
+            List<DappMemberEntity> LEVEL_SP = getMemberLevelList(dappMemberEntities, DataDictionaryEnum.LEVEL_BP.getCode(), DataDictionaryEnum.LEVEL_SP.getCode());
+            List<DappMemberEntity> LEVEL_GP = getMemberLevelList(dappMemberEntities, DataDictionaryEnum.LEVEL_SP.getCode(), DataDictionaryEnum.LEVEL_GP.getCode());
         }
     }
 
@@ -447,14 +447,25 @@
                 Long memberEntityId = dappMemberEntity.getId();
                 String refererId = dappMemberEntity.getRefererId();
                 String inviteId = dappMemberEntity.getInviteId();
-                //下级是否存在三个账户总金额大于51的会员,并且代理等级为identity
-                List<DappMemberEntity> levelMbMembers = dappMemberDao.selectTotalAmountByRefererIdAndIdentity(inviteId,identity);
-                if(CollUtil.isNotEmpty(levelMbMembers) && 3 <= levelMbMembers.size()){
+                //是否存在三条以上的推广线路,存在才能升级,不满足则
+                List<DappMemberEntity> levelMbMembers = dappMemberDao.selectTotalMemberByRefererIdAndIdentity(inviteId);
+                if(3 > levelMbMembers.size()){
+                    dappMemberEntity.setIdentity(DataDictionaryEnum.LEVEL_MB.getCode());
+                    dappMemberDao.updateById(dappMemberEntity);
+                    continue;
+                }
+                int identityDown = 0;
+                for(DappMemberEntity dappMemberDown : levelMbMembers){
+                    //下级是否存在账户总金额大于51的会员,并且代理等级为identity
+                    List<DappMemberEntity> levelMbMembersDown = dappMemberDao.selectTotalAmountByRefererIdAndIdentity(dappMemberDown.getInviteId(),identity);
+                    if(CollUtil.isNotEmpty(levelMbMembersDown)){
+                        identityDown = identityDown + 1;
+                    }
+
+                }
+                if(identityDown >= 3){
                     //设置identityNext级别
                     dappMemberDao.updateIdentityByMemberId(identityNext,memberEntityId);
-                    //获取他的上级会员信息
-                    DappMemberEntity dappMemberEntityNext = dappMemberDao.selectMemberInfoByInviteId(refererId);
-                    dappMemberEntitiesNext.add(dappMemberEntityNext);
                 }
             }
         }
diff --git a/src/main/resources/mapper/dapp/DappMemberDao.xml b/src/main/resources/mapper/dapp/DappMemberDao.xml
index 7f74145..44dd7b6 100644
--- a/src/main/resources/mapper/dapp/DappMemberDao.xml
+++ b/src/main/resources/mapper/dapp/DappMemberDao.xml
@@ -238,7 +238,8 @@
                 inner join dapp_member b on a.member_id = b.id
         where
             a.total_amount <![CDATA[ >= ]]> 51
-          and find_in_set(#{inviteId}, b.referer_ids)
+          and
+            (find_in_set(#{inviteId}, b.referer_ids) or b.invite_id = #{inviteId})
           and b.identity = #{identity}
 
     </select>
@@ -254,4 +255,20 @@
         inner join dapp_member b on b.id = a.member_id
         order  by create_time desc
     </select>
+
+    <select id="selectTotalMemberByRefererIdAndIdentity" resultType="cc.mrbird.febs.dapp.entity.DappMemberEntity">
+        select
+            b.id,
+            b.invite_id,
+            b.referer_id,
+            b.identity,
+            b.referer_ids
+        from
+            dapp_wallet_coin a
+                inner join dapp_member b on a.member_id = b.id
+        where
+            a.total_amount <![CDATA[ >= ]]> 51
+          and b.referer_id = #{inviteId}
+
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/src/test/java/cc/mrbird/febs/JunitTest.java b/src/test/java/cc/mrbird/febs/JunitTest.java
index ec6c347..119c646 100644
--- a/src/test/java/cc/mrbird/febs/JunitTest.java
+++ b/src/test/java/cc/mrbird/febs/JunitTest.java
@@ -318,7 +318,8 @@
 //    }
 //
     @Test
-    public void testUpdateIgt(){Log.info("更新用户代理等级");
+    public void updateMemberLevel(){
+        Log.info("更新用户代理等级");
         DateTime date = DateUtil.date();
         //查询账户总金额大于51的有效用户
         List<DappMemberEntity> dappMemberEntities = dappWalletCoinDao.selectTotalAmount();
@@ -327,13 +328,13 @@
             dappMemberDao.updateIdentity();
         }else{
             List<DappMemberEntity> LEVEL_IB = getMemberLevelList(dappMemberEntities, DataDictionaryEnum.LEVEL_MB.getCode(), DataDictionaryEnum.LEVEL_IB.getCode());
-            List<DappMemberEntity> LEVEL_FIB = getMemberLevelList(LEVEL_IB, DataDictionaryEnum.LEVEL_IB.getCode(), DataDictionaryEnum.LEVEL_FIB.getCode());
-            List<DappMemberEntity> LEVEL_CIB = getMemberLevelList(LEVEL_FIB, DataDictionaryEnum.LEVEL_FIB.getCode(), DataDictionaryEnum.LEVEL_CIB.getCode());
-            List<DappMemberEntity> LEVEL_AIB = getMemberLevelList(LEVEL_CIB, DataDictionaryEnum.LEVEL_CIB.getCode(), DataDictionaryEnum.LEVEL_AIB.getCode());
-            List<DappMemberEntity> LEVEL_GIB = getMemberLevelList(LEVEL_AIB, DataDictionaryEnum.LEVEL_AIB.getCode(), DataDictionaryEnum.LEVEL_GIB.getCode());
-            List<DappMemberEntity> LEVEL_BP = getMemberLevelList(LEVEL_GIB, DataDictionaryEnum.LEVEL_GIB.getCode(), DataDictionaryEnum.LEVEL_BP.getCode());
-            List<DappMemberEntity> LEVEL_SP = getMemberLevelList(LEVEL_BP, DataDictionaryEnum.LEVEL_BP.getCode(), DataDictionaryEnum.LEVEL_SP.getCode());
-            List<DappMemberEntity> LEVEL_GP = getMemberLevelList(LEVEL_SP, DataDictionaryEnum.LEVEL_SP.getCode(), DataDictionaryEnum.LEVEL_GP.getCode());
+            List<DappMemberEntity> LEVEL_FIB = getMemberLevelList(dappMemberEntities, DataDictionaryEnum.LEVEL_IB.getCode(), DataDictionaryEnum.LEVEL_FIB.getCode());
+            List<DappMemberEntity> LEVEL_CIB = getMemberLevelList(dappMemberEntities, DataDictionaryEnum.LEVEL_FIB.getCode(), DataDictionaryEnum.LEVEL_CIB.getCode());
+            List<DappMemberEntity> LEVEL_AIB = getMemberLevelList(dappMemberEntities, DataDictionaryEnum.LEVEL_CIB.getCode(), DataDictionaryEnum.LEVEL_AIB.getCode());
+            List<DappMemberEntity> LEVEL_GIB = getMemberLevelList(dappMemberEntities, DataDictionaryEnum.LEVEL_AIB.getCode(), DataDictionaryEnum.LEVEL_GIB.getCode());
+            List<DappMemberEntity> LEVEL_BP = getMemberLevelList(dappMemberEntities, DataDictionaryEnum.LEVEL_GIB.getCode(), DataDictionaryEnum.LEVEL_BP.getCode());
+            List<DappMemberEntity> LEVEL_SP = getMemberLevelList(dappMemberEntities, DataDictionaryEnum.LEVEL_BP.getCode(), DataDictionaryEnum.LEVEL_SP.getCode());
+            List<DappMemberEntity> LEVEL_GP = getMemberLevelList(dappMemberEntities, DataDictionaryEnum.LEVEL_SP.getCode(), DataDictionaryEnum.LEVEL_GP.getCode());
         }
     }
 
@@ -341,17 +342,31 @@
         List<DappMemberEntity> dappMemberEntitiesNext = new ArrayList<>();
         if(CollUtil.isNotEmpty(dappMemberEntities)){
             for(DappMemberEntity dappMemberEntity : dappMemberEntities){
+                if(ObjectUtil.isEmpty(dappMemberEntity)){
+                    continue;
+                }
                 Long memberEntityId = dappMemberEntity.getId();
                 String refererId = dappMemberEntity.getRefererId();
                 String inviteId = dappMemberEntity.getInviteId();
-                //下级是否存在三个账户总金额大于51的会员,并且代理等级为identity
-                List<DappMemberEntity> levelMbMembers = dappMemberDao.selectTotalAmountByRefererIdAndIdentity(inviteId,identity);
-                if(CollUtil.isNotEmpty(levelMbMembers) && 3 <= levelMbMembers.size()){
+                //是否存在三条以上的推广线路,存在才能升级,不满足则
+                List<DappMemberEntity> levelMbMembers = dappMemberDao.selectTotalMemberByRefererIdAndIdentity(inviteId);
+                if(3 > levelMbMembers.size()){
+                    dappMemberEntity.setIdentity(DataDictionaryEnum.LEVEL_MB.getCode());
+                    dappMemberDao.updateById(dappMemberEntity);
+                    continue;
+                }
+                int identityDown = 0;
+                for(DappMemberEntity dappMemberDown : levelMbMembers){
+                    //下级是否存在账户总金额大于51的会员,并且代理等级为identity
+                    List<DappMemberEntity> levelMbMembersDown = dappMemberDao.selectTotalAmountByRefererIdAndIdentity(dappMemberDown.getInviteId(),identity);
+                    if(CollUtil.isNotEmpty(levelMbMembersDown)){
+                        identityDown = identityDown + 1;
+                    }
+
+                }
+                if(identityDown >= 3){
                     //设置identityNext级别
                     dappMemberDao.updateIdentityByMemberId(identityNext,memberEntityId);
-                    //获取他的上级会员信息
-                    DappMemberEntity dappMemberEntityNext = dappMemberDao.selectMemberInfoByInviteId(refererId);
-                    dappMemberEntitiesNext.add(dappMemberEntityNext);
                 }
             }
         }

--
Gitblit v1.9.1