Просмотр исходного кода

移除user_id,单位领取数量
除不尽增加最后一次领取全部

why 4 лет назад
Родитель
Сommit
1f3e1b2d28

+ 4 - 7
src/main/java/com/td/boss/game/comcnttosnb/pojo/ComCntToSnb.java

@@ -19,11 +19,11 @@ import java.util.Date;
 public class ComCntToSnb implements Serializable {
 public class ComCntToSnb implements Serializable {
     @Id
     @Id
     @GeneratedValue(strategy= GenerationType.IDENTITY)
     @GeneratedValue(strategy= GenerationType.IDENTITY)
-    private Integer id;
+    private Long id;
     /**
     /**
-     * 用户id
+     * 钱包地址
      */
      */
-    private String userId;
+    private String address;
     /**
     /**
      * 需要返还的总数
      * 需要返还的总数
      */
      */
@@ -32,10 +32,7 @@ public class ComCntToSnb implements Serializable {
      * 已领取数量
      * 已领取数量
      */
      */
     private BigDecimal receivedQuantity;
     private BigDecimal receivedQuantity;
-    /**
-     * 单位数量(每天可领取量)
-     */
-    private BigDecimal unitQuantity;
+
     /**
     /**
      * 领取总天数
      * 领取总天数
      */
      */

+ 2 - 2
src/main/java/com/td/boss/game/comcnttosnb/repository/ComCntToSnbRespository.java

@@ -2,6 +2,7 @@ package com.td.boss.game.comcnttosnb.repository;
 
 
 import com.td.boss.common.repository.CommonRepository;
 import com.td.boss.common.repository.CommonRepository;
 import com.td.boss.game.comcnttosnb.pojo.ComCntToSnb;
 import com.td.boss.game.comcnttosnb.pojo.ComCntToSnb;
+import org.springframework.data.jpa.repository.Query;
 import org.springframework.stereotype.Repository;
 import org.springframework.stereotype.Repository;
 
 
 import java.util.Optional;
 import java.util.Optional;
@@ -9,6 +10,5 @@ import java.util.Optional;
 @Repository
 @Repository
 public interface ComCntToSnbRespository extends CommonRepository<ComCntToSnb, Integer> {
 public interface ComCntToSnbRespository extends CommonRepository<ComCntToSnb, Integer> {
 
 
-    Optional<ComCntToSnb> findByUserId(String userId);
-
+    ComCntToSnb findByAddress(String address);
 }
 }

+ 14 - 7
src/main/java/com/td/boss/game/comcnttosnb/service/ComCntToSnbServiceImpl.java

@@ -22,7 +22,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
+import javax.swing.plaf.ProgressBarUI;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.Date;
 import java.util.Date;
 
 
 @Slf4j
 @Slf4j
@@ -46,7 +48,11 @@ public class ComCntToSnbServiceImpl extends CommonServiceImpl<ComCntToSnbVo, Com
      */
      */
     @Override
     @Override
     public ComCntToSnbVo findByUserId(String userId) {
     public ComCntToSnbVo findByUserId(String userId) {
-        ComCntToSnb comCntToSnb = comCntToSnbRespository.findByUserId(userId).orElse(null);
+        ComUsersVo comUsersVo = comUsersService.findByUserId(userId);
+        if (comUsersVo == null || StrUtil.isBlank(comUsersVo.getAddress())) {
+            return null;
+        }
+        ComCntToSnb comCntToSnb = comCntToSnbRespository.findByAddress(comUsersVo.getAddress());
         return comCntToSnb == null ? null : CopyUtil.copy(comCntToSnb, ComCntToSnbVo.class);
         return comCntToSnb == null ? null : CopyUtil.copy(comCntToSnb, ComCntToSnbVo.class);
     }
     }
 
 
@@ -59,8 +65,11 @@ public class ComCntToSnbServiceImpl extends CommonServiceImpl<ComCntToSnbVo, Com
     @Override
     @Override
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     public Result<String> receiveByUserId(String userId) {
     public Result<String> receiveByUserId(String userId) {
-
-        ComCntToSnb comCntToSnb = comCntToSnbRespository.findByUserId(userId).orElse(null);
+        ComUsersVo comUsersVo = comUsersService.findByUserId(userId);
+        if (comUsersVo == null || StrUtil.isBlank(comUsersVo.getAddress())) {
+            return Result.of(null, false, "未找到用户或钱包地址");
+        }
+        ComCntToSnb comCntToSnb = comCntToSnbRespository.findByAddress(comUsersVo.getAddress());
         if (comCntToSnb == null || comCntToSnb.getStatus().equals(0)) {
         if (comCntToSnb == null || comCntToSnb.getStatus().equals(0)) {
             return Result.of(null, false, "非法领取");
             return Result.of(null, false, "非法领取");
         }
         }
@@ -93,9 +102,8 @@ public class ComCntToSnbServiceImpl extends CommonServiceImpl<ComCntToSnbVo, Com
             if (!redisLock.lock(redisKey, String.valueOf(time))) {
             if (!redisLock.lock(redisKey, String.valueOf(time))) {
                 return Result.of(null, false, ResultEnum.SEED_SALE_SAVE_LOCK.getMessage(), ResultEnum.SEED_SALE_SAVE_LOCK.getCode());
                 return Result.of(null, false, ResultEnum.SEED_SALE_SAVE_LOCK.getMessage(), ResultEnum.SEED_SALE_SAVE_LOCK.getCode());
             }
             }
-            //单次领取数量
-            BigDecimal div = NumberUtil.div(comCntToSnb.getTotalQuantity(), comCntToSnb.getTotalDay());
-            BigDecimal receiveNum = NumberUtil.round(div, 2);
+            // 单次领取数量
+            BigDecimal receiveNum = NumberUtil.round(NumberUtil.div(comCntToSnb.getTotalQuantity(), comCntToSnb.getTotalDay()), 2, RoundingMode.DOWN);
             log.info("每天领取数量:" + receiveNum);
             log.info("每天领取数量:" + receiveNum);
             // 本次领取量
             // 本次领取量
             BigDecimal thisReceiveQuantity;
             BigDecimal thisReceiveQuantity;
@@ -116,7 +124,6 @@ public class ComCntToSnbServiceImpl extends CommonServiceImpl<ComCntToSnbVo, Com
             comCntToSnbRespository.save(comCntToSnb);
             comCntToSnbRespository.save(comCntToSnb);
 
 
             // 更新comUsers snb+
             // 更新comUsers snb+
-            ComUsersVo comUsersVo = comUsersService.findByUserId(userId);
             comUsersVo.setSnbPart(comUsersVo.getSnbPart() + Convert.toDouble(thisReceiveQuantity));
             comUsersVo.setSnbPart(comUsersVo.getSnbPart() + Convert.toDouble(thisReceiveQuantity));
             comUsersService.save(comUsersVo);
             comUsersService.save(comUsersVo);
 
 

+ 1 - 9
src/main/java/com/td/boss/game/comcnttosnb/vo/ComCntToSnbVo.java

@@ -16,11 +16,7 @@ import java.util.Date;
 @Data
 @Data
 public class ComCntToSnbVo implements Serializable {
 public class ComCntToSnbVo implements Serializable {
 
 
-    private Integer id;
-    /**
-     * 用户id
-     */
-    private String userId;
+    private Long id;
     /**
     /**
      * 需要返还的总数
      * 需要返还的总数
      */
      */
@@ -29,10 +25,6 @@ public class ComCntToSnbVo implements Serializable {
      * 已领取数量
      * 已领取数量
      */
      */
     private BigDecimal receivedQuantity;
     private BigDecimal receivedQuantity;
-    /**
-     * 单位数量(每天可领取量)
-     */
-    private BigDecimal unitQuantity;
     /**
     /**
      * 领取总天数
      * 领取总天数
      */
      */

+ 4 - 4
src/test/java/com/td/boss/ComPlayerDisasterLogTests.java

@@ -1,14 +1,13 @@
 package com.td.boss;
 package com.td.boss;
 
 
-import cn.hutool.core.convert.Convert;
 import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.json.JSONUtil;
 import cn.hutool.json.JSONUtil;
 import com.td.boss.common.pojo.Result;
 import com.td.boss.common.pojo.Result;
 import com.td.boss.game.comcnttosnb.service.ComCntToSnbService;
 import com.td.boss.game.comcnttosnb.service.ComCntToSnbService;
 import com.td.boss.game.complayerland.pojo.ComPlayerDisasterLog;
 import com.td.boss.game.complayerland.pojo.ComPlayerDisasterLog;
-import com.td.boss.game.complayerland.service.ComPlayerDisasterProtectedService;
 import com.td.boss.game.complayerland.service.ComPlayerDisasterLogService;
 import com.td.boss.game.complayerland.service.ComPlayerDisasterLogService;
+import com.td.boss.game.complayerland.service.ComPlayerDisasterProtectedService;
 import com.td.boss.game.complayerland.vo.ComPlayerDisasterEnum;
 import com.td.boss.game.complayerland.vo.ComPlayerDisasterEnum;
 import com.td.boss.game.complayerland.vo.ComPlayerDisasterProtectedVo;
 import com.td.boss.game.complayerland.vo.ComPlayerDisasterProtectedVo;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;
@@ -88,7 +87,7 @@ class ComPlayerDisasterLogTests {
         String json = JSONUtil.toJsonStr(Result.of(comCntToSnbService.findByUserId("952")));
         String json = JSONUtil.toJsonStr(Result.of(comCntToSnbService.findByUserId("952")));
         System.out.println(json);
         System.out.println(json);
         // 情况二,不在名单中
         // 情况二,不在名单中
-        String json2 = JSONUtil.toJsonStr(Result.of(comCntToSnbService.findByUserId("9527")));
+        String json2 = JSONUtil.toJsonStr(Result.of(comCntToSnbService.findByUserId("13")));
         System.out.println(json2);
         System.out.println(json2);
     }
     }
 
 
@@ -103,7 +102,8 @@ class ComPlayerDisasterLogTests {
 //        Integer day = Convert.toInt(DateUtil.betweenDay(begin, end, true));
 //        Integer day = Convert.toInt(DateUtil.betweenDay(begin, end, true));
 //        System.out.println(DateUtil.format(begin, "yyyy-MM-dd") + " 至 " + DateUtil.format(end, "yyyy-MM-dd") + "相差:" + day + "天");
 //        System.out.println(DateUtil.format(begin, "yyyy-MM-dd") + " 至 " + DateUtil.format(end, "yyyy-MM-dd") + "相差:" + day + "天");
 
 
-        String json = JSONUtil.toJsonStr(comCntToSnbService.receiveByUserId("952"));
+        String json = JSONUtil.toJsonStr(comCntToSnbService.receiveByUserId("13"));
         System.out.println(json);
         System.out.println(json);
+
     }
     }
 }
 }