瀏覽代碼

1.添加偷菜判断是否成熟
2.完善幸运值代码

slambb 3 年之前
父節點
當前提交
f7e1a05a54

+ 17 - 1
src/main/java/com/td/boss/game/complayergoods/controller/ComPlayerGoodsController.java

@@ -519,6 +519,22 @@ public class ComPlayerGoodsController extends CommonController<ComPlayerGoodsVo,
         if (otherPlayerLand.getIsPlant().equals(0) && otherPlayerLand.getPlantSteal().equals(0)) {
             return Result.of(null, false, ResultEnum.LAND_CAN_STEAL_IS_NULL.getMessage(), ResultEnum.LAND_CAN_STEAL_IS_NULL.getCode());
         }
+
+        //todo 偷窃水果时候,加入判断是否成熟
+        //获取当前种植的种子
+        ComMallSeedVo comMallSeedVo = comMallSeedService.findById(otherPlayerLand.getPlantId());
+        if (comMallSeedVo == null) {
+            return Result.of(null, false, ResultEnum.SEED_DATA_ERROR.getMessage(), ResultEnum.SEED_DATA_ERROR.getCode());
+        }
+        // 判断是否成熟
+        Date _harvestTime = DateUtil.getNowDateMinusDay(comMallSeedVo.getMaturity());
+        // 两个时间差, 逻辑是_harvestTime 时间慢慢接近种植时间
+        long diff = otherPlayerLand.getPlantStart().getTime() - _harvestTime.getTime();
+        if (diff > 0) {
+            //如果当前时间减去种子的成熟期,还是小于种植日期,则判断未成熟
+            return Result.of(null, false, ResultEnum.SEED_DATE_ERROR.getMessage(), ResultEnum.SEED_DATE_ERROR.getCode());
+        }
+
         //snb 的key
         String _redisSNBKey = "SNB_SAVE_" + userId;
         long snbTime = System.currentTimeMillis() + RedisData.getSnbTimeout();
@@ -566,7 +582,7 @@ public class ComPlayerGoodsController extends CommonController<ComPlayerGoodsVo,
                 }
             }
             //获取当前种植的种子
-            ComMallSeedVo comMallSeedVo = comMallSeedService.findById(otherPlayerLand.getPlantId());
+            //ComMallSeedVo comMallSeedVo = comMallSeedService.findById(otherPlayerLand.getPlantId());
             //todo 如果当前人员偷窃水果。记录一个信息,存储当前玩家已偷过的水果的信息
             //计算一个偷取的收获量, 租赁倍数* 租赁日期下的产量
             Integer _otherAmount = 0;

+ 21 - 11
src/main/java/com/td/boss/game/complayersattri/service/ComPlayersLuckyServiceImpl.java

@@ -18,13 +18,16 @@ import com.td.boss.game.complayersattri.pojo.ComPlayersAttri;
 import com.td.boss.game.complayersattri.pojo.ComPlayersLucky;
 import com.td.boss.game.complayersattri.repository.ComPlayersAttriRepository;
 import com.td.boss.game.complayersattri.repository.ComPlayersLuckyRepository;
+import com.td.boss.game.complayersattri.vo.ComPlayersAttriSimpleVo;
 import com.td.boss.game.complayersattri.vo.ComPlayersLuckyLandLevelUpVo;
 import com.td.boss.game.complayersattri.vo.ComPlayersLuckyToolsVo;
 import com.td.boss.game.complayersattri.vo.ComPlayersLuckyVo;
 import com.td.boss.game.comsnbtran.service.ComSnbTranService;
 import com.td.boss.game.comsnbtran.vo.ComSnbTranVo;
 import com.td.boss.game.comusers.service.ComUsersService;
+import com.td.boss.game.comusers.vo.ComUsersSimpleVo;
 import com.td.boss.game.comusers.vo.ComUsersVo;
+import com.td.boss.util.CopyUtil;
 import com.td.boss.util.RedisData;
 import com.td.boss.util.RedisLock;
 import lombok.extern.slf4j.Slf4j;
@@ -121,7 +124,8 @@ public class ComPlayersLuckyServiceImpl extends CommonServiceImpl<ComPlayersLuck
         playersAttri.setLucky(afterLucky);
         comPlayersAttriRepository.save(playersAttri);
         Map map = new HashMap();
-        map.put("playerAttribute", playersAttri);
+        ComPlayersAttriSimpleVo comPlayersAttriSimpleVo = CopyUtil.copy(playersAttri, ComPlayersAttriSimpleVo.class);
+        map.put("playerAttribute", comPlayersAttriSimpleVo);
 
         return Result.of(map, true, "使用工具成功");
     }
