From 3ecdc98bb7c9febe9a0eea952297efbd183b4979 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 14 May 2021 10:44:33 +0800
Subject: [PATCH] 20210514 云顶

---
 src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java |   43 +++++++++++++++++++++++++++++++++++++------
 1 files changed, 37 insertions(+), 6 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 8fddea0..e902930 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
@@ -109,8 +109,6 @@
 
                 if(ydProductVo.getTotalT().compareTo(BigDecimal.ZERO) < 1) {
                     ydProductVo.setStatus(2);
-                } else {
-                    ydProductVo.setStatus(1);
                 }
             }
         }
@@ -180,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("请输入交易密码");
@@ -204,6 +202,28 @@
         YdProductEntity ydProductEntity = ydProductDao.selectById(id);
         if(ObjectUtil.isEmpty(ydProductEntity)){
             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();
+            }
+        }
+        if(quantityOwn >= limitedNum){
+            return Result.fail("产品限购"+limitedNum);
+        }
+        if (quantity.compareTo(BigDecimal.valueOf(ydProductEntity.getLimitedNum())) < 1) {
+            return Result.fail("产品限购" + ydProductEntity.getLimitedNum());
         }
         BigDecimal salePrice = ydProductEntity.getSalePrice();
         //剩余产品数量
@@ -230,6 +250,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);
         //上架天数
@@ -285,6 +306,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){
@@ -298,6 +320,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){
@@ -310,10 +333,11 @@
         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)){
-            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;
             }
@@ -537,12 +561,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