You've already forked FrameTour-BE
refactor(basic): 重构景区配置管理逻辑
- 移除 AppOrderV2Controller 中的价格缓存逻辑 - 修正 VoucherServiceImpl 中的购买数量计算方式- 重构 ScenicRepository 中的景区配置获取逻辑 -增加 ScenicConfigManager 的扁平化配置和驼峰转换功能
This commit is contained in:
@@ -97,28 +97,71 @@ public class ScenicRepository {
|
||||
}
|
||||
|
||||
public ScenicConfigEntity getScenicConfig(Long scenicId) {
|
||||
String key = String.format(SCENIC_CONFIG_CACHE_KEY, scenicId);
|
||||
try {
|
||||
ScenicV2WithConfigDTO scenicWithConfigDTO = scenicIntegrationService.getScenicWithConfig(scenicId);
|
||||
ScenicConfigEntity configEntity = convertToScenicConfigEntity(scenicWithConfigDTO, scenicId);
|
||||
|
||||
// 请求成功,写入缓存
|
||||
if (configEntity != null) {
|
||||
redisTemplate.opsForValue().set(
|
||||
key,
|
||||
JacksonUtil.toJSONString(configEntity)
|
||||
);
|
||||
}
|
||||
return configEntity;
|
||||
} catch (Exception e) {
|
||||
// 请求失败,尝试从缓存获取历史成功数据
|
||||
String cacheKey = key;
|
||||
if (redisTemplate.hasKey(cacheKey)) {
|
||||
return JacksonUtil.parseObject(redisTemplate.opsForValue().get(cacheKey), ScenicConfigEntity.class);
|
||||
}
|
||||
// 缓存也没有,返回null
|
||||
return null;
|
||||
}
|
||||
ScenicConfigManager scenicConfigManager = getScenicConfigManager(scenicId);
|
||||
ScenicConfigEntity config = new ScenicConfigEntity();
|
||||
|
||||
// 基础配置
|
||||
config.setScenicId(scenicId);
|
||||
|
||||
// 业务流程配置
|
||||
config.setBookRoutine(scenicConfigManager.getInteger("book_routine"));
|
||||
config.setForceFinishTime(scenicConfigManager.getInteger("force_finish_time"));
|
||||
config.setTourTime(scenicConfigManager.getInteger("tour_time"));
|
||||
|
||||
// 存储时间配置
|
||||
config.setSampleStoreDay(scenicConfigManager.getInteger("sample_store_day"));
|
||||
config.setFaceStoreDay(scenicConfigManager.getInteger("face_store_day"));
|
||||
config.setVideoStoreDay(scenicConfigManager.getInteger("video_store_day"));
|
||||
config.setVideoSourceStoreDay(scenicConfigManager.getInteger("video_source_store_day"));
|
||||
config.setImageSourceStoreDay(scenicConfigManager.getInteger("image_source_store_day"));
|
||||
config.setUserSourceExpireDay(scenicConfigManager.getInteger("user_source_expire_day"));
|
||||
|
||||
// 功能开关配置
|
||||
config.setAllFree(scenicConfigManager.getBoolean("all_free"));
|
||||
config.setDisableSourceVideo(scenicConfigManager.getBoolean("disable_source_video"));
|
||||
config.setDisableSourceImage(scenicConfigManager.getBoolean("disable_source_image"));
|
||||
config.setVoucherEnable(scenicConfigManager.getBoolean("voucher_enable"));
|
||||
|
||||
// 模板和防录屏配置
|
||||
config.setTemplateNewVideoType(scenicConfigManager.getInteger("template_new_video_type"));
|
||||
config.setAntiScreenRecordType(scenicConfigManager.getInteger("anti_screen_record_type"));
|
||||
|
||||
// 人脸识别配置
|
||||
config.setFaceScoreThreshold(scenicConfigManager.getFloat("face_score_threshold"));
|
||||
config.setFaceDetectHelperThreshold(scenicConfigManager.getInteger("face_detect_helper_threshold"));
|
||||
config.setFaceType(scenicConfigManager.getEnum("face_type", FaceBodyAdapterType.class));
|
||||
config.setFaceConfigJson(scenicConfigManager.getString("face_config_json"));
|
||||
|
||||
// 存储配置
|
||||
config.setStoreType(scenicConfigManager.getEnum("store_type", StorageType.class));
|
||||
config.setStoreConfigJson(scenicConfigManager.getString("store_config_json"));
|
||||
config.setTmpStoreType(scenicConfigManager.getEnum("tmp_store_type", StorageType.class));
|
||||
config.setTmpStoreConfigJson(scenicConfigManager.getString("tmp_store_config_json"));
|
||||
config.setLocalStoreType(scenicConfigManager.getEnum("local_store_type", StorageType.class));
|
||||
config.setLocalStoreConfigJson(scenicConfigManager.getString("local_store_config_json"));
|
||||
|
||||
// 支付配置
|
||||
config.setPayType(scenicConfigManager.getEnum("pay_type", PayAdapterType.class));
|
||||
config.setPayConfigJson(scenicConfigManager.getString("pay_config_json"));
|
||||
|
||||
// 推客配置
|
||||
config.setBrokerDirectRate(scenicConfigManager.getBigDecimal("broker_direct_rate"));
|
||||
|
||||
// 水印配置
|
||||
config.setWatermarkType(scenicConfigManager.getString("watermark_type"));
|
||||
config.setWatermarkScenicText(scenicConfigManager.getString("watermark_scenic_text"));
|
||||
config.setWatermarkDtFormat(scenicConfigManager.getString("watermark_dt_format"));
|
||||
|
||||
// 提示信息配置
|
||||
config.setImageSourcePackHint(scenicConfigManager.getString("image_source_pack_hint"));
|
||||
config.setVideoSourcePackHint(scenicConfigManager.getString("video_source_pack_hint"));
|
||||
config.setExtraNotificationTime(scenicConfigManager.getString("extra_notification_time"));
|
||||
|
||||
// 免费数量配置
|
||||
config.setPhotoFreeNum(scenicConfigManager.getInteger("photo_free_num"));
|
||||
config.setVideoFreeNum(scenicConfigManager.getInteger("video_free_num"));
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
public MpConfigEntity getScenicMpConfig(Long scenicId) {
|
||||
|
Reference in New Issue
Block a user