From 3882ab4f0e77d46cddb08a4c67bbda6ba44ce8d8 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 19 Feb 2024 15:52:07 +0800
Subject: [PATCH] 文件上传服务器地址
---
src/main/resources/templates/febs/views/modules/news/productNFTUpdate.html | 10 +++++
src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java | 34 +++++++++++++++++
src/main/java/cc/mrbird/febs/mall/mapper/MallProductBuyMapper.java | 2 +
src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java | 9 ++++
src/main/java/cc/mrbird/febs/mall/vo/AdminMallProductNftVo.java | 1
src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java | 8 ++++
src/main/resources/templates/febs/views/modules/news/productNFTList.html | 1
src/main/resources/mapper/modules/MallProductBuyMapper.xml | 6 +++
src/main/java/cc/mrbird/febs/mall/service/IAgentService.java | 2 +
9 files changed, 73 insertions(+), 0 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallProductBuyMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallProductBuyMapper.java
index b22b56d..5fd4cd1 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallProductBuyMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallProductBuyMapper.java
@@ -31,4 +31,6 @@
Integer selectListByMemberIdAndState(@Param("memberId")Long id);
IPage<ApiOrderSellVo> selectSellListInPage(IPage<ApiOrderSellVo> page, @Param("record")ApiOrderSellDto apiOrderBuyDto);
+
+ List<MallProductBuy> selectTotalPerk();
}
diff --git a/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java b/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
index abcc8fa..dee4e73 100644
--- a/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
+++ b/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
@@ -125,6 +125,14 @@
agentService.BuyToSell();
}
+ /**
+ * 用户预约完成之后,根据产品周期,将用户买单变成买单
+ */
+ @Scheduled(cron = "0 0 3 * * ?")
+ public void memberLevelDown() {
+ agentService.memberLevelDown();
+ }
+
/**
* 用户等级升级
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IAgentService.java b/src/main/java/cc/mrbird/febs/mall/service/IAgentService.java
index 6579919..685d6a8 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IAgentService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IAgentService.java
@@ -55,4 +55,6 @@
void equalsMemberPerk();
void memberLevelUp();
+
+ void memberLevelDown();
}
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 7bdf4dd..93cdfb0 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
@@ -891,8 +891,24 @@
/**
* 用户的账户增加对应的收益
*/
+
+ BigDecimal totalPerk = mallProductBuy.getTotalPerk();
+ if(BigDecimal.ZERO.compareTo(totalPerk) >= 0){
+ mallProductBuy.setTotalPerk(BigDecimal.ZERO);
+ mallProductBuyMapper.updateById(mallProductBuy);
+ continue;
+ }
BigDecimal nftTotal = mallProductBuy.getNftTotal();
BigDecimal profit = nftTotal.multiply(profitPercent.multiply(new BigDecimal(0.01)));
+
+ if(totalPerk.compareTo(profit) <= 0){
+ profit = totalPerk;
+ mallProductBuy.setTotalPerk(BigDecimal.ZERO);
+ mallProductBuyMapper.updateById(mallProductBuy);
+ }else{
+ mallProductBuy.setTotalPerk(totalPerk.subtract(profit).setScale(2,BigDecimal.ROUND_DOWN));
+ mallProductBuyMapper.updateById(mallProductBuy);
+ }
// insertSell(mallProductBuy.getMemberId(),profit,profit,BigDecimal.ZERO,BigDecimal.ZERO);
String orderNoSY = MallUtils.getOrderNum("SYNFT");
mallMoneyFlowService.addMoneyFlow(
@@ -908,6 +924,7 @@
MallMemberAmount mallMemberAmountMine = mallMemberAmountMapper.selectByMemberId(mallProductBuy.getMemberId());
mallMemberAmountMine.setTrendsNft(mallMemberAmountMine.getTrendsNft().add(profit));
mallMemberAmountMapper.updateTrendsNftById(mallMemberAmountMine);
+
BigDecimal remainderDirect = bigDecimal.divide(new BigDecimal(String.valueOf(cycle)),0,BigDecimal.ROUND_DOWN);//取余
if(remainderDirect.compareTo(BigDecimal.ONE) == 0){
@@ -1446,6 +1463,23 @@
}
}
+ @Override
+ public void memberLevelDown() {
+ List<MallProductBuy> mallProductBuys = mallProductBuyMapper.selectTotalPerk();
+ if(CollUtil.isEmpty(mallProductBuys)){
+ return;
+ }
+ for(MallProductBuy mallProductBuy : mallProductBuys){
+ BigDecimal totalPerk = mallProductBuy.getTotalPerk();
+ if(BigDecimal.ZERO.compareTo(totalPerk) >= 0 ){
+ Long memberId = mallProductBuy.getMemberId();
+ MallMember mallMember = memberMapper.selectById(memberId);
+ mallMember.setLevel(AgentLevelEnum.ZERO_LEVEL.getCode());
+ memberMapper.updateById(mallMember);
+ }
+ }
+ }
+
public void insertSell(Long memberId,BigDecimal nftCnt,BigDecimal nftCntAva,
BigDecimal nftFee,BigDecimal fcmFeeCnt){
String orderNo = MallUtils.getOrderNum("NFT");
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 392321b..a042cff 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
@@ -66,6 +66,7 @@
private final MallProductSellRecordMapper mallProductSellRecordMapper;
private final MallMemberAmountMapper mallMemberAmountMapper;
private final IMallMoneyFlowService iMallMoneyFlowService;
+ private final MallProductNftMapper mallProductNftMapper;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -1262,9 +1263,17 @@
BigDecimal nftCntTotalBuy = mallProductBuyRecords.stream().map(MallProductBuyRecord::getPickNftCnt).reduce(BigDecimal.ZERO, BigDecimal::add);
MallProductBuy mallProductBuy = mallProductBuyMapper.selectById(buyId);
if(nftCntTotalBuy.compareTo(mallProductBuy.getNftTotal()) >= 0){
+
+ Long productNftId = mallProductBuy.getProductNftId();
+ MallProductNft mallProductNft = mallProductNftMapper.selectById(productNftId);
+ BigDecimal perkTime = mallProductNft.getPerkTime();
+ BigDecimal totalPerk = perkTime.multiply(mallProductBuy.getNftTotal()).setScale(2, BigDecimal.ROUND_DOWN);
+
+ mallProductBuy.setTotalPerk(totalPerk);
mallProductBuy.setState(ProductEnum.PRODUCT_BUY_SUCCESS.getValue());
mallProductBuy.setPayTime(DateUtil.date());
mallProductBuyMapper.updateById(mallProductBuy);
+
}
}
}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/AdminMallProductNftVo.java b/src/main/java/cc/mrbird/febs/mall/vo/AdminMallProductNftVo.java
index 0f780e5..be1ee21 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/AdminMallProductNftVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/AdminMallProductNftVo.java
@@ -20,4 +20,5 @@
private int state;//产品状态 1:开启 0:关闭
private int memberCnt;//预约人数
private int memberReal;//已预约人数
+ private BigDecimal perkTime;//收益倍数
}
diff --git a/src/main/resources/mapper/modules/MallProductBuyMapper.xml b/src/main/resources/mapper/modules/MallProductBuyMapper.xml
index f39012b..d74e5ca 100644
--- a/src/main/resources/mapper/modules/MallProductBuyMapper.xml
+++ b/src/main/resources/mapper/modules/MallProductBuyMapper.xml
@@ -62,4 +62,10 @@
order by a.CREATED_TIME desc
</select>
+ <select id="selectTotalPerk" resultType="cc.mrbird.febs.mall.entity.MallProductBuy">
+ select SUM(total_perk) from mall_product_buy
+ where state = 3
+ GROUP BY member_id;
+ </select>
+
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/news/productNFTList.html b/src/main/resources/templates/febs/views/modules/news/productNFTList.html
index 7eb5680..5c56868 100644
--- a/src/main/resources/templates/febs/views/modules/news/productNFTList.html
+++ b/src/main/resources/templates/febs/views/modules/news/productNFTList.html
@@ -133,6 +133,7 @@
{field: 'priceToken', title: '宝石', minWidth: 120,align:'center'},
{field: 'profit', title: '收益(%)', minWidth: 120,align:'center'},
{field: 'cycle', title: '周期(天)', minWidth: 120,align:'center'},
+ {field: 'perkTime', title: '收益倍数', minWidth: 120,align:'center'},
{field: 'memberCnt', title: '预约总数', minWidth: 120,align:'center'},
{field: 'memberReal', title: '已预约数', minWidth: 120,align:'center'},
{field: 'nftImg', title: '缩略图',
diff --git a/src/main/resources/templates/febs/views/modules/news/productNFTUpdate.html b/src/main/resources/templates/febs/views/modules/news/productNFTUpdate.html
index 58d84e9..d464a25 100644
--- a/src/main/resources/templates/febs/views/modules/news/productNFTUpdate.html
+++ b/src/main/resources/templates/febs/views/modules/news/productNFTUpdate.html
@@ -69,6 +69,15 @@
</div>
<div class="layui-row layui-col-space10 layui-form-item">
<div class="layui-col-lg6">
+ <label class="layui-form-label febs-form-item-require">收益倍数:</label>
+ <div class="layui-input-block">
+ <input type="text" name="perkTime" lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
+ <div class="layui-form-mid layui-word-aux"> 5 即百分之五</div>
+ </div>
+ </div>
+ </div>
+ <div class="layui-row layui-col-space10 layui-form-item">
+ <div class="layui-col-lg6">
<label class="layui-form-label febs-form-item-require">预约总数:</label>
<div class="layui-input-block">
<input type="text" name="memberCnt" lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
@@ -178,6 +187,7 @@
"state": mallProductNft.state,
"memberCnt": mallProductNft.memberCnt,
"memberReal": mallProductNft.memberReal,
+ "perkTime": mallProductNft.perkTime,
});
}
});
--
Gitblit v1.9.1