From a1560583ab4dba589acb64238970fdebdea20233 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 14 May 2021 10:36:16 +0800
Subject: [PATCH] modify
---
src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java | 70 ++++++++++++++++++++++++++--------
1 files changed, 53 insertions(+), 17 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java b/src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java
index 484174c..0e979f0 100644
--- a/src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java
@@ -30,8 +30,11 @@
import com.xcong.excoin.modules.yunding.entity.YdProductEntity;
import com.xcong.excoin.modules.yunding.service.YunDingService;
import com.xcong.excoin.modules.yunding.vo.*;
+import com.xcong.excoin.rabbit.producer.YunDingProducter;
import com.xcong.excoin.utils.LogRecordUtils;
+import com.xcong.excoin.utils.RedisUtils;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -60,6 +63,8 @@
private YdBasicLevelSettingDao ydBasicLevelSettingDao;
@Resource
private MemberDao memberDao;
+ @Autowired
+ private YunDingProducter yunDingProducter;
@Override
public Result findAllInfo() {
@@ -104,8 +109,6 @@
if(ydProductVo.getTotalT().compareTo(BigDecimal.ZERO) < 1) {
ydProductVo.setStatus(2);
- } else {
- ydProductVo.setStatus(1);
}
}
}
@@ -142,6 +145,12 @@
Integer proCycle = ydProductVo.getProCycle();
Date endTime = DateUtil.offsetDay(workTime, proCycle);
ydProductVo.setEndTime(endTime);
+
+ if (ydProductVo.getTotalT().compareTo(BigDecimal.ZERO) < 1) {
+ ydProductVo.setStatus(2);
+ } else {
+ ydProductVo.setStatus(1);
+ }
return Result.ok(ydProductVo);
}
@@ -169,7 +178,7 @@
*/
MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
Long memberId = memberEntity.getId();
-// Long memberId = 28L;
+
String tradePassword = payProductDto.getTradePassword();
if(StrUtil.isEmpty(tradePassword)){
return Result.fail("请输入交易密码");
@@ -193,6 +202,10 @@
YdProductEntity ydProductEntity = ydProductDao.selectById(id);
if(ObjectUtil.isEmpty(ydProductEntity)){
return Result.fail("请重新选择产品");
+ }
+
+ if (quantity.compareTo(BigDecimal.valueOf(ydProductEntity.getLimitedNum())) < 1) {
+ return Result.fail("产品限购" + ydProductEntity.getLimitedNum());
}
BigDecimal salePrice = ydProductEntity.getSalePrice();
//剩余产品数量
@@ -219,6 +232,7 @@
ydOrderEntity.setTotalProfit(BigDecimal.ZERO);
ydOrderEntity.setTodayProfit(BigDecimal.ZERO);
ydOrderEntity.setState(YdOrderEntity.ORDER_STATE_READY);
+ ydOrderEntity.setType(YdOrderEntity.PRODUCT_ORDER);
Date date = DateUtil.date();
ydOrderEntity.setBuyTime(date);
//上架天数
@@ -234,6 +248,9 @@
//生成流水记录
LogRecordUtils.insertMemberAccountMoneyChangeWithId(memberId, "购买产品", multiplyUsdt,
"USDT", 1, 3, ydOrderEntity.getId());
+
+ yunDingProducter.sendYunDingUsdtProfit(ydOrderEntity.getId());
+ yunDingProducter.sendYunDingAutoAgent(ydOrderEntity.getMemberId());
return Result.ok("支付成功");
}
@@ -271,6 +288,7 @@
BigDecimal totalProfitAll = BigDecimal.ZERO;
QueryWrapper<YdOrderEntity> objectQueryWrapper = new QueryWrapper<>();
objectQueryWrapper.eq("member_id",memberId);
+ objectQueryWrapper.eq("type",YdOrderEntity.PRODUCT_ORDER);
List<YdOrderEntity> ydOrderEntities = ydOrderDao.selectList(objectQueryWrapper);
if(CollUtil.isNotEmpty(ydOrderEntities)){
for(YdOrderEntity order : ydOrderEntities){
@@ -284,6 +302,7 @@
QueryWrapper<YdOrderEntity> powerNowQuery = new QueryWrapper<>();
powerNowQuery.eq("member_id",memberId);
powerNowQuery.eq("state",YdOrderEntity.ORDER_STATE_WORK);
+ powerNowQuery.eq("type",YdOrderEntity.PRODUCT_ORDER);
List<YdOrderEntity> PowerNowQuery = ydOrderDao.selectList(powerNowQuery);
if(CollUtil.isNotEmpty(PowerNowQuery)){
for(YdOrderEntity order : PowerNowQuery){
@@ -296,6 +315,7 @@
int powerReady = 0;
QueryWrapper<YdOrderEntity> powerReradyQuery = new QueryWrapper<>();
powerReradyQuery.eq("member_id",memberId);
+ powerReradyQuery.eq("type",YdOrderEntity.PRODUCT_ORDER);
powerReradyQuery.eq("state",YdOrderEntity.ORDER_STATE_READY);
List<YdOrderEntity> PowerReradyQuery = ydOrderDao.selectList(powerReradyQuery);
if(CollUtil.isNotEmpty(PowerReradyQuery)){
@@ -457,9 +477,6 @@
log.info("购买代理级别");
MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
Long memberId = memberEntity.getId();
-// Long memberId = 442L;
-// MemberEntity memberEntity = memberDao.selectById(memberId);
-
/**
* 获取代理级别(Level字段越小,级别越高)
* 不能向下购买代理级别
@@ -490,21 +507,29 @@
Integer levelTo = ydBasicLevelSettingEntityTo.getLevel();
//获取当前代理级别
Integer agentLevel = memberEntity.getAgentLevel();
- long agentId = Long.parseLong(agentLevel.toString());
+
+ BigDecimal salePrice = ydBasicLevelSettingEntityTo.getSalePrice();
Integer levelNow = 0;
- YdBasicLevelSettingEntity ydBasicLevelSettingEntityNow = ydBasicLevelSettingDao.selectById(agentId);
- if(ObjectUtil.isNotEmpty(ydBasicLevelSettingEntityNow)){
- levelNow = ydBasicLevelSettingEntityNow.getLevel();
- if(levelTo >= levelNow){
- return Result.fail("无法购买");
+ if (agentLevel != null) {
+ long agentId = Long.parseLong(agentLevel.toString());
+ YdBasicLevelSettingEntity ydBasicLevelSettingEntityNow = ydBasicLevelSettingDao.selectById(agentId);
+ if(ObjectUtil.isNotEmpty(ydBasicLevelSettingEntityNow)){
+ levelNow = ydBasicLevelSettingEntityNow.getLevel();
+ if(levelTo.equals(levelNow)){
+ return Result.fail("不能重复购买当前代理");
+ }
+
+ if (levelNow < levelTo) {
+ return Result.fail("不能购买低于当前代理");
+ }
+ }
+
+ //用户如果已经有等级则减少差价
+ if(levelNow != 0){
+ salePrice = salePrice.subtract(ydBasicLevelSettingEntityNow.getSalePrice());
}
}
- BigDecimal salePrice = ydBasicLevelSettingEntityTo.getSalePrice();
- //用户如果已经有等级则减少差价
- if(levelNow != 0){
- salePrice = salePrice.subtract(ydBasicLevelSettingEntityNow.getSalePrice());
- }
//获取用户当前USDT余额
MemberWalletCoinEntity usdt = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, "USDT");
BigDecimal availableBalance = usdt.getAvailableBalance();
@@ -518,8 +543,19 @@
//更新用户的代理级别
ydOrderDao.updateAgentLevel(memberId,Integer.parseInt(id.toString()));
+ YdOrderEntity orderEntity = new YdOrderEntity();
+ orderEntity.setType(YdOrderEntity.AGENT_ORDER);
+ orderEntity.setMemberId(memberId);
+ orderEntity.setAmount(salePrice);
+ ydOrderDao.insert(orderEntity);
+
LogRecordUtils.insertMemberAccountMoneyChangeWithId(memberId, "购买代理", salePrice,
"USDT", 1, 8, memberId);
+
+ memberEntity.setAgentLevel(id.intValue());
+ LoginUserUtils.resetAppLoginUser(memberEntity);
+ yunDingProducter.sendYunDingAutoAgent(memberId);
+ yunDingProducter.sendYunDingUsdtProfit(orderEntity.getId());
return Result.ok("购买成功");
}
--
Gitblit v1.9.1