From 77a79a8a245a8d835881cc69eb5b4c1f45f6093a Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Thu, 13 May 2021 18:25:02 +0800
Subject: [PATCH] modify

---
 src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java |   57 +++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 43 insertions(+), 14 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 c423e77..8fddea0 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() {
@@ -101,6 +106,12 @@
             }
             for(YdProductVo ydProductVo : records){
                 ydProductVo.setProfitT(prifitT);
+
+                if(ydProductVo.getTotalT().compareTo(BigDecimal.ZERO) < 1) {
+                    ydProductVo.setStatus(2);
+                } else {
+                    ydProductVo.setStatus(1);
+                }
             }
         }
 
@@ -136,6 +147,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);
     }
 
@@ -228,6 +245,9 @@
         //生成流水记录
         LogRecordUtils.insertMemberAccountMoneyChangeWithId(memberId, "购买产品", multiplyUsdt,
                 "USDT", 1, 3, ydOrderEntity.getId());
+
+        yunDingProducter.sendYunDingUsdtProfit(ydOrderEntity.getId());
+        yunDingProducter.sendYunDingAutoAgent(ydOrderEntity.getMemberId());
         return Result.ok("支付成功");
     }
 
@@ -451,9 +471,6 @@
         log.info("购买代理级别");
         MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
         Long memberId = memberEntity.getId();
-//        Long memberId = 442L;
-//        MemberEntity memberEntity = memberDao.selectById(memberId);
-
         /**
          * 获取代理级别(Level字段越小,级别越高)
          *      不能向下购买代理级别
@@ -484,21 +501,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();
@@ -514,6 +539,10 @@
 
         LogRecordUtils.insertMemberAccountMoneyChangeWithId(memberId, "购买代理", salePrice,
                 "USDT", 1, 8, memberId);
+
+        memberEntity.setAgentLevel(id.intValue());
+        LoginUserUtils.resetAppLoginUser(memberEntity);
+        yunDingProducter.sendYunDingAutoAgent(memberId);
         return Result.ok("购买成功");
     }
 

--
Gitblit v1.9.1