From 3baddff99987a5a98b5d55504853f4995018533b Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 18 Mar 2024 16:03:02 +0800
Subject: [PATCH] 抽奖
---
src/main/java/cc/mrbird/febs/mall/entity/MallMemberAmount.java | 1 +
src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java | 32 +++++++++++++++++++++++++++++---
src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java | 3 +++
src/main/resources/mapper/modules/MallMemberAmountMapper.xml | 7 +++++++
src/main/resources/mapper/modules/MallProductBuyMapper.xml | 2 +-
src/main/java/cc/mrbird/febs/mall/mapper/MallMemberAmountMapper.java | 1 +
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 5 +++--
7 files changed, 45 insertions(+), 6 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallMemberAmount.java b/src/main/java/cc/mrbird/febs/mall/entity/MallMemberAmount.java
index c93e52c..e7fe294 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallMemberAmount.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallMemberAmount.java
@@ -37,4 +37,5 @@
private BigDecimal tokenAva;//令牌可用
private BigDecimal tokenFrozen;//令牌冻结
private BigDecimal gsd;//gsd积分-用来商城购物
+ private BigDecimal totalPerk;//gsd积分-用来商城购物
}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberAmountMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberAmountMapper.java
index a297e5e..47eb3af 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberAmountMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberAmountMapper.java
@@ -17,6 +17,7 @@
void updateTokenAvaAndTokenFrozenById(@Param("record")MallMemberAmount mallMemberAmount);
void updateTrendsNftById(@Param("record")MallMemberAmount mallMemberAmount);
+ void updateTotalPerkById(@Param("record")MallMemberAmount mallMemberAmount);
void updateGsdById(@Param("record")MallMemberAmount mallMemberAmount);
void updateFrozenNftById(@Param("record")MallMemberAmount mallMemberAmount);
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 30dd97d..e9db01c 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
@@ -925,6 +925,10 @@
mallMemberAmountMine.setTrendsNft(mallMemberAmountMine.getTrendsNft().add(profit));
mallMemberAmountMapper.updateTrendsNftById(mallMemberAmountMine);
+ MallMemberAmount mallMemberAmountPerk = mallMemberAmountMapper.selectByMemberId(mallProductBuy.getMemberId());
+ mallMemberAmountPerk.setTotalPerk(mallMemberAmountPerk.getTotalPerk().subtract(profit));
+ mallMemberAmountMapper.updateTotalPerkById(mallMemberAmountPerk);
+
BigDecimal remainderDirect = bigDecimal.divide(new BigDecimal(String.valueOf(cycle)),0,BigDecimal.ROUND_DOWN);//取余
if(remainderDirect.compareTo(BigDecimal.ONE) == 0){
@@ -1241,6 +1245,13 @@
AppContants.MEMBER_FLOW_ING);
}else {
+ MallMemberAmount mallMemberAmountMine = mallMemberAmountMapper.selectByMemberId(memberId);
+ if(BigDecimal.ZERO.compareTo(mallMemberAmountMine.getTotalPerk().subtract(mallMoneyFlow.getAmount())) >= 0){
+ continue;
+ }
+ mallMemberAmountMine.setTotalPerk(mallMemberAmountMine.getTotalPerk().subtract(mallMoneyFlow.getAmount()));
+ mallMemberAmountMapper.updateTrendsNftAndFrozenNftById(mallMemberAmountMine);
+
MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(memberId);
mallMemberAmount.setFrozenNft(mallMemberAmount.getFrozenNft().subtract(mallMoneyFlow.getAmount()));
mallMemberAmount.setTrendsNft(mallMemberAmount.getTrendsNft().add(mallMoneyFlow.getAmount()));
@@ -1250,7 +1261,7 @@
String orderNo = MallUtils.getOrderNum("NFT");
mallMoneyFlowService.addMoneyFlow(
memberId,
- mallMoneyFlow.getAmount().negate(),
+ mallMoneyFlow.getAmount(),
MoneyFlowTypeNewEnum.BASIC_PERK_DIRECT_DONE.getValue(),
orderNo,
null,
@@ -1308,6 +1319,13 @@
AppContants.MEMBER_FLOW_ING);
}else {
+ MallMemberAmount mallMemberAmountMine = mallMemberAmountMapper.selectByMemberId(memberId);
+ if(BigDecimal.ZERO.compareTo(mallMemberAmountMine.getTotalPerk().subtract(mallMoneyFlow.getAmount())) >= 0){
+ continue;
+ }
+ mallMemberAmountMine.setTotalPerk(mallMemberAmountMine.getTotalPerk().subtract(mallMoneyFlow.getAmount()));
+ mallMemberAmountMapper.updateTrendsNftAndFrozenNftById(mallMemberAmountMine);
+
MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(memberId);
mallMemberAmount.setFrozenNft(mallMemberAmount.getFrozenNft().subtract(mallMoneyFlow.getAmount()));
mallMemberAmount.setTrendsNft(mallMemberAmount.getTrendsNft().add(mallMoneyFlow.getAmount()));
@@ -1317,7 +1335,7 @@
String orderNo = MallUtils.getOrderNum("NFT");
mallMoneyFlowService.addMoneyFlow(
memberId,
- mallMoneyFlow.getAmount().negate(),
+ mallMoneyFlow.getAmount(),
MoneyFlowTypeNewEnum.TEAM_PERK_DIRECT_DONE.getValue(),
orderNo,
null,
@@ -1375,6 +1393,14 @@
AppContants.MEMBER_FLOW_ING);
}else {
+
+ MallMemberAmount mallMemberAmountMine = mallMemberAmountMapper.selectByMemberId(memberId);
+ if(BigDecimal.ZERO.compareTo(mallMemberAmountMine.getTotalPerk().subtract(mallMoneyFlow.getAmount())) >= 0){
+ continue;
+ }
+ mallMemberAmountMine.setTotalPerk(mallMemberAmountMine.getTotalPerk().subtract(mallMoneyFlow.getAmount()));
+ mallMemberAmountMapper.updateTrendsNftAndFrozenNftById(mallMemberAmountMine);
+
MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(memberId);
mallMemberAmount.setFrozenNft(mallMemberAmount.getFrozenNft().subtract(mallMoneyFlow.getAmount()));
mallMemberAmount.setTrendsNft(mallMemberAmount.getTrendsNft().add(mallMoneyFlow.getAmount()));
@@ -1384,7 +1410,7 @@
String orderNo = MallUtils.getOrderNum("NFT");
mallMoneyFlowService.addMoneyFlow(
memberId,
- mallMoneyFlow.getAmount().negate(),
+ mallMoneyFlow.getAmount(),
MoneyFlowTypeNewEnum.TEAM_PERK_EQUALS_DONE.getValue(),
orderNo,
null,
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
index 9cc8a5b..88126a3 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -299,6 +299,7 @@
mallMemberVo.setFcmCntFrozen(mallMemberAmount.getFcmCntFrozen());
mallMemberVo.setTokenAva(mallMemberAmount.getTokenAva());
mallMemberVo.setTokenFrozen(mallMemberAmount.getTokenFrozen());
+ mallMemberVo.setTotalPerk(mallMemberAmount.getTotalPerk());
DataDictionaryCustom startTimeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
DataDictionaryEnum.YU_YUE_START_TIME.getType(),
DataDictionaryEnum.YU_YUE_START_TIME.getCode()
@@ -313,8 +314,8 @@
Integer pickCount = mallProductBuyMapper.selectListByMemberIdAndState(id);
mallMemberVo.setPickCount(pickCount);
- BigDecimal totalPerk = mallProductBuyMapper.selectTotalPerkByMemberId(mallMember.getId());
- mallMemberVo.setTotalPerk(totalPerk);
+// BigDecimal totalPerk = mallProductBuyMapper.selectTotalPerkByMemberId(mallMember.getId());
+// mallMemberVo.setTotalPerk(totalPerk);
DataDictionaryCustom insideNFTPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
DataDictionaryEnum.FCM_INSIDE_NFT_PERCENT.getType(),
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
index a042cff..c18c8a4 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
@@ -1274,6 +1274,9 @@
mallProductBuy.setPayTime(DateUtil.date());
mallProductBuyMapper.updateById(mallProductBuy);
+ MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(mallProductBuy.getMemberId());
+ mallMemberAmount.setTotalPerk(mallMemberAmount.getTotalPerk().add(totalPerk));
+ mallMemberAmountMapper.updateTotalPerkById(mallMemberAmount);
}
}
}
diff --git a/src/main/resources/mapper/modules/MallMemberAmountMapper.xml b/src/main/resources/mapper/modules/MallMemberAmountMapper.xml
index 0b3f92a..f691f8b 100644
--- a/src/main/resources/mapper/modules/MallMemberAmountMapper.xml
+++ b/src/main/resources/mapper/modules/MallMemberAmountMapper.xml
@@ -35,6 +35,13 @@
where id = #{record.id} and revision=#{record.revision}
</update>
+ <update id="updateTotalPerkById">
+ update mall_member_amount
+ set revision = revision + 1,
+ total_perk = #{record.totalPerk}
+ where id = #{record.id} and revision=#{record.revision}
+ </update>
+
<update id="updateGsdById">
update mall_member_amount
set revision = revision + 1,
diff --git a/src/main/resources/mapper/modules/MallProductBuyMapper.xml b/src/main/resources/mapper/modules/MallProductBuyMapper.xml
index 96999cd..2e763e5 100644
--- a/src/main/resources/mapper/modules/MallProductBuyMapper.xml
+++ b/src/main/resources/mapper/modules/MallProductBuyMapper.xml
@@ -63,7 +63,7 @@
</select>
<select id="selectTotalPerk" resultType="cc.mrbird.febs.mall.entity.MallProductBuy">
- select SUM(total_perk) from mall_product_buy
+ select IFNULL(sum(total_perk), 0) from mall_product_buy
where state = 3
GROUP BY member_id;
</select>
--
Gitblit v1.9.1