Przeglądaj źródła

模块3 使用工具 获得幸运值

呵呵哒 4 lat temu
rodzic
commit
010a8e8377

+ 17 - 3
src/main/java/com/td/boss/game/complayersattri/controller/ComPlayersLuckyController.java

@@ -1,16 +1,21 @@
 package com.td.boss.game.complayersattri.controller;
 
 import com.td.boss.common.pojo.Result;
+import com.td.boss.game.complayersattri.service.ComPlayersLuckyLogService;
 import com.td.boss.game.complayersattri.service.ComPlayersLuckyToolsService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+/**
+ * 工具功能模块
+ */
 @RequestMapping("/game/")
 @RestController
 public class ComPlayersLuckyController {
@@ -18,6 +23,9 @@ public class ComPlayersLuckyController {
     @Autowired
     private ComPlayersLuckyToolsService luckyToolService;
 
+    @Autowired
+    private ComPlayersLuckyLogService luckyLogService;
+
     /**
      * 获取所有工具
      *
@@ -28,9 +36,15 @@ public class ComPlayersLuckyController {
         return luckyToolService.list(null);
     }
 
+    /**
+     * 使用某个工具 获得幸运值
+     *
+     * @param id
+     * @return
+     */
     @GetMapping("/useLuckTools")
-    public Result<?> useLuckyTools(long id) {
-        return null;
-
+    public Result<?> useLuckyTools(@RequestParam(value = "userId") String userId,
+                                   @RequestParam(value = "id") Integer id) {
+        return luckyLogService.useLuckyTools(userId, id);
     }
 }

+ 3 - 0
src/main/java/com/td/boss/game/complayersattri/pojo/ComPlayersLuckyLog.java

@@ -1,11 +1,14 @@
 package com.td.boss.game.complayersattri.pojo;
 
+import lombok.Data;
+
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
 import javax.persistence.Table;
 import java.io.Serializable;
 import java.util.Date;
 
+@Data
 @Table(name="com_players_lucky_log")
 public class ComPlayersLuckyLog implements Serializable {
     /** 主键id */

+ 4 - 0
src/main/java/com/td/boss/game/complayersattri/pojo/ComPlayersLuckyTools.java

@@ -1,11 +1,15 @@
 package com.td.boss.game.complayersattri.pojo;
 
+import lombok.Data;
+
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
 import javax.persistence.Table;
 import java.io.Serializable;
 import java.util.Date;
 
+
+@Data
 @Table(name = "com_players_lucky_tools")
 public class ComPlayersLuckyTools implements Serializable {
     /**

+ 2 - 0
src/main/java/com/td/boss/game/complayersattri/repository/ComPlayersLuckyLogRepository.java

@@ -11,4 +11,6 @@ import java.util.Optional;
 public interface ComPlayersLuckyLogRepository extends CommonRepository<ComPlayersLuckyLog, Integer> {
 
     Optional<ComPlayersLuckyLog> findByUserId(String userId);
+    Optional<ComPlayersLuckyLog> findByUserIdOrderByCreateTimeDesc(String userId);
+
 }

+ 3 - 0
src/main/java/com/td/boss/game/complayersattri/service/ComPlayersLuckyLogService.java

@@ -1,9 +1,12 @@
 package com.td.boss.game.complayersattri.service;
 
+import com.td.boss.common.pojo.Result;
 import com.td.boss.common.service.CommonService;
 import com.td.boss.game.complayersattri.pojo.ComPlayersLuckyLog;
 import com.td.boss.game.complayersattri.vo.ComPlayersLuckyLogVo;
 
 public interface ComPlayersLuckyLogService extends CommonService<ComPlayersLuckyLogVo, ComPlayersLuckyLog, Integer> {
     ComPlayersLuckyLogVo findByUserId(String userId);
+
+    Result useLuckyTools(String userId,Integer id);
 }

+ 47 - 2
src/main/java/com/td/boss/game/complayersattri/service/ComPlayersLuckyLogServiceImpl.java

@@ -1,9 +1,15 @@
 package com.td.boss.game.complayersattri.service;
 
+import cn.hutool.core.date.DateField;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
 import com.td.boss.common.pojo.Result;
 import com.td.boss.common.service.CommonServiceImpl;
+import com.td.boss.game.complayersattri.enums.ComPlayerLuckyLogEnum;
+import com.td.boss.game.complayersattri.pojo.ComPlayersAttri;
 import com.td.boss.game.complayersattri.pojo.ComPlayersLuckyLog;
 import com.td.boss.game.complayersattri.pojo.ComPlayersLuckyTools;
+import com.td.boss.game.complayersattri.repository.ComPlayersAttriRepository;
 import com.td.boss.game.complayersattri.repository.ComPlayersLuckyLogRepository;
 import com.td.boss.game.complayersattri.repository.ComPlayersLuckyToolsRepository;
 import com.td.boss.game.complayersattri.vo.ComPlayersLuckyLogVo;
@@ -15,6 +21,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.persistence.EntityManager;
 import javax.persistence.PersistenceContext;
+import java.util.Date;
 import java.util.Optional;
 
 @Service
@@ -29,13 +36,27 @@ public class ComPlayersLuckyLogServiceImpl extends CommonServiceImpl<ComPlayersL
     @Autowired
     private ComPlayersLuckyToolsRepository luckyToolsRepository;
 
+    @Autowired
+    private ComPlayersAttriRepository comPlayersAttriRepository;
+
     @Override
     public ComPlayersLuckyLogVo findByUserId(String userId) {
         ComPlayersLuckyLog comPlayersLuckyLog = repository.findByUserId(userId).orElse(null);
         return comPlayersLuckyLog == null ? null : CopyUtil.copy(comPlayersLuckyLog, ComPlayersLuckyLogVo.class);
     }
 
-    public Result useLuckyTools(Integer id) {
+    /**
+     * 使用的工具 获得幸运值,12小时获取一次
+     *
+     * @param userId
+     * @param id
+     * @return
+     */
+    @Override
+    public Result useLuckyTools(String userId, Integer id) {
+        //需要记录 对那块地使用了工具
+        //明细中应该记录当时工具名称
+        //工具应该加一个状态字段。标记是否启用该工具
         if (id == null || id.equals(0)) {
             Result.of(null, false, "无效工具");
         }
@@ -43,8 +64,32 @@ public class ComPlayersLuckyLogServiceImpl extends CommonServiceImpl<ComPlayersL
         if (tools == null) {
             Result.of(null, false, "无效工具");
         }
-        return Result.of(null);
+        ComPlayersAttri playersAttri = comPlayersAttriRepository.findByUserId(userId).orElse(null);
+        if (playersAttri == null) {
+            Result.of(null, false, "无效领取");
+        }
+        //验证工具是否可用:每隔一段时间才可使用
+        Optional<ComPlayersLuckyLog> lastComPlayersLuckyLog = repository.findByUserIdOrderByCreateTimeDesc(userId);
+        if (lastComPlayersLuckyLog.isPresent()) {
+            DateTime nextTime = DateUtil.offset(lastComPlayersLuckyLog.get().getCreateTime(), DateField.HOUR_OF_DAY, tools.getToolTime());
+            if (nextTime.isAfter(new Date())) {
+                Result.of(null, false, "请在" + nextTime.toDateStr() + "后使用工具");
+            }
+        }
+        //写入使用工具明细
+        ComPlayersLuckyLog comPlayersLuckyLog = new ComPlayersLuckyLog();
+        comPlayersLuckyLog.setAfterLucky(playersAttri.getLucky() + tools.getToolLucky());
+        comPlayersLuckyLog.setBeforeLucky(playersAttri.getLucky());
+        comPlayersLuckyLog.setAmount(tools.getToolLucky());
+        comPlayersLuckyLog.setLuckyType(ComPlayerLuckyLogEnum.tool.getCode());
+        comPlayersLuckyLog.setToolsId(id);
+        comPlayersLuckyLog.setUserId(userId);
+        repository.save(comPlayersLuckyLog);
 
+        //更新幸运值
+        playersAttri.setLucky(playersAttri.getLucky() + tools.getToolLucky());
+        comPlayersAttriRepository.save(playersAttri);
+        return Result.of(null, true, "使用工具成功");
     }
 
 }