From a3030809804fbb8b10ada3a6375433143c320ff4 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Thu, 11 Jan 2024 11:15:22 +0800
Subject: [PATCH] 套餐
---
src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java | 69 ++++++++++++++++++++++++++--------
1 files changed, 52 insertions(+), 17 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 6ca5f55..369f9c4 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
@@ -50,18 +50,31 @@
List<String> ids = StrUtil.split(member.getReferrerIds(), ',');
List<MallMember> parentMembers = memberMapper.selectByInviteIds(ids);
for (MallMember parent : parentMembers) {
- //level为v6,升级董事,则看团队下有没有两个V6
- List<MallMember> mallMemberTeamMembers = memberMapper.selectAllChildAgentListByInviteId(parent.getInviteId());
- if(CollUtil.isNotEmpty(mallMemberTeamMembers)){
- List<MallMember> levelV6List = mallMemberTeamMembers.stream()
- .filter(teamMember -> teamMember.getLevel().equals(MemberLevelEnum.V6.getType()))
- .collect(Collectors.toList());
- if(CollUtil.isNotEmpty(levelV6List) && levelV6List.size() >= 2){
- parent.setLevel(MemberLevelEnum.V_DIRECTOR.getType());
- parent.setDirector(AppContants.OPTION_YES);
- memberMapper.updateById(parent);
- continue;
- }
+ //level为v6,升级董事,则看直属团队下有没有两个V6
+// List<MallMember> mallMemberChilds = memberMapper.selectByRefererId(parent.getInviteId());
+// if(CollUtil.isNotEmpty(mallMemberChilds)){
+// int directorSize = 0;
+// for(MallMember mallMemberChild : mallMemberChilds){
+// List<MallMember> mallMemberTeamMembers = memberMapper.selectAllChildAgentListByInviteId(mallMemberChild.getInviteId());
+// if(CollUtil.isNotEmpty(mallMemberTeamMembers)){
+// List<MallMember> levelV6List = mallMemberTeamMembers.stream()
+// .filter(teamMember -> teamMember.getLevel().equals(MemberLevelEnum.V6.getType()))
+// .collect(Collectors.toList());
+// if(CollUtil.isNotEmpty(levelV6List)){
+// directorSize = directorSize +1;
+// }
+// }
+// }
+// if(directorSize >= 2){
+// parent.setLevel(MemberLevelEnum.V_DIRECTOR.getType());
+// parent.setDirector(AppContants.OPTION_YES);
+// memberMapper.updateById(parent);
+// continue;
+// }
+// }
+ //V6不能再升级了
+ if(parent.getLevel().equals(MemberLevelEnum.V6.getType())){
+ continue;
}
/**
@@ -201,6 +214,12 @@
* 4、董事享受全公司入单分红2%加权(现金)
* 5、合伙人享全公司入单分红5%加权(现金)
* 6、入单后,50%入现金池 35%的H金劵入H金劵池,更新价格
+ *
+ *
+ * 新增购买套餐返佣逻辑
+ * 1、买了套餐增加权益额度
+ * 2、权益额度每次提现会减少对应的数额
+ * 3、增加每天返佣固定比例的余额
*/
//获取当前订单子表信息
List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectbyOrderId(orderId);
@@ -217,6 +236,26 @@
if(BigDecimal.ZERO.compareTo(amountTCAll) >= 0){
return;
}
+
+ MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(orderId);
+ String orderNo = mallOrderInfo.getOrderNo();
+ //购买人
+ Long memberId = mallOrderInfo.getMemberId();
+ DataDictionaryCustom equityLimitTimesDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.EQUITY_LIMIT_TIMES.getType(),
+ DataDictionaryEnum.EQUITY_LIMIT_TIMES.getCode());
+ BigDecimal equityLimitTimes = new BigDecimal(equityLimitTimesDic.getValue());
+ BigDecimal equityLimit = amountTCAll.multiply(equityLimitTimes);
+ if(BigDecimal.ZERO.compareTo(equityLimit) < 0){
+ addWalletInfoAndMoneyFlow(equityLimit,
+ memberId,
+ "equityLimit",
+ MoneyFlowTypeEnum.TC_TO_EQUITY_LIMIT.getValue(),
+ memberId,
+ FlowTypeEnum.BALANCE.getValue(),
+ orderNo);
+ }
+
BigDecimal amountTC = new BigDecimal(100);
//购买套餐按照1000的基数去补贴,如5000,则补贴5次1000
int times = amountTCAll.divideToIntegralValue(amountTC).intValue();
@@ -225,10 +264,6 @@
}
for(int i = 0; i < times; i++){
- MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(orderId);
- String orderNo = mallOrderInfo.getOrderNo();
- //购买人
- Long memberId = mallOrderInfo.getMemberId();
/**
* 1、购买人获得固定比例的H金劵
@@ -419,7 +454,7 @@
);
if(poolScore.compareTo(BigDecimal.ZERO) > 0 && poolCash.compareTo(BigDecimal.ZERO) > 0){
- BigDecimal divide = poolCash.divide(poolScore, 7, BigDecimal.ROUND_DOWN);
+ BigDecimal divide = poolCash.divide(poolScore, 8, BigDecimal.ROUND_DOWN);
dataDictionaryCustomMapper.updateDicValueByTypeAndCode(
PerkEnum.POOL_SCORE_PRICE.getType(),
PerkEnum.POOL_SCORE_PRICE.getCode(),
--
Gitblit v1.9.1