From f1ad6e801cc68cfe90efb620df3484293044aea3 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 12 May 2021 18:08:22 +0800
Subject: [PATCH] Merge branch 'yunding' of http://120.27.238.55:7000/r/exchange into yunding

---
 src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java |  148 +++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 141 insertions(+), 7 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 1836528..c8e1d61 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
@@ -5,7 +5,7 @@
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
-import com.alibaba.fastjson.JSON;
+import cn.hutool.crypto.SecureUtil;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -13,12 +13,15 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xcong.excoin.common.LoginUserUtils;
 import com.xcong.excoin.common.response.Result;
+import com.xcong.excoin.modules.coin.dao.MemberAccountMoneyChangeDao;
+import com.xcong.excoin.modules.coin.entity.MemberAccountMoneyChange;
 import com.xcong.excoin.modules.member.dao.MemberWalletCoinDao;
 import com.xcong.excoin.modules.member.entity.MemberEntity;
 import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity;
 import com.xcong.excoin.modules.yunding.dao.YdBasicSettingDao;
 import com.xcong.excoin.modules.yunding.dao.YdOrderDao;
 import com.xcong.excoin.modules.yunding.dao.YdProductDao;
+import com.xcong.excoin.modules.yunding.dto.InsureChangeUsdtDto;
 import com.xcong.excoin.modules.yunding.dto.PayProductDto;
 import com.xcong.excoin.modules.yunding.dto.YdOrderListDto;
 import com.xcong.excoin.modules.yunding.dto.YdProductListDto;
@@ -26,10 +29,7 @@
 import com.xcong.excoin.modules.yunding.entity.YdOrderEntity;
 import com.xcong.excoin.modules.yunding.entity.YdProductEntity;
 import com.xcong.excoin.modules.yunding.service.YunDingService;
-import com.xcong.excoin.modules.yunding.vo.OrderAllInfoVo;
-import com.xcong.excoin.modules.yunding.vo.YdBasicSettingVo;
-import com.xcong.excoin.modules.yunding.vo.YdOrderVo;
-import com.xcong.excoin.modules.yunding.vo.YdProductVo;
+import com.xcong.excoin.modules.yunding.vo.*;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -53,6 +53,9 @@
     private YdOrderDao ydOrderDao;
     @Resource
     private MemberWalletCoinDao memberWalletCoinDao;
+
+    @Resource
+    private MemberAccountMoneyChangeDao memberAccountMoneyChangeDao;
 
     @Override
     public Result findAllInfo() {
@@ -83,6 +86,20 @@
         //MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
         Page<YdProductVo> page = new Page<>(ydProductListDto.getPageNum(), ydProductListDto.getPageSize());
         IPage<YdProductVo> list = ydProductDao.getProductList(page, ydProductListDto);
+        List<YdProductVo> records = list.getRecords();
+        if(CollUtil.isNotEmpty(records)){
+            //预计收益
+            BigDecimal prifitT = BigDecimal.ZERO;
+            Wrapper<YdBasicSettingEntity> queryWrapper = new QueryWrapper<>();
+            List<YdBasicSettingEntity> ydBasicSettingEntities = ydBasicSettingDao.selectList(queryWrapper);
+            if(CollUtil.isNotEmpty(ydBasicSettingEntities)){
+                prifitT = ydBasicSettingEntities.get(0).getPrifitT();
+            }
+            for(YdProductVo ydProductVo : records){
+                ydProductVo.setProfitT(prifitT);
+            }
+        }
+
         return Result.ok(list);
     }
 
@@ -143,6 +160,18 @@
         MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
         Long memberId = memberEntity.getId();
 //        Long memberId = 28L;
