From 65cf739fe077c398d35e58a083a1c7be40a3b7a2 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Sun, 06 Aug 2023 23:32:39 +0800
Subject: [PATCH] 数据修改
---
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java | 107 +++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 91 insertions(+), 16 deletions(-)
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 4315ec3..4bc2400 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
@@ -2,6 +2,7 @@
import cc.mrbird.febs.common.contants.AppContants;
import cc.mrbird.febs.common.exception.FebsException;
+import cc.mrbird.febs.common.tree.MatrixTree;
import cc.mrbird.febs.common.tree.MemberNode;
import cc.mrbird.febs.common.utils.LoginUserUtil;
import cc.mrbird.febs.common.utils.RedisUtils;
@@ -2488,26 +2489,100 @@
return;
}
- List<DataDictionaryCustom> dicList = dataDictionaryCustomMapper.selectDicByType(AppContants.AGENT_LEVEL);
- DataDictionaryCustom dic = null;
- for (DataDictionaryCustom dataDictionaryCustom : dicList) {
- if (Integer.parseInt(dataDictionaryCustom.getValue()) == parentNode.CHILD.size()) {
- dic = dataDictionaryCustom;
- break;
- }
- }
-
- if (dic == null) {
+ MatrixTree matrixTree = MatrixTree.getInstance();
+ List<MemberNode> allNodes = matrixTree.getAllAncestors(parentNode); // 获取某一个MemberNode的所有上级节点
+ allNodes.add(parentNode);
+ if(CollUtil.isEmpty(allNodes)){
return;
}
+ /**
+ * 更新所有上级的小区业绩
+ */
+ for(MemberNode memberNode : allNodes){
+ BigDecimal smallAchieve = BigDecimal.ZERO;
+ List<MemberNode> allNodesChildList = memberNode.getCHILD();
+ if(CollUtil.isNotEmpty(allNodesChildList)){
+ List<Long> left = allNodesChildList.stream().filter(allNodesChild -> allNodesChild.getType() == 1).map(MemberNode::getMemberId).collect(Collectors.toList());
+ List<Long> right = allNodesChildList.stream().filter(allNodesChild -> allNodesChild.getType() == 2).map(MemberNode::getMemberId).collect(Collectors.toList());
- MallMember parentMember = memberMapper.selectById(parentNode.getMemberId());
- parentMember.setChildNodeCnt(parentNode.CHILD.size());
- int levelCode = MemberLevelEnum.getLevelCode(parentMember.getLevel());
- if (Integer.parseInt(dic.getValue()) >= levelCode) {
- parentMember.setLevel(dic.getCode());
+ BigDecimal leftAmount = mallAchieveRecordMapper.selectSumAchieveByMemberIdList(left);
+
+ BigDecimal rightAmount = mallAchieveRecordMapper.selectSumAchieveByMemberIdList(right);
+ if(leftAmount.compareTo(rightAmount) > 0){
+ smallAchieve = rightAmount;
+ }else{
+ smallAchieve = leftAmount;
+ }
+ //更新用户的区域业绩
+ DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberNode.getMemberId());
+ dappMemberEntity.setUsdtBalance(smallAchieve);
+ dappMemberEntity.setLeftAchieve(leftAmount);
+ dappMemberEntity.setRightAchieve(rightAmount);
+ dappMemberDao.updateById(dappMemberEntity);
+ log.info("用户:{},leftAchieve :{}, rightAchieve:{}, smallAchieve:{}",
+ dappMemberEntity.getAddress(), leftAmount, rightAmount, smallAchieve);
+
+ /**
+ * 判断是否符合升级条件
+ */
+ String nextLevel = MemberLevelEnum.MEMBER.getNextLevel(dappMemberEntity.getAccountType());
+ DataDictionaryCustom memberLevelDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.V1.getType()
+ , nextLevel);
+ if(ObjectUtil.isNotEmpty(memberLevelDic)){
+ String value = memberLevelDic.getValue();
+ cn.hutool.json.JSONObject parseObj = JSONUtil.parseObj(value);
+ BigDecimal smallAchieveDic = new BigDecimal(parseObj.get("smallAchieve").toString());
+ if(smallAchieve.compareTo(smallAchieveDic) >= 0){
+ //升级
+ dappMemberEntity.setAccountType(nextLevel);
+ dappMemberDao.updateById(dappMemberEntity);
+ }
+ }
+ }
}
- memberMapper.updateById(parentMember);
+ }
+
+ @Override
+ public void memberPerk() {
+ List<DappMemberEntity> dappMemberEntityList = dappMemberDao.selectMemberByActiveStatus();
+ if(CollUtil.isEmpty(dappMemberEntityList)){
+ return;
+ }
+ DataDictionaryCustom staticReleaseDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.STATIC_RELEASE.getType(),
+ DataDictionaryEnum.STATIC_RELEASE.getCode()
+ );
+ if(ObjectUtil.isEmpty(staticReleaseDic)){
+ return;
+ }
+ BigDecimal staticRelease = new BigDecimal(staticReleaseDic.getValue() == null ? "0" : staticReleaseDic.getValue());
+ if(BigDecimal.ZERO.compareTo(staticRelease) >= 0){
+ return;
+ }
+ for(DappMemberEntity dappMemberEntity : dappMemberEntityList){
+ if(1 != dappMemberEntity.getActiveStatus()){
+ break;
+ }
+ List<MallAchieveRecord> mallAchieveRecords = mallAchieveRecordMapper.selectListByMemberId(dappMemberEntity.getId());
+ /**
+ * 按照订单、比例生成对应的静态释放
+ */
+ for(MallAchieveRecord mallAchieveRecord : mallAchieveRecords){
+ BigDecimal costAmount = mallAchieveRecord.getCostAmount();
+ BigDecimal amount = mallAchieveRecord.getAmount();
+ BigDecimal eachDayPerk = costAmount.multiply(staticRelease).setScale(2,BigDecimal.ROUND_DOWN);
+ /**
+ * 生成一条静态补贴的流水
+ * 增加账户余额
+ * 生成减少赠送积分流水
+ * 减少账户的赠送积分
+ * 业绩记录减少实际业绩amount
+ *
+ */
+ }
+
+ }
}
/**
--
Gitblit v1.9.1