提交 296710b2 作者: 925993793@qq.com

【fix】事件时间范围扩大redis缓存bug修改

上级 0eca7ff2
...@@ -27,6 +27,9 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -27,6 +27,9 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
...@@ -161,6 +164,7 @@ public class EventApi { ...@@ -161,6 +164,7 @@ public class EventApi {
public void simpleUpdate(ThirdAddEventVO addEventVO){ public void simpleUpdate(ThirdAddEventVO addEventVO){
String eventId = addEventVO.getId(); String eventId = addEventVO.getId();
Event oldEvent = eventService.getById(eventId);
Event event = new Event(); Event event = new Event();
BeanUtils.copyProperties(addEventVO, event); BeanUtils.copyProperties(addEventVO, event);
event.setUpdateBy(addEventVO.getUsername()); event.setUpdateBy(addEventVO.getUsername());
...@@ -170,6 +174,8 @@ public class EventApi { ...@@ -170,6 +174,8 @@ public class EventApi {
//地域关系绑定 //地域关系绑定
List<RegionVO> regionList = addEventVO.getRegionList(); List<RegionVO> regionList = addEventVO.getRegionList();
addRegionMap(eventId, regionList); addRegionMap(eventId, regionList);
//修改redis缓存,,用于向事件里补充数据
updateRedisCache(event, oldEvent);
}); });
} }
...@@ -243,4 +249,34 @@ public class EventApi { ...@@ -243,4 +249,34 @@ public class EventApi {
eventRegionMapService.saveBatch(dataList); eventRegionMapService.saveBatch(dataList);
} }
} }
/**
* 修改事件时间缓存,用于补充数据(只有启用过的事件才会起作用)
*
* @param event 新事件信息
* @param oldEvent 旧事件信息
* @author lkg
* @date 2025/2/7
*/
private void updateRedisCache(Event event, Event oldEvent) {
Date firstOpenTime = oldEvent.getFirstOpenTime();
if (firstOpenTime != null) {
Date oldTimeEnable = oldEvent.getStartTime();
LocalDate oldStart = oldTimeEnable.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
Date timeEnable = event.getStartTime();
List<String> newDateList = new ArrayList<>();
LocalDate start = timeEnable.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
if (start.isBefore(oldStart)) {
for (LocalDate date = start; date.isBefore(oldStart); date = date.plusDays(1)) {
// 在这里处理每一天的逻辑
//格式化date成字符串
String format = date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
newDateList.add(format);
}
}
if (CollectionUtils.isNotEmpty(newDateList)) {
redisUtil.rpushMultipleValues(Constants.HISTORY_EVENT_DATE_QUEUE + event.getEventCode(), newDateList.toArray(new String[0]));
}
}
}
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论