From 2abf40714b49234e0111389f0651b5c5f7c22029 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 08 Aug 2023 12:37:13 +0800
Subject: [PATCH] 数据修改
---
src/main/java/cc/mrbird/febs/dapp/enumerate/FundFlowEnum.java | 14 +++
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java | 154 +++++++++++++++++++++++--------------
src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java | 1
src/main/java/cc/mrbird/febs/dapp/mapper/DappFundFlowDao.java | 3
src/main/java/cc/mrbird/febs/job/BnbTransferJob.java | 1
src/main/java/cc/mrbird/febs/dapp/entity/TeamLevelPerk.java | 19 +---
6 files changed, 118 insertions(+), 74 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/dapp/entity/TeamLevelPerk.java b/src/main/java/cc/mrbird/febs/dapp/entity/TeamLevelPerk.java
index 2440740..0956cb9 100644
--- a/src/main/java/cc/mrbird/febs/dapp/entity/TeamLevelPerk.java
+++ b/src/main/java/cc/mrbird/febs/dapp/entity/TeamLevelPerk.java
@@ -5,18 +5,13 @@
import java.math.BigDecimal;
/**
- * shareSpeedPercent 共享区加速百分比
- * shareMaxPercent 共享区加速最大值
- * smallAchieve 升级要求业绩
- * teamPercent 团队静态收益
- * orderSalePercent 全网销售额加权平分分红
- * {"shareMinPercent":"0.00004","shareMaxPercent":"0.01","smallAchieve":"20000","teamPercent":"0.15","orderSalePercent":"0"}
- * {"shareMinPercent":"0.00005","shareMaxPercent":"0.012","smallAchieve":"60000","teamPercent":"0.3","orderSalePercent":"0"}
- * {"shareMinPercent":"0.00006","shareMaxPercent":"0.014","smallAchieve":"200000","teamPercent":"0.45","orderSalePercent":"0"}
- * {"shareMinPercent":"0.00007","shareMaxPercent":"0.016","smallAchieve":"600000","teamPercent":"0.60","orderSalePercent":"0"}
- * {"shareMinPercent":"0.00008","shareMaxPercent":"0.018","smallAchieve":"2000000","teamPercent":"0.75","orderSalePercent":"0.02"}
- * {"shareMinPercent":"0.00009","shareMaxPercent":"0.020","smallAchieve":"6000000","teamPercent":"0.90","orderSalePercent":"0.02"}
- * {"shareMinPercent":"0.0001","shareMaxPercent":"0.022","smallAchieve":"20000000","teamPercent":"1","orderSalePercent":"0.02"}
+ * {"shareMinPercent":"0.00004","shareMaxPercent":"0.01","smallAchieve":"20000","teamPercent":"0.15","orderSalePercent":"0","lastAgentCnt":"0","buyMaxAmount","3000"}
+ * {"shareMinPercent":"0.00005","shareMaxPercent":"0.012","smallAchieve":"60000","teamPercent":"0.3","orderSalePercent":"0","lastAgentCnt":"2","buyMaxAmount","3000"}
+ * {"shareMinPercent":"0.00006","shareMaxPercent":"0.014","smallAchieve":"200000","teamPercent":"0.45","orderSalePercent":"0","lastAgentCnt":"2","buyMaxAmount","3000"}
+ * {"shareMinPercent":"0.00007","shareMaxPercent":"0.016","smallAchieve":"600000","teamPercent":"0.60","orderSalePercent":"0","lastAgentCnt":"2","buyMaxAmount","3000"}
+ * {"shareMinPercent":"0.00008","shareMaxPercent":"0.018","smallAchieve":"2000000","teamPercent":"0.75","orderSalePercent":"0.02","lastAgentCnt":"2","buyMaxAmount","3000"}
+ * {"shareMinPercent":"0.00009","shareMaxPercent":"0.020","smallAchieve":"6000000","teamPercent":"0.90","orderSalePercent":"0.02","lastAgentCnt":"2","buyMaxAmount","3000"}
+ * {"shareMinPercent":"0.0001","shareMaxPercent":"0.022","smallAchieve":"20000000","teamPercent":"1","orderSalePercent":"0.02","lastAgentCnt":"2","buyMaxAmount","3000"}
*/
@Data
public class TeamLevelPerk {
diff --git a/src/main/java/cc/mrbird/febs/dapp/enumerate/FundFlowEnum.java b/src/main/java/cc/mrbird/febs/dapp/enumerate/FundFlowEnum.java
index cac1b67..51ebdee 100644
--- a/src/main/java/cc/mrbird/febs/dapp/enumerate/FundFlowEnum.java
+++ b/src/main/java/cc/mrbird/febs/dapp/enumerate/FundFlowEnum.java
@@ -8,7 +8,19 @@
@Getter
public enum FundFlowEnum {
//团队静态收益
- TEAM_PERK("TEAM_PERK", 7),
+ TEAM_PERK_V7("TEAM_PERK_V7", 13),
+ //团队静态收益
+ TEAM_PERK_V6("TEAM_PERK_V6", 12),
+ //团队静态收益
+ TEAM_PERK_V5("TEAM_PERK_V5", 11),
+ //团队静态收益
+ TEAM_PERK_V4("TEAM_PERK_V4", 10),
+ //团队静态收益
+ TEAM_PERK_V3("TEAM_PERK_V3", 9),
+ //团队静态收益
+ TEAM_PERK_V2("TEAM_PERK_V2", 8),
+ //团队静态收益
+ TEAM_PERK_V1("TEAM_PERK_V1", 7),
//直推
DIRECT_AMOUNT("DIRECT_AMOUNT", 6),
//增加余额
diff --git a/src/main/java/cc/mrbird/febs/dapp/mapper/DappFundFlowDao.java b/src/main/java/cc/mrbird/febs/dapp/mapper/DappFundFlowDao.java
index 9332508..12628fa 100644
--- a/src/main/java/cc/mrbird/febs/dapp/mapper/DappFundFlowDao.java
+++ b/src/main/java/cc/mrbird/febs/dapp/mapper/DappFundFlowDao.java
@@ -4,6 +4,7 @@
import cc.mrbird.febs.dapp.entity.MallOrderInfo;
import cc.mrbird.febs.dapp.vo.AdminMallMoneyFlowVo;
import cc.mrbird.febs.dapp.vo.DappFundFlowVo;
+import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -56,5 +57,5 @@
IPage<AdminMallMoneyFlowVo> selectOrderMoneyFlowInPage(Page<AdminMallMoneyFlowVo> page, @Param("record")MallOrderInfo mallOrder);
- List<DappFundFlowEntity> selectListByMemberIdAndTypeAndDate(@Param("memberId")Long memberId, @Param("type")int code, @Param("dateStr")String now);
+ List<DappFundFlowEntity> selectListByMemberIdAndTypeAndDate(@Param("memberId")Long memberId, @Param("type")int code, @Param("dateStr") DateTime now);
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java b/src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java
index 11d0d80..03cfc3b 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java
@@ -116,4 +116,5 @@
void speedDirectPerkMsg(Long memberId);
void teamStaticPerk();
+
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
index 4568cb3..34ed979 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
@@ -2764,10 +2764,7 @@
Long directMemberId = directMember.getId();
chainProducer.sendDirectPerkMsg(directMemberId);
}
-
-
}
-
}
@Override
@@ -2793,7 +2790,7 @@
* 获取用户前一天的所有返利记录
*/
List<DappFundFlowEntity> dappFundFlowEntities = dappFundFlowDao.selectListByMemberIdAndTypeAndDate(memberId,
- FundFlowEnum.STATIC_RELEASE.getCode(),DateUtil.now());
+ FundFlowEnum.STATIC_RELEASE.getCode(),DateUtil.offsetHour(DateUtil.date(),12));
for(DappFundFlowEntity dappFundFlowEntity : dappFundFlowEntities){
BigDecimal staticReleaseAmount = dappFundFlowEntity.getAmount();
BigDecimal directReleaseAmount = staticReleaseAmount.multiply(directRelease).setScale(2, BigDecimal.ROUND_DOWN);
@@ -2803,11 +2800,6 @@
@Override
public void teamStaticPerk() {
- List<DappMemberEntity> dappMemberEntities = dappMemberDao.selectMemberByAccountType(MemberLevelEnum.V1.getType());
- if(CollUtil.isEmpty(dappMemberEntities)){
- return;
- }
-
//平级
DataDictionaryCustom teamPerkEqualsDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
DataDictionaryEnum.TEAM_PERK_LEVEL_EQUALS.getType(),
@@ -2818,68 +2810,112 @@
DataDictionaryEnum.STATIC_RELEASE.getCode());
BigDecimal staticRelease = new BigDecimal(ObjectUtil.isEmpty(staticReleaseDic) ? "0.006" : staticReleaseDic.getValue());
+ List<DappMemberEntity> dappMemberEntities = dappMemberDao.selectMemberByAccountType(MemberLevelEnum.V1.getType());
+ teamStaticPerkMemberLevel(dappMemberEntities,teamPerkEquals,staticRelease,FundFlowEnum.TEAM_PERK_V1.getCode());
+
+ List<DappMemberEntity> v2DappMemberEntities = dappMemberDao.selectMemberByAccountType(MemberLevelEnum.V2.getType());
+ teamStaticPerkMemberLevel(v2DappMemberEntities,teamPerkEquals,staticRelease,FundFlowEnum.TEAM_PERK_V2.getCode());
+
+ List<DappMemberEntity> v3DappMemberEntities = dappMemberDao.selectMemberByAccountType(MemberLevelEnum.V3.getType());
+ teamStaticPerkMemberLevel(v3DappMemberEntities,teamPerkEquals,staticRelease,FundFlowEnum.TEAM_PERK_V3.getCode());
+
+ List<DappMemberEntity> v4DappMemberEntities = dappMemberDao.selectMemberByAccountType(MemberLevelEnum.V4.getType());
+ teamStaticPerkMemberLevel(v4DappMemberEntities,teamPerkEquals,staticRelease,FundFlowEnum.TEAM_PERK_V4.getCode());
+
+ List<DappMemberEntity> v5DappMemberEntities = dappMemberDao.selectMemberByAccountType(MemberLevelEnum.V5.getType());
+ teamStaticPerkMemberLevel(v5DappMemberEntities,teamPerkEquals,staticRelease,FundFlowEnum.TEAM_PERK_V5.getCode());
+
+ List<DappMemberEntity> v6DappMemberEntities = dappMemberDao.selectMemberByAccountType(MemberLevelEnum.V6.getType());
+ teamStaticPerkMemberLevel(v6DappMemberEntities,teamPerkEquals,staticRelease,FundFlowEnum.TEAM_PERK_V6.getCode());
+
+ List<DappMemberEntity> v7DappMemberEntities = dappMemberDao.selectMemberByAccountType(MemberLevelEnum.V7.getType());
+ teamStaticPerkMemberLevel(v7DappMemberEntities,teamPerkEquals,staticRelease,FundFlowEnum.TEAM_PERK_V7.getCode());
+
+ }
+
+ public void shareStaticPerk(List<DappMemberEntity> dappMemberEntities,int code) {
+ if(CollUtil.isEmpty(dappMemberEntities)){
+ return;
+ }
for(DappMemberEntity dappMemberEntity : dappMemberEntities){
- if(StrUtil.isNotEmpty(dappMemberEntity.getRefererIds())){
- String referrerIds = dappMemberEntity.getRefererIds();
- List<String> referrerIdList = StrUtil.splitTrim(referrerIds, ",");
- if(CollUtil.isNotEmpty(referrerIdList)){
- List<DappMemberEntity> mallMemberTeamPerk = dappMemberDao.selectByInviteIds(referrerIdList);
+ }
+ }
- if(CollUtil.isNotEmpty(mallMemberTeamPerk)){
- String levelNormal = MemberLevelEnum.V1.getType();
- BigDecimal cashPercentNormal = BigDecimal.ZERO;
-
- for(DappMemberEntity teamPerkMember : mallMemberTeamPerk){
- String level = teamPerkMember.getAccountType();
- //比较两个级别的大小,level大于levelNormal返回1
- int compareMin = MemberLevelEnum.V1.compareLevel(level, levelNormal);
- int compareMax = MemberLevelEnum.V1.compareLevel(MemberLevelEnum.V7.getType(), level);
- if(compareMin >= 1 && compareMax >= 1){
- DataDictionaryCustom teamPerkMemberDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- "TEAM_LEVEL", level);
- TeamLevelPerk adminAgentInfo = JSONObject.parseObject(teamPerkMemberDic.getValue(), TeamLevelPerk.class);
- BigDecimal cashPercent = adminAgentInfo.getTeamPercent();
- //极差
- if(MemberLevelEnum.V1.compareLevel(levelNormal, level) == 0){
- //平级
- cashPercent = cashPercent.subtract(teamPerkEquals);
- }else{
- cashPercent = cashPercent.subtract(cashPercentNormal);
- }
- //总业绩
- BigDecimal teamIncomeMax = BigDecimal.ZERO;
- //所有直推团队,就是这个会员的所有区域的业绩。
-
- // 直推用户
- List<DappMemberEntity> childs = dappMemberDao.selectMemberInfoByRefererId(teamPerkMember.getInviteId());
- List<String> childsInviteIds = childs.stream().map(DappMemberEntity::getInviteId).collect(Collectors.toList());
- for(String inviteId : childsInviteIds){
- BigDecimal totalIncomeMember = dappMemberDao.selectAllAchieveByInviteId(inviteId);
- teamIncomeMax = teamIncomeMax.add(totalIncomeMember);
- }
- if(BigDecimal.ZERO.compareTo(teamIncomeMax) >= 0){
- continue;
- }
- //V1加速团队静态收益的15%=每日静态的20000*6‰*15%=18元的额外释放加速
- BigDecimal cashAmount = teamIncomeMax.multiply(cashPercent).multiply(staticRelease).setScale(2, BigDecimal.ROUND_DOWN);
-
- BigDecimal bigDecimal = sendPerk(teamPerkMember, cashAmount, null, FundFlowEnum.TEAM_PERK.getCode());
- levelNormal = level;
- cashPercentNormal = adminAgentInfo.getTeamPercent();
- }
- }
- }
+ public void teamStaticPerkMemberLevel(List<DappMemberEntity> dappMemberEntities,
+ BigDecimal teamPerkEquals,
+ BigDecimal staticRelease,
+ int code) {
+ if(CollUtil.isEmpty(dappMemberEntities)){
+ return;
+ }
+ for(DappMemberEntity teamPerkMember : dappMemberEntities){
+ String level = teamPerkMember.getAccountType();
+ //比较两个级别的大小,level大于levelNormal返回1
+ int compareMin = MemberLevelEnum.V1.compareLevel(level, MemberLevelEnum.V1.getType());
+ int compareMax = MemberLevelEnum.V1.compareLevel(MemberLevelEnum.V7.getType(), level);
+ if(compareMin >= 1 && compareMax >= 1){
+ DataDictionaryCustom teamPerkMemberDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ "TEAM_LEVEL", level);
+ TeamLevelPerk adminAgentInfo = JSONObject.parseObject(teamPerkMemberDic.getValue(), TeamLevelPerk.class);
+ BigDecimal cashPercent = adminAgentInfo.getTeamPercent();
+ // 直推用户
+ List<DappMemberEntity> childs = dappMemberDao.selectMemberInfoByRefererId(teamPerkMember.getInviteId());
+ List<DappMemberEntity> collect = childs.stream()
+ .filter(dappMemberEntity -> dappMemberEntity.getAccountType() == MemberLevelEnum.V1.getType())
+ .collect(Collectors.toList());
+ //极差
+ if(CollUtil.isNotEmpty(collect)){
+ //平级
+ cashPercent = teamPerkEquals;
}
+ //所有直推团队,就是这个会员的所有区域的业绩。
+ List<String> childsInviteIds = childs.stream().map(DappMemberEntity::getInviteId).collect(Collectors.toList());
+ //总业绩
+ BigDecimal teamIncomeMax = BigDecimal.ZERO;
+ for(String inviteId : childsInviteIds){
+ BigDecimal totalIncomeMember = dappMemberDao.selectAllAchieveByInviteId(inviteId);
+ teamIncomeMax = teamIncomeMax.add(totalIncomeMember);
+ }
+ if(BigDecimal.ZERO.compareTo(teamIncomeMax) >= 0){
+ continue;
+ }
+ //V1加速团队静态收益的15%=每日静态的20000*6‰*15%=18元的额外释放加速
+ BigDecimal cashAmount = teamIncomeMax.multiply(cashPercent).multiply(staticRelease).setScale(2, BigDecimal.ROUND_DOWN);
+
+ BigDecimal bigDecimal = sendPerk(teamPerkMember, cashAmount, null, code);
}
}
+
}
private BigDecimal sendPerk(DappMemberEntity parentMember,BigDecimal directReleaseAmount,Long orderId
,Integer fundFlowEnumType){
BigDecimal realScoreReduce = BigDecimal.ZERO;
- //用户减少赠送积分
+ if(BigDecimal.ZERO.compareTo(directReleaseAmount) >= 0){
+ return realScoreReduce;
+ }
+ /**
+ * 减少业绩
+ */
+ List<MallAchieveRecord> mallAchieveRecords = mallAchieveRecordMapper.selectListByMemberId(parentMember.getId());
+ if(CollUtil.isEmpty(mallAchieveRecords)){
+ return realScoreReduce;
+ }
+ BigDecimal totalAchieve = mallAchieveRecords.stream().map(MallAchieveRecord::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+ if(directReleaseAmount.compareTo(totalAchieve) >= 0){
+ realScoreReduce = totalAchieve;
+ for(MallAchieveRecord mallAchieveRecord : mallAchieveRecords){
+ mallAchieveRecord.setAmount(BigDecimal.ZERO);
+ mallAchieveRecord.setIsNormal(2);
+ mallAchieveRecordMapper.updateById(mallAchieveRecord);
+ }
+ }
+
+ /**
+ * 用户减少赠送积分
+ */
DappWalletMineEntity dappWalletMineEntity = dappWalletMineDao.selectByMemberId(parentMember.getId());
BigDecimal totalScore = dappWalletMineEntity.getTotalAmount();
BigDecimal availableScore = dappWalletMineEntity.getAvailableAmount();
diff --git a/src/main/java/cc/mrbird/febs/job/BnbTransferJob.java b/src/main/java/cc/mrbird/febs/job/BnbTransferJob.java
index 569f4be..218c94d 100644
--- a/src/main/java/cc/mrbird/febs/job/BnbTransferJob.java
+++ b/src/main/java/cc/mrbird/febs/job/BnbTransferJob.java
@@ -56,5 +56,4 @@
dappSystemService.teamStaticPerk();
}
-
}
--
Gitblit v1.9.1