From 97b4c314d1dab0d56469d628aa095e8b78c611db Mon Sep 17 00:00:00 2001 From: wqy <1191068887@qq.com> Date: Thu, 29 Feb 2024 10:26:34 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/system/ConfigController.java | 37 ++++++ .../system/SysConfigController.java | 43 +++--- .../cyl/h5/controller/H5CommonController.java | 17 ++- .../com/ruoyi/system/domain/SysConfig.java | 1 - .../ruoyi/system/domain/vo/SysConfigVo.java | 17 +++ .../system/service/ISysConfigService.java | 1 + .../service/impl/SysConfigServiceImpl.java | 122 +++++++++--------- 7 files changed, 152 insertions(+), 86 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/ConfigController.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysConfigVo.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/ConfigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/ConfigController.java new file mode 100644 index 0000000..6a110cf --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/ConfigController.java @@ -0,0 +1,37 @@ +package com.ruoyi.web.controller.system; + +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.system.domain.SysConfig; +import com.ruoyi.system.domain.vo.SysConfigVo; +import com.ruoyi.system.service.ISysConfigService; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/sys/config") +public class ConfigController extends BaseController { + + @Autowired + private ISysConfigService configService; + + @GetMapping(value = "/configKey2/{configKey}") + public AjaxResult getConfigKey2(@PathVariable String configKey) { + return AjaxResult.success(configService.selectConfigByKey2(configKey)); + } + + @PostMapping("/addOrUpdate") + public AjaxResult addOrUpdate(@RequestBody SysConfigVo content) { + SysConfig config = new SysConfig(); + BeanUtils.copyProperties(content,config); + if (config.getConfigId() == null) { + config.setCreateBy(getUserId()); + return toAjax(configService.insertConfig(config)); + } + config.setUpdateBy(getUserId()); + return toAjax(configService.updateConfig(config)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java index 7f76a41..fdca964 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java @@ -1,6 +1,9 @@ package com.ruoyi.web.controller.system; import java.util.List; + +import com.ruoyi.system.domain.vo.SysConfigVo; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; @@ -25,13 +28,12 @@ import com.ruoyi.system.service.ISysConfigService; /** * 参数配置 信息操作处理 - * + * * @author ruoyi */ @RestController @RequestMapping("/system/config") -public class SysConfigController extends BaseController -{ +public class SysConfigController extends BaseController { @Autowired private ISysConfigService configService; @@ -40,8 +42,7 @@ public class SysConfigController extends BaseController */ @PreAuthorize("@ss.hasPermi('system:config:list')") @GetMapping("/list") - public TableDataInfo list(SysConfig config) - { + public TableDataInfo list(SysConfig config) { startPage(); List list = configService.selectConfigList(config); return getDataTable(list); @@ -50,8 +51,7 @@ public class SysConfigController extends BaseController @Log(title = "参数管理", businessType = BusinessType.EXPORT) @PreAuthorize("@ss.hasPermi('system:config:export')") @GetMapping("/export") - public AjaxResult export(SysConfig config) - { + public AjaxResult export(SysConfig config) { List list = configService.selectConfigList(config); ExcelUtil util = new ExcelUtil(SysConfig.class); return util.exportExcel(list, "参数数据"); @@ -62,8 +62,7 @@ public class SysConfigController extends BaseController */ @PreAuthorize("@ss.hasPermi('system:config:query')") @GetMapping(value = "/{configId}") - public AjaxResult getInfo(@PathVariable Long configId) - { + public AjaxResult getInfo(@PathVariable Long configId) { return AjaxResult.success(configService.selectConfigById(configId)); } @@ -71,11 +70,12 @@ public class SysConfigController extends BaseController * 根据参数键名查询参数值 */ @GetMapping(value = "/configKey/{configKey}") - public AjaxResult getConfigKey(@PathVariable String configKey) - { + public AjaxResult getConfigKey(@PathVariable String configKey) { return AjaxResult.success(configService.selectConfigByKey(configKey)); } + + /** * 新增参数配置 */ @@ -83,10 +83,8 @@ public class SysConfigController extends BaseController @Log(title = "参数管理", businessType = BusinessType.INSERT) @PostMapping @RepeatSubmit - public AjaxResult add(@Validated @RequestBody SysConfig config) - { - if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config))) - { + public AjaxResult add(@Validated @RequestBody SysConfig config) { + if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config))) { return AjaxResult.error("新增参数'" + config.getConfigName() + "'失败,参数键名已存在"); } config.setCreateBy(getUserId()); @@ -99,24 +97,24 @@ public class SysConfigController extends BaseController @PreAuthorize("@ss.hasPermi('system:config:edit')") @Log(title = "参数管理", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@Validated @RequestBody SysConfig config) - { - if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config))) - { + public AjaxResult edit(@Validated @RequestBody SysConfig config) { + if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config))) { return AjaxResult.error("修改参数'" + config.getConfigName() + "'失败,参数键名已存在"); } config.setUpdateBy(getUserId()); return toAjax(configService.updateConfig(config)); } + + + /** * 删除参数配置 */ @PreAuthorize("@ss.hasPermi('system:config:remove')") @Log(title = "参数管理", businessType = BusinessType.DELETE) @DeleteMapping("/{configIds}") - public AjaxResult remove(@PathVariable Long[] configIds) - { + public AjaxResult remove(@PathVariable Long[] configIds) { configService.deleteConfigByIds(configIds); return success(); } @@ -127,8 +125,7 @@ public class SysConfigController extends BaseController @PreAuthorize("@ss.hasPermi('system:config:remove')") @Log(title = "参数管理", businessType = BusinessType.CLEAN) @DeleteMapping("/refreshCache") - public AjaxResult refreshCache() - { + public AjaxResult refreshCache() { configService.resetConfigCache(); return AjaxResult.success(); } diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5CommonController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5CommonController.java index c07d08a..15a0d6f 100644 --- a/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5CommonController.java +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5CommonController.java @@ -12,6 +12,7 @@ import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.redis.RedisService; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.OssUtils; +import com.ruoyi.system.service.ISysConfigService; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -24,7 +25,7 @@ import java.util.*; import java.util.stream.Collectors; @RestController -@RequestMapping("/h5") +@RequestMapping public class H5CommonController { @Autowired @@ -35,16 +36,18 @@ public class H5CommonController { private RedisService redisService; @Autowired private FeedbackService feedbackService; + @Autowired + private ISysConfigService sysConfigService; @ApiOperation("新增意见反馈") @Log(title = "意见反馈", businessType = BusinessType.INSERT) - @PostMapping("/feedback/create") + @PostMapping("/h5/feedback/create") public ResponseEntity add(@RequestBody Feedback feedback) { return ResponseEntity.ok(feedbackService.insert(feedback)); } - @GetMapping("/area") + @GetMapping("/h5/area") public AjaxResult getAddressList() { String addresses = redisService.getAddressList(); if (StringUtils.isNotEmpty(addresses)) { @@ -90,10 +93,16 @@ public class H5CommonController { return AjaxResult.success(result); } - @PostMapping("/file/upload") + @PostMapping("/h5/file/upload") public AjaxResult uploadFile(MultipartFile file) { String url = ossUtils.uploadOneFile(file); return AjaxResult.successData(url); } + @GetMapping("/no-auth/config/get") + public AjaxResult getSysConfig(String configKey) { + String s = sysConfigService.selectConfigByKey(configKey); + return AjaxResult.successData(s); + } + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java index c54678c..11c1e91 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java @@ -72,7 +72,6 @@ public class SysConfig extends BaseEntity } @NotBlank(message = "参数键值不能为空") - @Size(min = 0, max = 500, message = "参数键值长度不能超过500个字符") public String getConfigValue() { return configValue; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysConfigVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysConfigVo.java new file mode 100644 index 0000000..dfaeab2 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysConfigVo.java @@ -0,0 +1,17 @@ +package com.ruoyi.system.domain.vo; + +import lombok.Data; + +@Data +public class SysConfigVo { + + private Long configId; + + private String configKey; + + private String configName; + + private String configValue; + + private String configType; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java index f867e63..22d019f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java @@ -25,6 +25,7 @@ public interface ISysConfigService * @return 参数键值 */ public String selectConfigByKey(String configKey); + public SysConfig selectConfigByKey2(String configKey); /** * 获取验证码开关 diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java index 6f5e5e4..ec3b347 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java @@ -13,18 +13,18 @@ import com.ruoyi.system.mapper.SysConfigMapper; import com.ruoyi.system.service.ISysConfigService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + import javax.annotation.PostConstruct; import java.util.Collection; import java.util.List; /** * 参数配置 服务层实现 - * + * * @author ruoyi */ @Service -public class SysConfigServiceImpl implements ISysConfigService -{ +public class SysConfigServiceImpl implements ISysConfigService { @Autowired private SysConfigMapper configMapper; @@ -35,21 +35,19 @@ public class SysConfigServiceImpl implements ISysConfigService * 项目启动时,初始化参数到缓存 */ @PostConstruct - public void init() - { + public void init() { loadingConfigCache(); } /** * 查询参数配置信息 - * + * * @param configId 参数配置ID * @return 参数配置信息 */ @Override @DataSource(DataSourceType.MASTER) - public SysConfig selectConfigById(Long configId) - { + public SysConfig selectConfigById(Long configId) { SysConfig config = new SysConfig(); config.setConfigId(configId); return configMapper.selectConfig(config); @@ -57,40 +55,51 @@ public class SysConfigServiceImpl implements ISysConfigService /** * 根据键名查询参数配置信息 - * + * * @param configKey 参数key * @return 参数键值 */ @Override - public String selectConfigByKey(String configKey) - { + public String selectConfigByKey(String configKey) { String configValue = Convert.toStr(redisCache.getCacheObject(getCacheKey(configKey))); - if (StringUtils.isNotEmpty(configValue)) - { + if (StringUtils.isNotEmpty(configValue)) { return configValue; } SysConfig config = new SysConfig(); config.setConfigKey(configKey); SysConfig retConfig = configMapper.selectConfig(config); - if (StringUtils.isNotNull(retConfig)) - { + if (StringUtils.isNotNull(retConfig)) { redisCache.setCacheObject(getCacheKey(configKey), retConfig.getConfigValue()); return retConfig.getConfigValue(); } return StringUtils.EMPTY; } + @Override + public SysConfig selectConfigByKey2(String configKey) { + SysConfig config = redisCache.getCacheObject(getCacheKey2(configKey)); + if (config != null) { + return config; + } + SysConfig configQuery = new SysConfig(); + configQuery.setConfigKey(configKey); + SysConfig retConfig = configMapper.selectConfig(configQuery); + if (StringUtils.isNotNull(retConfig)) { + redisCache.setCacheObject(getCacheKey2(configKey), retConfig); + return retConfig; + } + return null; + } + /** * 获取验证码开关 - * + * * @return true开启,false关闭 */ @Override - public boolean selectCaptchaOnOff() - { + public boolean selectCaptchaOnOff() { String captchaOnOff = selectConfigByKey("sys.account.captchaOnOff"); - if (StringUtils.isEmpty(captchaOnOff)) - { + if (StringUtils.isEmpty(captchaOnOff)) { return true; } return Convert.toBool(captchaOnOff); @@ -98,64 +107,64 @@ public class SysConfigServiceImpl implements ISysConfigService /** * 查询参数配置列表 - * + * * @param config 参数配置信息 * @return 参数配置集合 */ @Override - public List selectConfigList(SysConfig config) - { + public List selectConfigList(SysConfig config) { return configMapper.selectConfigList(config); } /** * 新增参数配置 - * + * * @param config 参数配置信息 * @return 结果 */ @Override - public int insertConfig(SysConfig config) - { + public int insertConfig(SysConfig config) { int row = configMapper.insertConfig(config); - if (row > 0) - { - redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue()); + if (row > 0) { + if ("N".equals(config.getConfigType())){ + redisCache.setCacheObject(getCacheKey2(config.getConfigKey()), config); + } else { + redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue()); + } } return row; } /** * 修改参数配置 - * + * * @param config 参数配置信息 * @return 结果 */ @Override - public int updateConfig(SysConfig config) - { + public int updateConfig(SysConfig config) { int row = configMapper.updateConfig(config); - if (row > 0) - { - redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue()); + if (row > 0) { + if ("N".equals(config.getConfigType())){ + redisCache.setCacheObject(getCacheKey2(config.getConfigKey()), config); + } else { + redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue()); + } } return row; } /** * 批量删除参数信息 - * + * * @param configIds 需要删除的参数ID * @return 结果 */ @Override - public void deleteConfigByIds(Long[] configIds) - { - for (Long configId : configIds) - { + public void deleteConfigByIds(Long[] configIds) { + for (Long configId : configIds) { SysConfig config = selectConfigById(configId); - if (StringUtils.equals(UserConstants.YES, config.getConfigType())) - { + if (StringUtils.equals(UserConstants.YES, config.getConfigType())) { throw new ServiceException(String.format("内置参数【%1$s】不能删除 ", config.getConfigKey())); } configMapper.deleteConfigById(configId); @@ -167,11 +176,9 @@ public class SysConfigServiceImpl implements ISysConfigService * 加载参数缓存数据 */ @Override - public void loadingConfigCache() - { + public void loadingConfigCache() { List configsList = configMapper.selectConfigList(new SysConfig()); - for (SysConfig config : configsList) - { + for (SysConfig config : configsList) { redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue()); } } @@ -180,8 +187,7 @@ public class SysConfigServiceImpl implements ISysConfigService * 清空参数缓存数据 */ @Override - public void clearConfigCache() - { + public void clearConfigCache() { Collection keys = redisCache.keys(Constants.SYS_CONFIG_KEY + "*"); redisCache.deleteObject(keys); } @@ -190,25 +196,22 @@ public class SysConfigServiceImpl implements ISysConfigService * 重置参数缓存数据 */ @Override - public void resetConfigCache() - { + public void resetConfigCache() { clearConfigCache(); loadingConfigCache(); } /** * 校验参数键名是否唯一 - * + * * @param config 参数配置信息 * @return 结果 */ @Override - public String checkConfigKeyUnique(SysConfig config) - { + public String checkConfigKeyUnique(SysConfig config) { Long configId = StringUtils.isNull(config.getConfigId()) ? -1L : config.getConfigId(); SysConfig info = configMapper.checkConfigKeyUnique(config.getConfigKey()); - if (StringUtils.isNotNull(info) && info.getConfigId().longValue() != configId.longValue()) - { + if (StringUtils.isNotNull(info) && info.getConfigId().longValue() != configId.longValue()) { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE; @@ -216,12 +219,15 @@ public class SysConfigServiceImpl implements ISysConfigService /** * 设置cache key - * + * * @param configKey 参数键 * @return 缓存键key */ - private String getCacheKey(String configKey) - { + private String getCacheKey(String configKey) { return Constants.SYS_CONFIG_KEY + configKey; } + + private String getCacheKey2(String configKey) { + return Constants.SYS_CONFIG_KEY + configKey + "_all"; + } }