From c5ac51a5525b261127845a38a1fec5a86c860441 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 14 May 2021 20:00:10 +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 |   62 +++++++++++++++++++++++++-----
 1 files changed, 51 insertions(+), 11 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 0e979f0..12d3ea6 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
@@ -65,6 +65,8 @@
     private MemberDao memberDao;
     @Autowired
     private YunDingProducter yunDingProducter;
+    @Autowired
+    private RedisUtils redisUtils;
 
     @Override
     public Result findAllInfo() {
@@ -107,7 +109,7 @@
             for(YdProductVo ydProductVo : records){
                 ydProductVo.setProfitT(prifitT);
 
-                if(ydProductVo.getTotalT().compareTo(BigDecimal.ZERO) < 1) {
+                if(ydProductVo.getSurplusT().compareTo(BigDecimal.ZERO) < 1) {
                     ydProductVo.setStatus(2);
                 }
             }
@@ -146,10 +148,8 @@
         Date endTime = DateUtil.offsetDay(workTime, proCycle);
         ydProductVo.setEndTime(endTime);
 
-        if (ydProductVo.getTotalT().compareTo(BigDecimal.ZERO) < 1) {
+        if (ydProductVo.getSurplusT().compareTo(BigDecimal.ZERO) < 1) {
             ydProductVo.setStatus(2);
-        } else {
-            ydProductVo.setStatus(1);
         }
         return Result.ok(ydProductVo);
     }
@@ -204,9 +204,39 @@
             return Result.fail("请重新选择产品");
         }
 
-        if (quantity.compareTo(BigDecimal.valueOf(ydProductEntity.getLimitedNum())) < 1) {
-            return Result.fail("产品限购" + ydProductEntity.getLimitedNum());
+        Integer status = ydProductEntity.getStatus();
+        if(YdProductEntity.STATUE_WORK != status){
+            if(YdProductEntity.STATUE_END == status){
+                return Result.fail("产品已售罄");
+            }
+            if(YdProductEntity.STATUE_READY == status){
+                return Result.fail("产品未开售");
+            }
         }
+
+        //限购总量
+        Integer limitedNum = ydProductEntity.getLimitedNum();
+        //获取目前待生效,已生效的总T数
+        int quantityOwn = 0;
+        QueryWrapper<YdOrderEntity> powerReradyQuery = new QueryWrapper<>();
+        powerReradyQuery.eq("member_id",memberId);
+        powerReradyQuery.eq("product_id",payProductDto.getId());
+        powerReradyQuery.eq("type",YdOrderEntity.PRODUCT_ORDER);
+        powerReradyQuery.ne("state",YdOrderEntity.ORDER_STATE_END);
+        List<YdOrderEntity> powerReradyQuerys = ydOrderDao.selectList(powerReradyQuery);
+        if(CollUtil.isNotEmpty(powerReradyQuerys)){
+            for(YdOrderEntity ydOrderEntity : powerReradyQuerys){
+                quantityOwn = quantityOwn + ydOrderEntity.getQuantity();
+            }
+        }
+        int quantityInt = quantity.intValue();
+        if(quantityOwn + quantityInt > limitedNum){
+            return Result.fail("产品限购"+limitedNum);
+        }
+
+//        if (quantity.compareTo(BigDecimal.valueOf(ydProductEntity.getLimitedNum())) < 1) {
+//            return Result.fail("产品限购" + ydProductEntity.getLimitedNum());
+//        }
         BigDecimal salePrice = ydProductEntity.getSalePrice();
         //剩余产品数量
         BigDecimal surplusT = ydProductEntity.getSurplusT();
@@ -250,7 +280,6 @@
                 "USDT", 1, 3, ydOrderEntity.getId());
 
         yunDingProducter.sendYunDingUsdtProfit(ydOrderEntity.getId());
-        yunDingProducter.sendYunDingAutoAgent(ydOrderEntity.getMemberId());
         return Result.ok("支付成功");
     }
 
@@ -317,9 +346,9 @@
         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)){
-            for(YdOrderEntity order : PowerReradyQuery){
+        List<YdOrderEntity> powerReradyQuerys = ydOrderDao.selectList(powerReradyQuery);
+        if(CollUtil.isNotEmpty(powerReradyQuerys)){
+            for(YdOrderEntity order : powerReradyQuerys){
                 int quantity = order.getQuantity();
                 powerReady = powerReady + quantity;
             }
@@ -546,6 +575,7 @@
         YdOrderEntity orderEntity = new YdOrderEntity();
         orderEntity.setType(YdOrderEntity.AGENT_ORDER);
         orderEntity.setMemberId(memberId);
+        orderEntity.setProductId(id);
         orderEntity.setAmount(salePrice);
         ydOrderDao.insert(orderEntity);
 
@@ -554,11 +584,21 @@
 
         memberEntity.setAgentLevel(id.intValue());
         LoginUserUtils.resetAppLoginUser(memberEntity);
-        yunDingProducter.sendYunDingAutoAgent(memberId);
         yunDingProducter.sendYunDingUsdtProfit(orderEntity.getId());
         return Result.ok("购买成功");
     }
 
+    @Override
+    public Result getXchPrice() {
+        log.info("获取XCH当前价");
+        BigDecimal xchNewPrices = BigDecimal.ZERO;
+        String xchNewPrice = redisUtils.getString("XCH_NEW_PRICE");
+        if(StrUtil.isNotEmpty(xchNewPrice)){
+            xchNewPrices = new BigDecimal(xchNewPrice);
+        }
+        return Result.ok(xchNewPrices);
+    }
+
 
     /**
      * 去加减币币账户余额,减少产品的剩余数目

--
Gitblit v1.9.1