From e75b2614c89004ba604c1e4f7ec700f1f422c171 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Sat, 08 Apr 2023 17:36:19 +0800
Subject: [PATCH] 设置内转开关
---
src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java | 75 +++++++++++++++++++++++++------------
src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java | 2 +
src/main/resources/mapper/modules/MallMemberMapper.xml | 7 +++
src/main/resources/mapper/modules/DataDictionaryCustomMapper.xml | 8 +++-
4 files changed, 66 insertions(+), 26 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java
index 0e75d37..1be4bf1 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java
@@ -90,4 +90,6 @@
List<MallMember> selectDirectorsOrStoreMaster(@Param("type") Integer type);
List<MallMember> selectMemberWithLevel(String level);
+
+ BigDecimal selectAllAchieveByInviteId(@Param("inviteId")String inviteId);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
index a356f36..06c2285 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
@@ -5,6 +5,8 @@
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.*;
+import cc.mrbird.febs.mall.vo.AdminAgentLevelVo;
+import cc.mrbird.febs.mall.vo.AdminAgentMemberVo;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
@@ -49,30 +51,39 @@
List<MallMember> parentMembers = memberMapper.selectByInviteIds(ids);
for (MallMember parent : parentMembers) {
// 未激活用户无法升级
- if (AgentLevelEnum.ZERO_LEVEL.name().equals(member.getLevel())) {
+// if (AgentLevelEnum.ZERO_LEVEL.name().equals(member.getLevel())) {
+// continue;
+// }
+ /**
+ * 升级到董事就无法升级了
+ */
+ String nextLevelName = MemberLevelEnum.NORMAL.getNextLevel(parent.getLevel());
+ int levelCode = MemberLevelEnum.NORMAL.getLevelCode(nextLevelName);
+ if(levelCode >= 7){
continue;
}
- DataDictionaryCustom nextLevel = dataDictionaryCustomMapper.selectNextAgentLevelInfo(parent.getLevel());
- if (nextLevel == null) {
- log.info("当前层级无下一级:{}", parent.getLevel());
+// DataDictionaryCustom nextLevel = dataDictionaryCustomMapper.selectNextAgentLevelInfo(parent.getLevel());
+// if (nextLevel == null) {
+// log.info("当前层级无下一级:{}", parent.getLevel());
+// continue;
+// }
+ DataDictionaryCustom newLevelDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode("AGENT_PERK_SET", nextLevelName);
+
+ AdminAgentInfo adminAgentInfo = JSONObject.parseObject(newLevelDic.getValue(), AdminAgentInfo.class);
+ if (!directMemberCnt(parent, adminAgentInfo)) {
continue;
}
- AgentInfo agentInfo = JSONObject.parseObject(nextLevel.getValue(), AgentInfo.class);
- if (!directMemberCnt(parent, agentInfo)) {
+// if (!agentCntFinish(parent, adminAgentInfo)) {
+// continue;
+// }
+
+ if (!teamIncome(parent, adminAgentInfo)) {
continue;
}
- if (!agentCntFinish(parent, agentInfo)) {
- continue;
- }
-
- if (!teamIncome(parent, agentInfo)) {
- continue;
- }
-
- parent.setLevel(nextLevel.getCode());
+ parent.setLevel(newLevelDic.getCode());
memberMapper.updateById(parent);
}
}
@@ -83,7 +94,7 @@
* @param member
* @return
*/
- private boolean directMemberCnt(MallMember member, AgentInfo agentInfo) {
+ private boolean directMemberCnt(MallMember member, AdminAgentInfo agentInfo) {
List<MallMember> childs = memberMapper.selectByRefererId(member.getInviteId());
if (CollUtil.isEmpty(childs)) {
return false;
@@ -93,7 +104,7 @@
return true;
}
- log.info("用户:{}直推数量未达标, 当前等级:{}, 当前数量:{}, 目标数量:{}", member.getPhone(), member.getLevel(), childs.size(), agentInfo.getLastAgentCnt());
+ log.info("用户:{}直推数量未达标, 当前等级:{}, 当前数量:{}, 目标数量:{}", member.getPhone(), member.getLevel(), childs.size(), agentInfo.getDirectCnt());
return false;
}
@@ -132,20 +143,36 @@
/**
* 团队业绩是否达标
+ * 除去直属的最大的一个业绩团队,剩余的所有业绩之和
*
* @param
* @param agentInfo
* @return
*/
- private boolean teamIncome(MallMember member, AgentInfo agentInfo) {
- BigDecimal totalIncome = memberMapper.selectAchieveByMemberId(member.getInviteId(), 2);
-
- BigDecimal targetIncome = agentInfo.getTeamIncome().multiply(new BigDecimal("10000"));
- if (totalIncome.compareTo(targetIncome) >= 0) {
- return true;
+ private boolean teamIncome(MallMember member, AdminAgentInfo agentInfo) {
+ BigDecimal teamIncome = agentInfo.getTeamIncome();
+ //业绩集合
+ List<BigDecimal> list = new ArrayList<>();
+ //总业绩
+ BigDecimal teamIncomeMax = BigDecimal.ZERO;
+ //所有直推团队
+ List<MallMember> mallMembers = mallMemberMapper.selectByRefererId(member.getInviteId());
+ List<String> mallMemberInviteIds = mallMembers.stream().map(MallMember::getInviteId).collect(Collectors.toList());
+ for(String inviteId : mallMemberInviteIds){
+ BigDecimal totalIncomeMember = memberMapper.selectAllAchieveByInviteId(inviteId);
+ teamIncomeMax = teamIncomeMax.add(totalIncomeMember);
+ list.add(totalIncomeMember);
}
- log.info("用户:{}团队业绩未达标, 当前等级:{}, 当前数量:{}, 目标数量:{}", member.getPhone(), member.getLevel(), totalIncome, targetIncome);
+
+
+
+// BigDecimal targetIncome = agentInfo.getTeamIncome().multiply(new BigDecimal("10000"));
+// if (totalIncome.compareTo(targetIncome) >= 0) {
+// return true;
+// }
+//
+// log.info("用户:{}团队业绩未达标, 当前等级:{}, 当前数量:{}, 目标数量:{}", member.getPhone(), member.getLevel(), totalIncome, targetIncome);
return false;
}
diff --git a/src/main/resources/mapper/modules/DataDictionaryCustomMapper.xml b/src/main/resources/mapper/modules/DataDictionaryCustomMapper.xml
index a0b1b5b..53848d4 100644
--- a/src/main/resources/mapper/modules/DataDictionaryCustomMapper.xml
+++ b/src/main/resources/mapper/modules/DataDictionaryCustomMapper.xml
@@ -16,8 +16,12 @@
<select id="selectNextAgentLevelInfo" resultType="cc.mrbird.febs.mall.entity.DataDictionaryCustom">
- select * from data_dictionary_custom x
- where x.type='AGENT_LEVEL_REQUIRE' and x.code = (
+ select
+ *
+ from
+ data_dictionary_custom x
+ where
+ x.type='AGENT_LEVEL_REQUIRE' and x.code = (
select a.code from data_dictionary_custom a
where a.type='AGENT_LEVEL' and a.value > (select b.value from data_dictionary_custom b where b.type='AGENT_LEVEL' and b.code=#{level})
order by a.value limit 1
diff --git a/src/main/resources/mapper/modules/MallMemberMapper.xml b/src/main/resources/mapper/modules/MallMemberMapper.xml
index 1f773fb..5f36eb1 100644
--- a/src/main/resources/mapper/modules/MallMemberMapper.xml
+++ b/src/main/resources/mapper/modules/MallMemberMapper.xml
@@ -405,4 +405,11 @@
select * from mall_member
where level=#{level}
</select>
+
+ <select id="selectAllAchieveByInviteId" resultType="java.math.BigDecimal">
+ select IFNULL(sum(IFNULL(a.amount, 0)), 0)
+ from mall_achieve_record a
+ inner join mall_member b on a.member_id=b.ID
+ where find_in_set(#{inviteId}, b.referrer_ids) or b.invite_id = #{inviteId}
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.1