Răsfoiți Sursa

工具独立使用

呵呵哒 3 ani în urmă
părinte
comite
a1cd5cd73d

+ 4 - 1
src/main/java/com/td/boss/game/complayersattri/repository/ComPlayersLuckyRepository.java

@@ -4,9 +4,12 @@ import com.td.boss.common.repository.CommonRepository;
 import com.td.boss.game.complayersattri.pojo.ComPlayersLucky;
 import com.td.boss.game.complayersattri.pojo.ComPlayersLucky;
 import org.springframework.stereotype.Repository;
 import org.springframework.stereotype.Repository;
 
 
+import java.util.List;
 import java.util.Optional;
 import java.util.Optional;
 
 
 @Repository
 @Repository
 public interface ComPlayersLuckyRepository extends CommonRepository<ComPlayersLucky, Integer> {
 public interface ComPlayersLuckyRepository extends CommonRepository<ComPlayersLucky, Integer> {
-    Optional<ComPlayersLucky> findFirstByUserIdOrderByCreateTimeDesc(String userId);
+    List<ComPlayersLucky> findAllByUserId(String userId);
+
+    Optional<ComPlayersLucky> findFirstByUserIdAndToolsIdOrderByCreateTimeDesc(String userId, Integer toolsId);
 }
 }

+ 14 - 8
src/main/java/com/td/boss/game/complayersattri/service/ComPlayersLuckyServiceImpl.java

@@ -31,12 +31,11 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 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.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
+import java.util.Comparator;
 import java.util.Date;
 import java.util.Date;
 import java.util.List;
 import java.util.List;
 import java.util.Optional;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 
 @Slf4j
 @Slf4j
 @Service
 @Service
@@ -97,7 +96,7 @@ public class ComPlayersLuckyServiceImpl extends CommonServiceImpl<ComPlayersLuck
             return Result.of(null, false, ResultEnum.LAND_USE_TOOL.getMessage(), ResultEnum.LAND_USE_TOOL.getCode());
             return Result.of(null, false, ResultEnum.LAND_USE_TOOL.getMessage(), ResultEnum.LAND_USE_TOOL.getCode());
         }
         }
         //验证工具是否可用:每隔一段时间才可使用
         //验证工具是否可用:每隔一段时间才可使用
-        Optional<ComPlayersLucky> lastComPlayersLuckyLog = repository.findFirstByUserIdOrderByCreateTimeDesc(userId);
+        Optional<ComPlayersLucky> lastComPlayersLuckyLog = repository.findFirstByUserIdAndToolsIdOrderByCreateTimeDesc(userId, toolId);
         if (lastComPlayersLuckyLog.isPresent()) {
         if (lastComPlayersLuckyLog.isPresent()) {
             DateTime nextTime = DateUtil.offset(lastComPlayersLuckyLog.get().getCreateTime(), DateField.HOUR_OF_DAY, tools.getUseHour());
             DateTime nextTime = DateUtil.offset(lastComPlayersLuckyLog.get().getCreateTime(), DateField.HOUR_OF_DAY, tools.getUseHour());
             if (nextTime.isAfter(new Date())) {
             if (nextTime.isAfter(new Date())) {
@@ -304,12 +303,19 @@ public class ComPlayersLuckyServiceImpl extends CommonServiceImpl<ComPlayersLuck
     @Override
     @Override
     public List<ComPlayersLuckyToolsVo> getLandTools(String userId) {
     public List<ComPlayersLuckyToolsVo> getLandTools(String userId) {
         String land_tools = comConfigService.selectByKey(toolskey);
         String land_tools = comConfigService.selectByKey(toolskey);
-        List<ComPlayersLuckyToolsVo> comPlayersLuckyToolsVos = JSONUtil.toList(land_tools, ComPlayersLuckyToolsVo.class);
-        Optional<ComPlayersLucky> firstByUserIdOrderByCreateTimeDesc = repository.findFirstByUserIdOrderByCreateTimeDesc(userId);
+        List<ComPlayersLuckyToolsVo> comPlayersLuckyToolsVos = JSONUtil.toList(land_tools, ComPlayersLuckyToolsVo.class).stream().filter(a->a.isEnable()).collect(Collectors.toList());
+        List<ComPlayersLucky> ComPlayersLuckyList = repository.findAllByUserId(userId);
+
         for (ComPlayersLuckyToolsVo comPlayersLuckyToolsVo : comPlayersLuckyToolsVos) {
         for (ComPlayersLuckyToolsVo comPlayersLuckyToolsVo : comPlayersLuckyToolsVos) {
             long canUseTime = 0;
             long canUseTime = 0;
-            if (firstByUserIdOrderByCreateTimeDesc.isPresent()) {
-                DateTime offset = DateUtil.offset(firstByUserIdOrderByCreateTimeDesc.get().getCreateTime(), DateField.HOUR, comPlayersLuckyToolsVo.getUseHour());
+            //获取使用工具历史中最后一次记录
+            ComPlayersLucky firstByUserIdOrderByCreateTimeDesc = ComPlayersLuckyList.stream()
+                    .filter(a -> comPlayersLuckyToolsVo.getId().equals(a.getToolsId()))
+                    .sorted(Comparator.comparing(ComPlayersLucky::getCreateTime).reversed())
+                    .findFirst().orElse(null);
+
+            if (firstByUserIdOrderByCreateTimeDesc != null) {
+                DateTime offset = DateUtil.offset(firstByUserIdOrderByCreateTimeDesc.getCreateTime(), DateField.HOUR, comPlayersLuckyToolsVo.getUseHour());
                 if (offset.after(new Date())) {
                 if (offset.after(new Date())) {
                     canUseTime = DateUtil.betweenMs(offset, new Date());
                     canUseTime = DateUtil.betweenMs(offset, new Date());
                 }
                 }