|
|
@@ -31,12 +31,11 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
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.List;
|
|
|
import java.util.Optional;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Slf4j
|
|
|
@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());
|
|
|
}
|
|
|
//验证工具是否可用:每隔一段时间才可使用
|
|
|
- Optional<ComPlayersLucky> lastComPlayersLuckyLog = repository.findFirstByUserIdOrderByCreateTimeDesc(userId);
|
|
|
+ Optional<ComPlayersLucky> lastComPlayersLuckyLog = repository.findFirstByUserIdAndToolsIdOrderByCreateTimeDesc(userId, toolId);
|
|
|
if (lastComPlayersLuckyLog.isPresent()) {
|
|
|
DateTime nextTime = DateUtil.offset(lastComPlayersLuckyLog.get().getCreateTime(), DateField.HOUR_OF_DAY, tools.getUseHour());
|
|
|
if (nextTime.isAfter(new Date())) {
|
|
|
@@ -304,12 +303,19 @@ public class ComPlayersLuckyServiceImpl extends CommonServiceImpl<ComPlayersLuck
|
|
|
@Override
|
|
|
public List<ComPlayersLuckyToolsVo> getLandTools(String userId) {
|
|
|
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) {
|
|
|
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())) {
|
|
|
canUseTime = DateUtil.betweenMs(offset, new Date());
|
|
|
}
|