feat(scenic): 优化景区信息获取与缓存机制

-移除景区信息查询相关冗余代码
- 增加缓存逻辑,提高景区信息获取效率
- 更新 ScenicRepository 中的 getScenic 和 getScenicConfig 方法
- 重构 ScenicServiceImpl 中的 list 方法
- 删除 ScenicService 接口中未使用的多个方法
This commit is contained in:
2025-08-27 10:07:01 +08:00
parent 7c2db2ad22
commit 6bc94a65a6
4 changed files with 35 additions and 238 deletions

View File

@@ -3,7 +3,6 @@ package com.ycwl.basic.repository;
import com.ycwl.basic.utils.JacksonUtil;
import com.ycwl.basic.mapper.MpConfigMapper;
import com.ycwl.basic.mapper.MpNotifyConfigMapper;
import com.ycwl.basic.mapper.ScenicMapper;
import com.ycwl.basic.model.pc.mp.MpConfigEntity;
import com.ycwl.basic.model.pc.mp.MpNotifyConfigEntity;
import com.ycwl.basic.model.pc.mp.ScenicMpNotifyVO;
@@ -24,8 +23,6 @@ import java.util.List;
@Component
public class ScenicRepository {
@Autowired
private ScenicMapper scenicMapper;
@Autowired
private MpConfigMapper mpConfigMapper;
@Autowired
@@ -44,18 +41,48 @@ public class ScenicRepository {
public ScenicEntity getScenic(Long id) {
try {
ScenicV2DTO scenicDTO = scenicIntegrationService.getScenic(id);
return convertToScenicEntity(scenicDTO);
ScenicEntity scenicEntity = convertToScenicEntity(scenicDTO);
// 请求成功,写入缓存
if (scenicEntity != null) {
redisTemplate.opsForValue().set(
String.format(SCENIC_CACHE_KEY, id),
JacksonUtil.toJSONString(scenicEntity)
);
}
return scenicEntity;
} catch (Exception e) {
return scenicMapper.get(id);
// 请求失败,尝试从缓存获取历史成功数据
String cacheKey = String.format(SCENIC_CACHE_KEY, id);
if (redisTemplate.hasKey(cacheKey)) {
return JacksonUtil.parseObject(redisTemplate.opsForValue().get(cacheKey), ScenicEntity.class);
}
// 缓存也没有,返回null
return null;
}
}
public ScenicConfigEntity getScenicConfig(Long scenicId) {
try {
ScenicV2WithConfigDTO scenicWithConfigDTO = scenicIntegrationService.getScenicWithConfig(scenicId);
return convertToScenicConfigEntity(scenicWithConfigDTO, scenicId);
ScenicConfigEntity configEntity = convertToScenicConfigEntity(scenicWithConfigDTO, scenicId);
// 请求成功,写入缓存
if (configEntity != null) {
redisTemplate.opsForValue().set(
String.format(SCENIC_CONFIG_CACHE_KEY, scenicId),
JacksonUtil.toJSONString(configEntity)
);
}
return configEntity;
} catch (Exception e) {
return scenicMapper.getConfig(scenicId);
// 请求失败,尝试从缓存获取历史成功数据
String cacheKey = String.format(SCENIC_CONFIG_CACHE_KEY, scenicId);
if (redisTemplate.hasKey(cacheKey)) {
return JacksonUtil.parseObject(redisTemplate.opsForValue().get(cacheKey), ScenicConfigEntity.class);
}
// 缓存也没有,返回null
return null;
}
}