@@ -232,10 +236,10 @@ public class ComPlayersLuckyServiceImpl extends CommonServiceImpl<ComPlayersLuck
             return Result.of(null, false, ResultEnum.SEED_SALE_SAVE_LOCK.getMessage(), ResultEnum.SEED_SALE_SAVE_LOCK.getCode());
         }
         //获得snb用户对象
-        ComUsersVo player = comUsersService.findByUserId(userId);
+        //ComUsersVo player = comUsersService.findByUserId(userId);
         //获得幸运值用户对象
         ComPlayersAttri playersAttri = comPlayersAttriRepository.findByUserId(userId).orElse(null);
-        if (playersAttri == null || player == null) {
+        if (playersAttri == null || comUsersVo == null) {
             return Result.of(null, false, "无效用户");
         }
         //剩余幸运值
@@ -246,16 +250,22 @@ public class ComPlayersLuckyServiceImpl extends CommonServiceImpl<ComPlayersLuck
         //兑换snb数量
         int snbNum = luckNum / snb;
         //插入明细
-        mingxi(userId, luckNum, playersAttri.getLucky(), player.getSnb(), snbNum);
+        mingxi(userId, luckNum, playersAttri.getLucky(), comUsersVo.getSnb(), snbNum,comUsersVo.getSnbPart());
 
         //更新用户snb
-        player.setSnb(player.getSnb() + snbNum);
-        comUsersService.save(player);
+        comUsersVo.setSnb(comUsersVo.getSnb() + snbNum);
+        comUsersService.save(comUsersVo);
 
         //更新用户幸运值
         playersAttri.setLucky(num);
         comPlayersAttriRepository.save(playersAttri);
-        return Result.of(null, true, StrUtil.format("成功兑换{}个snb,消耗{}个幸运值", snbNum, luckNum));
+
+        Map map = new HashMap();
+        ComPlayersAttriSimpleVo comPlayersAttriSimpleVo = CopyUtil.copy(playersAttri, ComPlayersAttriSimpleVo.class);
+        map.put("playerAttribute",comPlayersAttriSimpleVo);
+        map.put("userInfo", CopyUtil.copy(comUsersVo, ComUsersSimpleVo.class));
+
+        return Result.of(map, true, StrUtil.format("成功兑换{}个snb,消耗{}个幸运值", snbNum, luckNum));
     }
 
     /**
@@ -265,7 +275,7 @@ public class ComPlayersLuckyServiceImpl extends CommonServiceImpl<ComPlayersLuck
      * @param beforeSNB  兑换前的snb数量
      * @param snbNum     兑换snb的数量
      */
-    private void mingxi(String userId, int luckNum, int beforeLuck, int beforeSNB, int snbNum) {
+    private void mingxi(String userId, int luckNum, int beforeLuck, int beforeSNB, int snbNum,double snbPart) {
         //记录幸运值明细
         ComPlayersLucky comPlayersLucky = new ComPlayersLucky();
         comPlayersLucky.setAfterLucky(beforeLuck - luckNum);
@@ -286,7 +296,7 @@ public class ComPlayersLuckyServiceImpl extends CommonServiceImpl<ComPlayersLuck
         //记录兑换id
         snbTran.setTranId(Convert.toStr(comPlayersLucky.getId()));
         snbTran.setUserId(userId);
-        snbTran.setTranName("兑换SNB");
+        snbTran.setTranName(StrUtil.format("幸运值{}兑换SNB", luckNum));
         snbTran.setTranType(9);
         snbTran.setTranAmount(snbNum);
         snbTran.setTranDescribe(StrUtil.format("user幸运值兑换SNB、本次兑换:{},消耗:{}幸运值", snbNum, luckNum));
@@ -296,8 +306,8 @@ public class ComPlayersLuckyServiceImpl extends CommonServiceImpl<ComPlayersLuck
         snbTran.setAfterSnb(beforeSNB + snbNum);
         snbTran.setCreateTime(new Date());
         snbTran.setTranSnbPart(0d);
-        snbTran.setAfterSnbPart(0d);
-        snbTran.setBeforeSnbPart(0d);
+        snbTran.setAfterSnbPart(snbPart);
+        snbTran.setBeforeSnbPart(snbPart);
         snbTran.setTranAmountPart(0d);
         snbTran.setTranPrice(0);
         comSnbTranService.save(snbTran);