+        String tradePassword = payProductDto.getTradePassword();
+        if(StrUtil.isEmpty(tradePassword)){
+            return Result.fail("请输入交易密码");
+        }
+        String tradePasswordOwn = memberEntity.getTradePassword();
+        if(StrUtil.isEmpty(tradePasswordOwn)){
+            return Result.fail("请设置交易密码");
+        }
+        String tradePasswords = SecureUtil.md5(tradePassword);
+        if(!StrUtil.equals(tradePasswordOwn,tradePasswords)){
+            return Result.fail("请输入正确的交易密码");
+        }
         BigDecimal quantity = payProductDto.getQuantity();
         if(ObjectUtil.isEmpty(quantity)){
             return Result.fail("请输入购买数量");
@@ -222,7 +251,7 @@
 
         MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
         Long memberId = memberEntity.getId();
-//        Long memberId = 28L;
+//        Long memberId = 442L;
         OrderAllInfoVo orderAllInfoVo = new OrderAllInfoVo();
         DecimalFormat decimalFormat = new DecimalFormat("0.0000#");
         //历史总收益
@@ -255,7 +284,7 @@
         QueryWrapper<YdOrderEntity> powerReradyQuery = new QueryWrapper<>();
         powerReradyQuery.eq("member_id",memberId);
         powerReradyQuery.eq("state",YdOrderEntity.ORDER_STATE_READY);
-        List<YdOrderEntity> PowerReradyQuery = ydOrderDao.selectList(powerNowQuery);
+        List<YdOrderEntity> PowerReradyQuery = ydOrderDao.selectList(powerReradyQuery);
         if(CollUtil.isNotEmpty(PowerReradyQuery)){
             for(YdOrderEntity order : PowerReradyQuery){
                 int quantity = order.getQuantity();
@@ -263,9 +292,114 @@
             }
         }
         orderAllInfoVo.setPowerReady(powerReady);
+        //昨日总收益
+        BigDecimal lastdayProfit = BigDecimal.ZERO;
+        Date date = DateUtil.date();
+        Date dateTime = DateUtil.offsetDay(date, 1);
+        QueryWrapper<MemberAccountMoneyChange> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("type",4);
+        queryWrapper.eq("member_id",memberId);
+        queryWrapper.eq("status",1);
+        queryWrapper.like("create_time",DateUtil.formatDate(dateTime));
+        List<MemberAccountMoneyChange> memberAccountMoneyChanges = memberAccountMoneyChangeDao.selectList(queryWrapper);
+        if(CollUtil.isNotEmpty(memberAccountMoneyChanges)){
+            for(MemberAccountMoneyChange memberAccountMoneyChange : memberAccountMoneyChanges){
+                BigDecimal amount = memberAccountMoneyChange.getAmount();
+                lastdayProfit = lastdayProfit.add(amount);
+            }
+        }
+        orderAllInfoVo.setLastdayProfit(decimalFormat.format(lastdayProfit));
         return Result.ok(orderAllInfoVo);
     }
 
+    @Override
+    public Result getOrderInfo(Long id) {
+
+        log.info("获取订单详情");
+        MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
+        Long memberId = memberEntity.getId();
+        YdOrderVo ydOrderVo = ydOrderDao.selectOrderByMemberIdAndId(memberId,id);
+        return Result.ok(ydOrderVo);
+    }
+
+    @Override
+    public Result changeUsdt() {
+        log.info("转换成USDT");
+        MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
+        Long memberId = memberEntity.getId();
+        ChangeVo changeVo = new ChangeVo();
+        BigDecimal currentPrice = BigDecimal.ZERO;
+        Wrapper<YdBasicSettingEntity> queryWrapper = new QueryWrapper<>();
+        List<YdBasicSettingEntity> ydBasicSettingEntities = ydBasicSettingDao.selectList(queryWrapper);
+        if(CollUtil.isNotEmpty(ydBasicSettingEntities)){
+            YdBasicSettingEntity ydBasicSettingEntity = ydBasicSettingEntities.get(0);
+            if(ObjectUtil.isNotEmpty(ydBasicSettingEntity)){
+                //获取当前价
+                currentPrice = ydBasicSettingEntity.getCurrentPrice();
+                if(ObjectUtil.isNotEmpty(currentPrice)){
+                    changeVo.setCurrentPrice(currentPrice);
+                }
+                BigDecimal changeXch = ydBasicSettingEntity.getChangeXch();
+                if(ObjectUtil.isNotEmpty(changeXch)){
+                    changeVo.setChangeXchRadio(changeXch);
+                }
+            }
+        }
+        //获取可用
+        MemberWalletCoinEntity xch = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, "XCH");
+        if(ObjectUtil.isNotEmpty(xch)){
+            BigDecimal availableBalance = xch.getAvailableBalance();
+            changeVo.setXchAvailableBalance(availableBalance.compareTo(BigDecimal.ZERO) < 0 ? BigDecimal.ZERO:availableBalance);
+        }
+        return Result.ok(changeVo);
+    }
+
+    @Override
+    @Transactional
+    public Result insureChangeUsdt(InsureChangeUsdtDto insureChangeUsdtdto) {
+        log.info("转换成USDT");
+        MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
+        Long memberId = memberEntity.getId();
+        /**
+         * 验证入参
+         *
+         *     USDT账户增加
+         *     XCH账户减少
+         */
+        BigDecimal xchNum = insureChangeUsdtdto.getXchNum();
+        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);
+        if(BigDecimal.ZERO.compareTo(subtractTotalBalance) >= 0){
+            return Result.fail("XCH数量不足");
+        }
+
+        BigDecimal availableBalance = xch.getAvailableBalance();
+        BigDecimal subtractAvailableBalance = availableBalance.subtract(xchNum);
+        if(BigDecimal.ZERO.compareTo(subtractAvailableBalance) >= 0){
+            return Result.fail("XCH数量不足");
+        }
+        //xch减少
+        xch.setTotalBalance(subtractTotalBalance);
+        xch.setAvailableBalance(subtractAvailableBalance);
+        memberWalletCoinDao.updateById(xch);
+
+        //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);
+        return Result.ok("操作成功");
+    }
+
     /**
      * 去加减币币账户余额,减少产品的剩余数目
      * @param memberId

--
Gitblit v1.9.1