From d03394c01ca1ae7f3431755c628e1bd2106dc287 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Mon, 28 Aug 2023 18:03:20 +0800
Subject: [PATCH] 后台修改
---
src/main/java/cc/mrbird/febs/dapp/entity/MallAchieveRecord.java | 8 ++++
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java | 63 ++++++++++++++++++++++---------
src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java | 6 ++-
src/main/resources/mapper/dapp/MallAchieveRecordMapper.xml | 9 ++++
src/main/java/cc/mrbird/febs/dapp/mapper/MallAchieveRecordMapper.java | 1
5 files changed, 66 insertions(+), 21 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/dapp/entity/MallAchieveRecord.java b/src/main/java/cc/mrbird/febs/dapp/entity/MallAchieveRecord.java
index 19e60ff..a2df0e6 100644
--- a/src/main/java/cc/mrbird/febs/dapp/entity/MallAchieveRecord.java
+++ b/src/main/java/cc/mrbird/febs/dapp/entity/MallAchieveRecord.java
@@ -20,6 +20,10 @@
private BigDecimal amount;
//订单成本
private BigDecimal costAmount;
+ //剩余积分
+ private BigDecimal score;
+ //总共积分
+ private BigDecimal costScore;
private Date achieveTime;
@@ -34,6 +38,8 @@
public MallAchieveRecord(Long memberId,
+ BigDecimal score,
+ BigDecimal costScore,
BigDecimal amount,
BigDecimal costAmount,
Date achieveTime,
@@ -41,6 +47,8 @@
Integer isNormal,
Date payTime) {
this.memberId = memberId;
+ this.score = score;
+ this.costScore = costScore;
this.amount = amount;
this.costAmount = costAmount;
this.achieveTime = achieveTime;
diff --git a/src/main/java/cc/mrbird/febs/dapp/mapper/MallAchieveRecordMapper.java b/src/main/java/cc/mrbird/febs/dapp/mapper/MallAchieveRecordMapper.java
index 9411f9e..83812ee 100644
--- a/src/main/java/cc/mrbird/febs/dapp/mapper/MallAchieveRecordMapper.java
+++ b/src/main/java/cc/mrbird/febs/dapp/mapper/MallAchieveRecordMapper.java
@@ -26,6 +26,7 @@
List<MallAchieveRecord> selectListByDate(@Param("date")Date profitDate);
List<MallAchieveRecord> selectListByMemberId(@Param("memberId")Long memberId);
+ List<MallAchieveRecord> selectListByMemberIdAndScore(@Param("memberId")Long memberId);
List<MallAchieveRecord> selectListCostAmountByMemberId(@Param("memberId")Long memberId);
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
index 6cb3dc4..03eb2c8 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
@@ -218,7 +218,8 @@
for(DappMemberEntity memberEntity : records){
Long memberId = memberEntity.getId();
- List<MallAchieveRecord> mallAchieveRecords = mallAchieveRecordMapper.selectListByMemberId(memberId);
+// List<MallAchieveRecord> mallAchieveRecords = mallAchieveRecordMapper.selectListByMemberId(memberId);
+ List<MallAchieveRecord> mallAchieveRecords = mallAchieveRecordMapper.selectListByMemberIdAndScore(memberId);
BigDecimal myShareAchieve = BigDecimal.ZERO;
if(CollUtil.isNotEmpty(mallAchieveRecords)){
Date payTime = mallAchieveRecords.get(0).getPayTime();
@@ -545,7 +546,8 @@
dappMemberInfoVo.setPayCnt(payCnt);
dappMemberInfoVo.setCancelCnt(cancelCnt);
- List<MallAchieveRecord> mallAchieveRecords = mallAchieveRecordMapper.selectListByMemberId(member.getId());
+// List<MallAchieveRecord> mallAchieveRecords = mallAchieveRecordMapper.selectListByMemberId(member.getId());
+ List<MallAchieveRecord> mallAchieveRecords = mallAchieveRecordMapper.selectListByMemberIdAndScore(member.getId());
BigDecimal myShareAchieve = BigDecimal.ZERO;
if(CollUtil.isNotEmpty(mallAchieveRecords)){
Date payTime = mallAchieveRecords.get(0).getPayTime();
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 0ec6d3e..41d4b9b 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
@@ -33,6 +33,7 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.jline.utils.Log;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.web3j.utils.Convert;
@@ -2469,7 +2470,7 @@
* 新增一条业绩
*/
MallAchieveRecord mallAchieveRecord = new MallAchieveRecord(
- memberId,amount,amount,DateUtil.date(),orderId,1,mallOrderInfo.getPayTime()
+ memberId,donateScore,donateScore,amount,amount,DateUtil.date(),orderId,1,mallOrderInfo.getPayTime()
);
mallAchieveRecordMapper.insert(mallAchieveRecord);
@@ -2629,7 +2630,8 @@
}
Long perkMemberId = dappMemberEntity.getId();
//获取当前用户所有进行中的业绩释放
- List<MallAchieveRecord> mallAchieveRecords = mallAchieveRecordMapper.selectListByMemberId(perkMemberId);
+// List<MallAchieveRecord> mallAchieveRecords = mallAchieveRecordMapper.selectListByMemberId(perkMemberId);
+ List<MallAchieveRecord> mallAchieveRecords = mallAchieveRecordMapper.selectListByMemberIdAndScore(perkMemberId);
if(CollUtil.isEmpty(mallAchieveRecords)){
continue;
@@ -2943,6 +2945,9 @@
}
for(DappFundFlowEntity dappFundFlowEntity : dappFundFlowEntities){
Long memberId = dappFundFlowEntity.getMemberId();
+ if(memberId == 2852L){
+ Log.info("1");
+ }
//当日预期总收益
BigDecimal amount = dappFundFlowEntity.getAmount();
if(BigDecimal.ZERO.compareTo(amount) >= 0){
@@ -2950,8 +2955,9 @@
}
//当日预期总收益
BigDecimal amountMagic = amount;
- List<MallAchieveRecord> mallAchieveRecords = mallAchieveRecordMapper.selectListByMemberId(memberId);
- if(CollUtil.isEmpty(mallAchieveRecords)){
+// List<MallAchieveRecord> mallAchieveRecords = mallAchieveRecordMapper.selectListByMemberId(memberId);
+ List<MallAchieveRecord> mallAchieveRecordsScore = mallAchieveRecordMapper.selectListByMemberIdAndScore(memberId);
+ if(CollUtil.isEmpty(mallAchieveRecordsScore)){
BigDecimal localTotalAchieve = amount;
/**
@@ -2961,7 +2967,9 @@
DappWalletMineEntity dappWalletMineEntity = dappWalletMineDao.selectByMemberId(memberId);
BigDecimal totalScore = dappWalletMineEntity.getTotalAmount();
BigDecimal availableScore = dappWalletMineEntity.getAvailableAmount();
-
+ if(BigDecimal.ZERO.compareTo(totalScore) >= 0){
+ continue;
+ }
if(localTotalAchieve.compareTo(totalScore) >= 0){
localTotalAchieve = totalScore;
//当实际获取大于用户的赠送积分,将用户更新为未激活
@@ -3050,9 +3058,13 @@
set.add(dappMemberEntity);
continue;
}
+
+
//实际获取总收益
BigDecimal localTotalAchieve = BigDecimal.ZERO;
- BigDecimal totalAchieve = mallAchieveRecords.stream().map(MallAchieveRecord::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+ BigDecimal totalAchieve = mallAchieveRecordsScore.stream().map(MallAchieveRecord::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+ BigDecimal totalAchieveCostAmount = mallAchieveRecordsScore.stream().map(MallAchieveRecord::getCostAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+ BigDecimal totalScoreAva = mallAchieveRecordsScore.stream().map(MallAchieveRecord::getScore).reduce(BigDecimal.ZERO, BigDecimal::add);
//用户每日获取的最大值
DataDictionaryCustom maxReleaseDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
@@ -3061,19 +3073,23 @@
);
BigDecimal maxRelease = new BigDecimal(ObjectUtil.isEmpty(maxReleaseDic) ? "1" : maxReleaseDic.getValue());
//用户每日获取的最大值
- BigDecimal maxReleaseMember = totalAchieve.multiply(maxRelease).setScale(2, BigDecimal.ROUND_DOWN);
+ BigDecimal maxReleaseMember = totalAchieveCostAmount.multiply(maxRelease).setScale(2, BigDecimal.ROUND_DOWN);
if(amount.compareTo(maxReleaseMember) > 0){
amount = maxReleaseMember;
}
//当日获取总收益大于总业绩
- if(amount.compareTo(totalAchieve) >= 0){
- for(MallAchieveRecord memberAchieve : mallAchieveRecords){
+// if(amount.compareTo(totalAchieve) >= 0){
+ if(amount.compareTo(totalScoreAva) >= 0){
+ for(MallAchieveRecord memberAchieve : mallAchieveRecordsScore){
memberAchieve.setIsNormal(2);
memberAchieve.setAmount(BigDecimal.ZERO);
+ memberAchieve.setScore(BigDecimal.ZERO);
mallAchieveRecordMapper.updateById(memberAchieve);
}
- localTotalAchieve = totalAchieve;
- amount = amount.subtract(totalAchieve);
+// localTotalAchieve = totalAchieve;
+// amount = amount.subtract(totalAchieve);
+ localTotalAchieve = totalScoreAva;
+ amount = amount.subtract(totalScoreAva);
}else{
/**
*
@@ -3082,12 +3098,18 @@
* amount 0 0
*
*/
- for(MallAchieveRecord memberAchieve : mallAchieveRecords){
+ for(MallAchieveRecord memberAchieve : mallAchieveRecordsScore){
BigDecimal achieveAmount = memberAchieve.getAmount();
- if(BigDecimal.ZERO.compareTo(amount) >= 0){
+ BigDecimal achieveScoreAva = memberAchieve.getScore();
+ if(BigDecimal.ZERO.compareTo(achieveScoreAva) >= 0){
break;
- }else if(amount.compareTo(achieveAmount) < 0){
- memberAchieve.setAmount(achieveAmount.subtract(amount).setScale(2,BigDecimal.ROUND_DOWN));
+ }else if(amount.compareTo(achieveScoreAva) < 0){
+ if(BigDecimal.ZERO.compareTo(achieveAmount.subtract(amount)) >= 0){
+ memberAchieve.setAmount(BigDecimal.ZERO);
+ }else{
+ memberAchieve.setAmount(achieveAmount.subtract(amount).setScale(2,BigDecimal.ROUND_DOWN));
+ }
+ memberAchieve.setScore(achieveScoreAva.subtract(amount).setScale(2,BigDecimal.ROUND_DOWN));
mallAchieveRecordMapper.updateById(memberAchieve);
localTotalAchieve = localTotalAchieve.add(amount);
amount = BigDecimal.ZERO;
@@ -3095,9 +3117,10 @@
}else{
memberAchieve.setIsNormal(2);
memberAchieve.setAmount(BigDecimal.ZERO);
+ memberAchieve.setScore(BigDecimal.ZERO);
mallAchieveRecordMapper.updateById(memberAchieve);
- localTotalAchieve = localTotalAchieve.add(achieveAmount);
- amount = amount.subtract(achieveAmount);
+ localTotalAchieve = localTotalAchieve.add(achieveScoreAva);
+ amount = amount.subtract(achieveScoreAva);
}
}
}
@@ -3369,10 +3392,14 @@
return;
}
for(DappMemberEntity dappMemberEntity : dappMemberEntities){
+ if(dappMemberEntity.getId() == 2852){
+ Log.info("1");
+ }
/**
* 每个人的第一次入单之后的业绩不一样
*/
- List<MallAchieveRecord> mallAchieveRecords = mallAchieveRecordMapper.selectListByMemberId(dappMemberEntity.getId());
+// List<MallAchieveRecord> mallAchieveRecords = mallAchieveRecordMapper.selectListByMemberId(dappMemberEntity.getId());
+ List<MallAchieveRecord> mallAchieveRecords = mallAchieveRecordMapper.selectListByMemberIdAndScore(dappMemberEntity.getId());
if(CollUtil.isEmpty(mallAchieveRecords)){
continue;
}
diff --git a/src/main/resources/mapper/dapp/MallAchieveRecordMapper.xml b/src/main/resources/mapper/dapp/MallAchieveRecordMapper.xml
index 573991c..1c41241 100644
--- a/src/main/resources/mapper/dapp/MallAchieveRecordMapper.xml
+++ b/src/main/resources/mapper/dapp/MallAchieveRecordMapper.xml
@@ -44,6 +44,13 @@
order by CREATE_TIME asc
</select>
+ <select id="selectListByMemberIdAndScore" resultType="cc.mrbird.febs.dapp.entity.MallAchieveRecord">
+ select * from mall_achieve_record
+ where member_id = #{memberId}
+ and score > 0
+ order by CREATE_TIME asc
+ </select>
+
<select id="selectListCostAmountByMemberId" resultType="cc.mrbird.febs.dapp.entity.MallAchieveRecord">
select * from mall_achieve_record
where member_id = #{memberId}
@@ -51,7 +58,7 @@
</select>
<select id="selectAchieveTotalByMemberIdAndCreateTime" resultType="java.math.BigDecimal">
- select IFNULL(sum(IFNULL(amount,0)),0) from mall_achieve_record
+ select IFNULL(sum(IFNULL(cost_amount,0)),0) from mall_achieve_record
where
member_id = #{memberId}
and pay_time >= #{date}
--
Gitblit v1.9.1