diff --git a/src/main/java/com/gxwebsoft/common/system/controller/SettingController.java b/src/main/java/com/gxwebsoft/common/system/controller/SettingController.java index fe42930..b6a951a 100644 --- a/src/main/java/com/gxwebsoft/common/system/controller/SettingController.java +++ b/src/main/java/com/gxwebsoft/common/system/controller/SettingController.java @@ -111,6 +111,10 @@ public class SettingController extends BaseController { // 更新系统设置信息到缓存 key = "" String key = setting.getSettingKey().concat(":").concat(loginUser.getTenantId().toString()); redisUtil.set(key, JSON.parseObject(setting.getContent())); + // 上传配置变更后需同步清除上传缓存,避免 /api/oss/upload 继续命中旧配置 + if ("upload".equals(setting.getSettingKey())) { + redisUtil.delete("Upload:" + loginUser.getTenantId()); + } // 更新租户信息 if (setting.getSettingKey().equals("setting")) { final String content = setting.getContent(); diff --git a/src/main/java/com/gxwebsoft/common/system/service/impl/SettingServiceImpl.java b/src/main/java/com/gxwebsoft/common/system/service/impl/SettingServiceImpl.java index ac8455c..ce2bf0d 100644 --- a/src/main/java/com/gxwebsoft/common/system/service/impl/SettingServiceImpl.java +++ b/src/main/java/com/gxwebsoft/common/system/service/impl/SettingServiceImpl.java @@ -182,7 +182,15 @@ public class SettingServiceImpl extends ServiceImpl impl @Override public boolean updateByKey(Setting setting) { - return update(setting, new QueryWrapper().eq("setting_key", setting.getSettingKey())); + boolean ok = update(setting, new QueryWrapper().eq("setting_key", setting.getSettingKey())); + // 上传配置变更后必须清缓存,否则 /api/oss/upload 仍读到旧的 Upload:{tenantId} 缓存 + if (ok && "upload".equals(setting.getSettingKey())) { + Integer tenantId = setting.getTenantId(); + if (tenantId != null) { + redisUtil.delete("Upload:" + tenantId); + } + } + return ok; } }