From 113f3a5d3b843fba68ce50a3ba3255c66ca1e15f Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 17 Jan 2023 20:13:57 +0800
Subject: [PATCH] 20221227 充值归集
---
src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java | 65 +++++++++++++++++++-------------
1 files changed, 39 insertions(+), 26 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 2fea264..e8ccefb 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
@@ -163,7 +163,6 @@
@Transactional
public void directReward(Long directRewardId) {
log.info("消费补贴奖励、直推返利、分享奖励直推上级、分享奖励直推上级的直推、团队管理补贴消息,ID:{}", directRewardId);
- //获取订单信息
MallOrderInfo orderInfo = mallOrderInfoMapper.selectById(directRewardId);
if(ObjectUtil.isEmpty(orderInfo)){
return;
@@ -186,7 +185,7 @@
Long subsidyAmountFlowId = mallMoneyFlowService.addMoneyFlow(
mallMember.getId(),
orderInfo.getOrderNo(),
- subsidyAmount.setScale(2, BigDecimal.ROUND_DOWN),
+ subsidyAmount.setScale(4, BigDecimal.ROUND_DOWN),
MallMoneyFlowTypeEnum.MARKET_SUBSIDIES.getCode(),
MallMoneyFlow.STATUS_SUCCESS,
MallMoneyFlow.IS_RETURN_Y,
@@ -209,36 +208,39 @@
* 2、返利对象:下单人的直推上级 10%,直推的直推 5%
* 3、金额:补贴金额乘以分享奖励的比例
*/
+ if(StrUtil.isEmpty(mallMember.getReferrerId())){
+ return;
+ }
//下单人的直推上级
MallMember mallMemberOne = memberMapper.selectInfoByInviteId(mallMember.getReferrerId());
//生成直推返利的流水记录
if(ObjectUtil.isNotEmpty(mallMemberOne)){
- DataDictionaryCustom rewardPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.REWARD_PERCENT.getType(),
- DataDictionaryEnum.REWARD_PERCENT.getCode()
- );
- BigDecimal rewardPercent = new BigDecimal(rewardPercentDic.getValue()).multiply(new BigDecimal(0.01)).setScale(2,BigDecimal.ROUND_DOWN);
- BigDecimal directRewardAmount = subsidyAmount.multiply(rewardPercent).setScale(2, BigDecimal.ROUND_DOWN);
-
- Long marketSubsidyFlowId = mallMoneyFlowService.addMoneyFlow(
- mallMember.getId(),
- orderInfo.getOrderNo(),
- directRewardAmount,
- MallMoneyFlowTypeEnum.DIRECT_REWARD.getCode(),
- MallMoneyFlow.STATUS_SUCCESS,
- MallMoneyFlow.IS_RETURN_Y,
- mallMemberOne.getId(),
- FlowTypeEnum.BALANCE.getValue(),
- MallMoneyFlowTypeEnum.DIRECT_REWARD.getName()
- );
- memberWalletService.addBalance(directRewardAmount,mallMemberOne.getId());
+// DataDictionaryCustom rewardPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+// DataDictionaryEnum.REWARD_PERCENT.getType(),
+// DataDictionaryEnum.REWARD_PERCENT.getCode()
+// );
+// BigDecimal rewardPercent = new BigDecimal(rewardPercentDic.getValue()).multiply(new BigDecimal(0.01)).setScale(2,BigDecimal.ROUND_DOWN);
+// BigDecimal directRewardAmount = subsidyAmount.multiply(rewardPercent).setScale(4, BigDecimal.ROUND_DOWN);
+//
+// Long marketSubsidyFlowId = mallMoneyFlowService.addMoneyFlow(
+// mallMember.getId(),
+// orderInfo.getOrderNo(),
+// directRewardAmount,
+// MallMoneyFlowTypeEnum.DIRECT_REWARD.getCode(),
+// MallMoneyFlow.STATUS_SUCCESS,
+// MallMoneyFlow.IS_RETURN_Y,
+// mallMemberOne.getId(),
+// FlowTypeEnum.BALANCE.getValue(),
+// MallMoneyFlowTypeEnum.DIRECT_REWARD.getName()
+// );
+// memberWalletService.addBalance(directRewardAmount,mallMemberOne.getId());
DataDictionaryCustom shareOneDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
DataDictionaryEnum.LEVEL_ONE.getType(),
DataDictionaryEnum.LEVEL_ONE.getCode()
);
//生成分享奖励的流水记录
BigDecimal shareOne = new BigDecimal(shareOneDic.getValue()).multiply(new BigDecimal(0.01)).setScale(2,BigDecimal.ROUND_DOWN);
- BigDecimal shareOneAmount = subsidyAmount.multiply(shareOne).setScale(2, BigDecimal.ROUND_DOWN);
+ BigDecimal shareOneAmount = subsidyAmount.multiply(shareOne).setScale(4, BigDecimal.ROUND_DOWN);
Long ShareOneFlowId = mallMoneyFlowService.addMoneyFlow(
mallMember.getId(),
orderInfo.getOrderNo(),
@@ -252,6 +254,10 @@
);
memberWalletService.addBalance(shareOneAmount,mallMemberOne.getId());
}
+
+ if(StrUtil.isEmpty(mallMemberOne.getReferrerId())){
+ return;
+ }
//下单人的直推上级的直推
MallMember mallMemberTwo = memberMapper.selectInfoByInviteId(mallMemberOne.getReferrerId());
if(ObjectUtil.isNotEmpty(mallMemberTwo)){
@@ -260,7 +266,7 @@
DataDictionaryEnum.LEVEL_TWO.getCode()
);
BigDecimal shareTwo = new BigDecimal(shareTwoDic.getValue()).multiply(new BigDecimal(0.01)).setScale(2,BigDecimal.ROUND_DOWN);
- BigDecimal shareTwoAmount = subsidyAmount.multiply(shareTwo).setScale(2, BigDecimal.ROUND_DOWN);
+ BigDecimal shareTwoAmount = subsidyAmount.multiply(shareTwo).setScale(4, BigDecimal.ROUND_DOWN);
Long shareTwoFlowId = mallMoneyFlowService.addMoneyFlow(
mallMember.getId(),
orderInfo.getOrderNo(),
@@ -277,6 +283,11 @@
/**
* 团队管理补贴
*/
+
+
+ if(StrUtil.isEmpty(mallMember.getReferrerIds())){
+ return;
+ }
//下单人所有的上级
String referrerIds = mallMember.getReferrerIds();
List<String> refererIdList = StrUtil.split(referrerIds, ",", -1, true, true);
@@ -300,19 +311,20 @@
}
}
if(CollUtil.isNotEmpty(refererIdListUp)){
+ levelStart = mallMember.getLevel();
for(String inviteId : refererIdList){
MallMember mallMemberUp = memberMapper.selectInfoByInviteId(inviteId);
String levelUp = mallMemberUp.getLevel();
//获取团队分享比例
BigDecimal manageSubsidyPercent = getManageSubsidyPercent(levelStart, levelUp);
if(manageSubsidyPercent.compareTo(BigDecimal.ZERO) > 0){
- BigDecimal teamManageAmount = subsidyAmount.multiply(manageSubsidyPercent).setScale(2, BigDecimal.ROUND_DOWN);
+ BigDecimal teamManageAmount = subsidyAmount.multiply(manageSubsidyPercent).setScale(4, BigDecimal.ROUND_DOWN);
//生成团队分享流水
Long teamManageFlowId = mallMoneyFlowService.addMoneyFlow(
mallMember.getId(),
orderInfo.getOrderNo(),
teamManageAmount,
- MallMoneyFlowTypeEnum.SHARE_REWARD_TWO.getCode(),
+ MallMoneyFlowTypeEnum.TEAM_REWARD.getCode(),
MallMoneyFlow.STATUS_SUCCESS,
MallMoneyFlow.IS_RETURN_Y,
mallMemberUp.getId(),
@@ -349,7 +361,8 @@
// 满足,需要减去levelStart的团队管理奖励
String minLevel = MemberAgentLevelEnum.AGENT_ONE.minLevel(agentCodeUp);
if(levelStart.equals(minLevel)
- && MemberAgentLevelEnum.AGENT.getName() != levelStart){
+ && !MemberAgentLevelEnum.AGENT.getName().equals(levelStart)){
+// && MemberAgentLevelEnum.AGENT.getName()levelStart){
BigDecimal dicManageSubsidyPercentUp = getDicManageSubsidyPercent(agentCodeUp);
BigDecimal dicManageSubsidyPercentStart = getDicManageSubsidyPercent(agentCodeStart);
manageSubsidyPercent = dicManageSubsidyPercentUp.subtract(dicManageSubsidyPercentStart);
--
Gitblit v1.9.1