From 6aad85204b92b3092a09dda58e17cea316d21e28 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Thu, 01 Feb 2024 16:23:58 +0800
Subject: [PATCH] 会员列表增加波卷功能
---
src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java | 20 ++++++++++++++------
1 files changed, 14 insertions(+), 6 deletions(-)
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 5fe8162..2640d2a 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
@@ -863,9 +863,10 @@
mallProductBuy.setMateState(ProductEnum.PRODUCT_BUY_MATE_STATE_SUCCESS.getValue());
mallProductBuyMapper.updateById(mallProductBuy);
BigDecimal nftTotal = mallProductBuy.getNftTotal();
- insertSell(mallProductBuy.getMemberId(),nftTotal,nftTotal,BigDecimal.ZERO,BigDecimal.ZERO);
BigDecimal profit = nftTotal.multiply(profitPercent.multiply(new BigDecimal(0.01)));
- insertSell(mallProductBuy.getMemberId(),profit,profit,BigDecimal.ZERO,BigDecimal.ZERO);
+ BigDecimal add = nftTotal.add(profit);
+ insertSell(mallProductBuy.getMemberId(),add,add,BigDecimal.ZERO,BigDecimal.ZERO);
+// insertSell(mallProductBuy.getMemberId(),profit,profit,BigDecimal.ZERO,BigDecimal.ZERO);
/**
* 更新用户上级收益,冻结7天,7天时间到期自动释放到动态钱包
@@ -881,7 +882,8 @@
DataDictionaryEnum.BASIC_PERK_DIRECT.getType(),
DataDictionaryEnum.BASIC_PERK_DIRECT.getCode()
).getValue()).multiply(new BigDecimal("0.01"));
- BigDecimal basicPerkDirect = profit.multiply(basicPerkDirectPercent).setScale(2, BigDecimal.ROUND_DOWN);
+// BigDecimal basicPerkDirect = profit.multiply(basicPerkDirectPercent).setScale(2, BigDecimal.ROUND_DOWN);
+ BigDecimal basicPerkDirect = nftTotal.multiply(basicPerkDirectPercent).setScale(2, BigDecimal.ROUND_DOWN);
/**
* 先插入流水记录,然后定时器每小时,循环一次找寻对应的数据执行
*/
@@ -923,7 +925,8 @@
);
TeamPerkDto teamPerkDto = JSONObject.parseObject(dataDictionaryCustom.getValue(), TeamPerkDto.class);
if(compareLevel == 0){//团队奖励
- BigDecimal PerkPercent = new BigDecimal(teamPerkDto.getPerkPercent());
+ BigDecimal PerkPercent = new BigDecimal(teamPerkDto.getPerkPercent())
+ .multiply(new BigDecimal("0.01"));
BigDecimal teamPerk = PerkPercent.multiply(profit).setScale(2,BigDecimal.ROUND_DOWN);
/**
* 先插入流水记录,然后定时器循环,找寻对应的数据执行
@@ -943,7 +946,8 @@
equalsPerkBasic = teamPerk;
level = levelRef;
}else if(compareLevel == 2){//平级奖励
- BigDecimal equalsPerkPercent = new BigDecimal(teamPerkDto.getEqualsPerkPercent());
+ BigDecimal equalsPerkPercent = new BigDecimal(teamPerkDto.getEqualsPerkPercent())
+ .multiply(new BigDecimal("0.01"));
BigDecimal equalsPerk = equalsPerkPercent.multiply(equalsPerkBasic).setScale(2,BigDecimal.ROUND_DOWN);
String orderNo = MallUtils.getOrderNum("PJNFT");
if(equalsPerk.compareTo(BigDecimal.ZERO) > 0){
@@ -1374,6 +1378,7 @@
//上级
String referrerId = mallMember.getReferrerId();
MallMember mallMemberRef = memberMapper.selectInfoByInviteId(referrerId);
+ List<MallMember> mallMembersAll = memberMapper.selectAllChildAgentListByInviteId(referrerId);
List<MallMember> mallMembers = memberMapper.selectByRefererId(referrerId);
Set<Long> mallMembersSet = mallMembers.stream().map(MallMember::getId).collect(Collectors.toSet());
@@ -1387,6 +1392,7 @@
/**
* 从会员等级最低到最高,比较intersection与会员设置的直推人数directCntLevel比较
* directCntLevel >= intersection.size(),则满足升级会员等级条件,跳出循环
+ * teamCnt >= mallMembersAll.size(),则满足升级会员等级条件,跳出循环
* 达到最高级别后,升级会员等级,跳出循环
*/
String level = MemberLevelNewEnum.ZERO_LEVEL.getType();
@@ -1397,7 +1403,9 @@
);
TeamPerkDto teamPerkDto = JSONObject.parseObject(levelDic.getValue(), TeamPerkDto.class);
Integer directCntLevel = teamPerkDto.getDirectCnt();
- if(directCntLevel >= intersection.size()){
+ Integer teamCnt = teamPerkDto.getTeamCnt();
+ if(directCntLevel >= intersection.size() &&
+ teamCnt >= mallMembersAll.size()){
mallMemberRef.setLevel(level);
memberMapper.updateById(mallMemberRef);
flag = true;
--
Gitblit v1.9.1