From fe74a0d3c209b328905c3f103f1733146e44bcac Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Thu, 13 May 2021 11:40:31 +0800
Subject: [PATCH] modify

---
 src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java |   46 +++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 41 insertions(+), 5 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 95b4b13..7c60bb3 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,6 +30,7 @@
 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.utils.LogRecordUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -100,6 +101,12 @@
             }
             for(YdProductVo ydProductVo : records){
                 ydProductVo.setProfitT(prifitT);
+
+                if(ydProductVo.getTotalT().compareTo(BigDecimal.ZERO) < 1) {
+                    ydProductVo.setStatus(2);
+                } else {
+                    ydProductVo.setStatus(1);
+                }
             }
         }
 
@@ -135,6 +142,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);
     }
 
@@ -224,6 +237,9 @@
         ydOrderEntity.setEndTime(endTime);
         ydOrderEntity.setReturnState(YdOrderEntity.RETURN_STATE_READY);
         ydOrderDao.insert(ydOrderEntity);
+        //生成流水记录
+        LogRecordUtils.insertMemberAccountMoneyChangeWithId(memberId, "购买产品", multiplyUsdt,
+                "USDT", 1, 3, ydOrderEntity.getId());
         return Result.ok("支付成功");
     }
 
@@ -330,6 +346,7 @@
         log.info("转换成USDT");
         MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
         Long memberId = memberEntity.getId();
+//        Long memberId = 442L;
         ChangeVo changeVo = new ChangeVo();
         BigDecimal currentPrice = BigDecimal.ZERO;
         Wrapper<YdBasicSettingEntity> queryWrapper = new QueryWrapper<>();
@@ -360,9 +377,12 @@
     @Override
     @Transactional
     public Result insureChangeUsdt(InsureChangeUsdtDto insureChangeUsdtdto) {
-        log.info("转换成USDT");
+        log.info("确认转换成USDT");
         MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
         Long memberId = memberEntity.getId();
+
+//        Long memberId = 442L;
+//        MemberEntity memberEntity = memberDao.selectById(memberId);
         /**
          * 验证入参
          *
@@ -386,10 +406,7 @@
         if(BigDecimal.ZERO.compareTo(xchNum) >= 0){
             return Result.fail("请输入正确的数量");
         }
-        BigDecimal currentPrice = insureChangeUsdtdto.getCurrentPrice();
-        if(BigDecimal.ZERO.compareTo(currentPrice) >= 0){
-            return Result.fail("XCH价格异常,请重试");
-        }
+
         MemberWalletCoinEntity xch = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, "XCH");
         BigDecimal totalBalance = xch.getTotalBalance();
         BigDecimal subtractTotalBalance = totalBalance.subtract(xchNum);
@@ -407,12 +424,24 @@
         xch.setAvailableBalance(subtractAvailableBalance);
         memberWalletCoinDao.updateById(xch);
 
+        BigDecimal currentPrice = BigDecimal.ZERO;
+        //获取当前价
+        Wrapper<YdBasicSettingEntity> queryWrapper = new QueryWrapper<>();
+        List<YdBasicSettingEntity> ydBasicSettingEntities = ydBasicSettingDao.selectList(queryWrapper);
+        if(CollUtil.isNotEmpty(ydBasicSettingEntities)){
+            YdBasicSettingEntity ydBasicSettingEntity = ydBasicSettingEntities.get(0);
+            currentPrice = ydBasicSettingEntity.getCurrentPrice();
+        }
         //USDT账户增加
         BigDecimal multiply = xchNum.multiply(currentPrice);
         MemberWalletCoinEntity usdt = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, "USDT");
         usdt.setTotalBalance(usdt.getTotalBalance().add(multiply));
         usdt.setAvailableBalance(usdt.getAvailableBalance().add(multiply));
         memberWalletCoinDao.updateById(usdt);
+
+        //生成流水记录
+        LogRecordUtils.insertMemberAccountMoneyChangeWithId(memberId, "XCH兑换"+multiply+"USDT", xchNum,
+                "USDT", 1, 7, memberId);
         return Result.ok("操作成功");
     }
 
@@ -478,6 +507,10 @@
         }
 
         BigDecimal salePrice = ydBasicLevelSettingEntityTo.getSalePrice();
+        //用户如果已经有等级则减少差价
+        if(levelNow != 0){
+            salePrice = salePrice.subtract(ydBasicLevelSettingEntityNow.getSalePrice());
+        }
         //获取用户当前USDT余额
         MemberWalletCoinEntity usdt = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, "USDT");
         BigDecimal availableBalance = usdt.getAvailableBalance();
@@ -490,6 +523,9 @@
         memberWalletCoinDao.updateById(usdt);
         //更新用户的代理级别
         ydOrderDao.updateAgentLevel(memberId,Integer.parseInt(id.toString()));
+
+        LogRecordUtils.insertMemberAccountMoneyChangeWithId(memberId, "购买代理", salePrice,
+                "USDT", 1, 8, memberId);
         return Result.ok("购买成功");
     }
 

--
Gitblit v1.9.1