pull/1/head
wqy 2 years ago
parent 6169557d83
commit 97b4c314d1

@ -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));
}
}

@ -1,6 +1,9 @@
package com.ruoyi.web.controller.system; package com.ruoyi.web.controller.system;
import java.util.List; 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.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -30,8 +33,7 @@ import com.ruoyi.system.service.ISysConfigService;
*/ */
@RestController @RestController
@RequestMapping("/system/config") @RequestMapping("/system/config")
public class SysConfigController extends BaseController public class SysConfigController extends BaseController {
{
@Autowired @Autowired
private ISysConfigService configService; private ISysConfigService configService;
@ -40,8 +42,7 @@ public class SysConfigController extends BaseController
*/ */
@PreAuthorize("@ss.hasPermi('system:config:list')") @PreAuthorize("@ss.hasPermi('system:config:list')")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo list(SysConfig config) public TableDataInfo list(SysConfig config) {
{
startPage(); startPage();
List<SysConfig> list = configService.selectConfigList(config); List<SysConfig> list = configService.selectConfigList(config);
return getDataTable(list); return getDataTable(list);
@ -50,8 +51,7 @@ public class SysConfigController extends BaseController
@Log(title = "参数管理", businessType = BusinessType.EXPORT) @Log(title = "参数管理", businessType = BusinessType.EXPORT)
@PreAuthorize("@ss.hasPermi('system:config:export')") @PreAuthorize("@ss.hasPermi('system:config:export')")
@GetMapping("/export") @GetMapping("/export")
public AjaxResult export(SysConfig config) public AjaxResult export(SysConfig config) {
{
List<SysConfig> list = configService.selectConfigList(config); List<SysConfig> list = configService.selectConfigList(config);
ExcelUtil<SysConfig> util = new ExcelUtil<SysConfig>(SysConfig.class); ExcelUtil<SysConfig> util = new ExcelUtil<SysConfig>(SysConfig.class);
return util.exportExcel(list, "参数数据"); return util.exportExcel(list, "参数数据");
@ -62,8 +62,7 @@ public class SysConfigController extends BaseController
*/ */
@PreAuthorize("@ss.hasPermi('system:config:query')") @PreAuthorize("@ss.hasPermi('system:config:query')")
@GetMapping(value = "/{configId}") @GetMapping(value = "/{configId}")
public AjaxResult getInfo(@PathVariable Long configId) public AjaxResult getInfo(@PathVariable Long configId) {
{
return AjaxResult.success(configService.selectConfigById(configId)); return AjaxResult.success(configService.selectConfigById(configId));
} }
@ -71,11 +70,12 @@ public class SysConfigController extends BaseController
* *
*/ */
@GetMapping(value = "/configKey/{configKey}") @GetMapping(value = "/configKey/{configKey}")
public AjaxResult getConfigKey(@PathVariable String configKey) public AjaxResult getConfigKey(@PathVariable String configKey) {
{
return AjaxResult.success(configService.selectConfigByKey(configKey)); return AjaxResult.success(configService.selectConfigByKey(configKey));
} }
/** /**
* *
*/ */
@ -83,10 +83,8 @@ public class SysConfigController extends BaseController
@Log(title = "参数管理", businessType = BusinessType.INSERT) @Log(title = "参数管理", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
@RepeatSubmit @RepeatSubmit
public AjaxResult add(@Validated @RequestBody SysConfig config) public AjaxResult add(@Validated @RequestBody SysConfig config) {
{ if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config))) {
if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config)))
{
return AjaxResult.error("新增参数'" + config.getConfigName() + "'失败,参数键名已存在"); return AjaxResult.error("新增参数'" + config.getConfigName() + "'失败,参数键名已存在");
} }
config.setCreateBy(getUserId()); config.setCreateBy(getUserId());
@ -99,24 +97,24 @@ public class SysConfigController extends BaseController
@PreAuthorize("@ss.hasPermi('system:config:edit')") @PreAuthorize("@ss.hasPermi('system:config:edit')")
@Log(title = "参数管理", businessType = BusinessType.UPDATE) @Log(title = "参数管理", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping
public AjaxResult edit(@Validated @RequestBody SysConfig config) public AjaxResult edit(@Validated @RequestBody SysConfig config) {
{ if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config))) {
if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config)))
{
return AjaxResult.error("修改参数'" + config.getConfigName() + "'失败,参数键名已存在"); return AjaxResult.error("修改参数'" + config.getConfigName() + "'失败,参数键名已存在");
} }
config.setUpdateBy(getUserId()); config.setUpdateBy(getUserId());
return toAjax(configService.updateConfig(config)); return toAjax(configService.updateConfig(config));
} }
/** /**
* *
*/ */
@PreAuthorize("@ss.hasPermi('system:config:remove')") @PreAuthorize("@ss.hasPermi('system:config:remove')")
@Log(title = "参数管理", businessType = BusinessType.DELETE) @Log(title = "参数管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{configIds}") @DeleteMapping("/{configIds}")
public AjaxResult remove(@PathVariable Long[] configIds) public AjaxResult remove(@PathVariable Long[] configIds) {
{
configService.deleteConfigByIds(configIds); configService.deleteConfigByIds(configIds);
return success(); return success();
} }
@ -127,8 +125,7 @@ public class SysConfigController extends BaseController
@PreAuthorize("@ss.hasPermi('system:config:remove')") @PreAuthorize("@ss.hasPermi('system:config:remove')")
@Log(title = "参数管理", businessType = BusinessType.CLEAN) @Log(title = "参数管理", businessType = BusinessType.CLEAN)
@DeleteMapping("/refreshCache") @DeleteMapping("/refreshCache")
public AjaxResult refreshCache() public AjaxResult refreshCache() {
{
configService.resetConfigCache(); configService.resetConfigCache();
return AjaxResult.success(); return AjaxResult.success();
} }

@ -12,6 +12,7 @@ import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.redis.RedisService; import com.ruoyi.common.core.redis.RedisService;
import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.OssUtils; import com.ruoyi.common.utils.OssUtils;
import com.ruoyi.system.service.ISysConfigService;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -24,7 +25,7 @@ import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@RestController @RestController
@RequestMapping("/h5") @RequestMapping
public class H5CommonController { public class H5CommonController {
@Autowired @Autowired
@ -35,16 +36,18 @@ public class H5CommonController {
private RedisService redisService; private RedisService redisService;
@Autowired @Autowired
private FeedbackService feedbackService; private FeedbackService feedbackService;
@Autowired
private ISysConfigService sysConfigService;
@ApiOperation("新增意见反馈") @ApiOperation("新增意见反馈")
@Log(title = "意见反馈", businessType = BusinessType.INSERT) @Log(title = "意见反馈", businessType = BusinessType.INSERT)
@PostMapping("/feedback/create") @PostMapping("/h5/feedback/create")
public ResponseEntity<Integer> add(@RequestBody Feedback feedback) { public ResponseEntity<Integer> add(@RequestBody Feedback feedback) {
return ResponseEntity.ok(feedbackService.insert(feedback)); return ResponseEntity.ok(feedbackService.insert(feedback));
} }
@GetMapping("/area") @GetMapping("/h5/area")
public AjaxResult getAddressList() { public AjaxResult getAddressList() {
String addresses = redisService.getAddressList(); String addresses = redisService.getAddressList();
if (StringUtils.isNotEmpty(addresses)) { if (StringUtils.isNotEmpty(addresses)) {
@ -90,10 +93,16 @@ public class H5CommonController {
return AjaxResult.success(result); return AjaxResult.success(result);
} }
@PostMapping("/file/upload") @PostMapping("/h5/file/upload")
public AjaxResult uploadFile(MultipartFile file) { public AjaxResult uploadFile(MultipartFile file) {
String url = ossUtils.uploadOneFile(file); String url = ossUtils.uploadOneFile(file);
return AjaxResult.successData(url); return AjaxResult.successData(url);
} }
@GetMapping("/no-auth/config/get")
public AjaxResult getSysConfig(String configKey) {
String s = sysConfigService.selectConfigByKey(configKey);
return AjaxResult.successData(s);
}
} }

@ -72,7 +72,6 @@ public class SysConfig extends BaseEntity
} }
@NotBlank(message = "参数键值不能为空") @NotBlank(message = "参数键值不能为空")
@Size(min = 0, max = 500, message = "参数键值长度不能超过500个字符")
public String getConfigValue() public String getConfigValue()
{ {
return configValue; return configValue;

@ -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;
}

@ -25,6 +25,7 @@ public interface ISysConfigService
* @return * @return
*/ */
public String selectConfigByKey(String configKey); public String selectConfigByKey(String configKey);
public SysConfig selectConfigByKey2(String configKey);
/** /**
* *

@ -13,6 +13,7 @@ import com.ruoyi.system.mapper.SysConfigMapper;
import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.ISysConfigService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
@ -23,8 +24,7 @@ import java.util.List;
* @author ruoyi * @author ruoyi
*/ */
@Service @Service
public class SysConfigServiceImpl implements ISysConfigService public class SysConfigServiceImpl implements ISysConfigService {
{
@Autowired @Autowired
private SysConfigMapper configMapper; private SysConfigMapper configMapper;
@ -35,8 +35,7 @@ public class SysConfigServiceImpl implements ISysConfigService
* *
*/ */
@PostConstruct @PostConstruct
public void init() public void init() {
{
loadingConfigCache(); loadingConfigCache();
} }
@ -48,8 +47,7 @@ public class SysConfigServiceImpl implements ISysConfigService
*/ */
@Override @Override
@DataSource(DataSourceType.MASTER) @DataSource(DataSourceType.MASTER)
public SysConfig selectConfigById(Long configId) public SysConfig selectConfigById(Long configId) {
{
SysConfig config = new SysConfig(); SysConfig config = new SysConfig();
config.setConfigId(configId); config.setConfigId(configId);
return configMapper.selectConfig(config); return configMapper.selectConfig(config);
@ -62,35 +60,46 @@ public class SysConfigServiceImpl implements ISysConfigService
* @return * @return
*/ */
@Override @Override
public String selectConfigByKey(String configKey) public String selectConfigByKey(String configKey) {
{
String configValue = Convert.toStr(redisCache.getCacheObject(getCacheKey(configKey))); String configValue = Convert.toStr(redisCache.getCacheObject(getCacheKey(configKey)));
if (StringUtils.isNotEmpty(configValue)) if (StringUtils.isNotEmpty(configValue)) {
{
return configValue; return configValue;
} }
SysConfig config = new SysConfig(); SysConfig config = new SysConfig();
config.setConfigKey(configKey); config.setConfigKey(configKey);
SysConfig retConfig = configMapper.selectConfig(config); SysConfig retConfig = configMapper.selectConfig(config);
if (StringUtils.isNotNull(retConfig)) if (StringUtils.isNotNull(retConfig)) {
{
redisCache.setCacheObject(getCacheKey(configKey), retConfig.getConfigValue()); redisCache.setCacheObject(getCacheKey(configKey), retConfig.getConfigValue());
return retConfig.getConfigValue(); return retConfig.getConfigValue();
} }
return StringUtils.EMPTY; 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 truefalse * @return truefalse
*/ */
@Override @Override
public boolean selectCaptchaOnOff() public boolean selectCaptchaOnOff() {
{
String captchaOnOff = selectConfigByKey("sys.account.captchaOnOff"); String captchaOnOff = selectConfigByKey("sys.account.captchaOnOff");
if (StringUtils.isEmpty(captchaOnOff)) if (StringUtils.isEmpty(captchaOnOff)) {
{
return true; return true;
} }
return Convert.toBool(captchaOnOff); return Convert.toBool(captchaOnOff);
@ -103,8 +112,7 @@ public class SysConfigServiceImpl implements ISysConfigService
* @return * @return
*/ */
@Override @Override
public List<SysConfig> selectConfigList(SysConfig config) public List<SysConfig> selectConfigList(SysConfig config) {
{
return configMapper.selectConfigList(config); return configMapper.selectConfigList(config);
} }
@ -115,13 +123,15 @@ public class SysConfigServiceImpl implements ISysConfigService
* @return * @return
*/ */
@Override @Override
public int insertConfig(SysConfig config) public int insertConfig(SysConfig config) {
{
int row = configMapper.insertConfig(config); int row = configMapper.insertConfig(config);
if (row > 0) if (row > 0) {
{ if ("N".equals(config.getConfigType())){
redisCache.setCacheObject(getCacheKey2(config.getConfigKey()), config);
} else {
redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue()); redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue());
} }
}
return row; return row;
} }
@ -132,13 +142,15 @@ public class SysConfigServiceImpl implements ISysConfigService
* @return * @return
*/ */
@Override @Override
public int updateConfig(SysConfig config) public int updateConfig(SysConfig config) {
{
int row = configMapper.updateConfig(config); int row = configMapper.updateConfig(config);
if (row > 0) if (row > 0) {
{ if ("N".equals(config.getConfigType())){
redisCache.setCacheObject(getCacheKey2(config.getConfigKey()), config);
} else {
redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue()); redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue());
} }
}
return row; return row;
} }
@ -149,13 +161,10 @@ public class SysConfigServiceImpl implements ISysConfigService
* @return * @return
*/ */
@Override @Override
public void deleteConfigByIds(Long[] configIds) public void deleteConfigByIds(Long[] configIds) {
{ for (Long configId : configIds) {
for (Long configId : configIds)
{
SysConfig config = selectConfigById(configId); 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())); throw new ServiceException(String.format("内置参数【%1$s】不能删除 ", config.getConfigKey()));
} }
configMapper.deleteConfigById(configId); configMapper.deleteConfigById(configId);
@ -167,11 +176,9 @@ public class SysConfigServiceImpl implements ISysConfigService
* *
*/ */
@Override @Override
public void loadingConfigCache() public void loadingConfigCache() {
{
List<SysConfig> configsList = configMapper.selectConfigList(new SysConfig()); List<SysConfig> configsList = configMapper.selectConfigList(new SysConfig());
for (SysConfig config : configsList) for (SysConfig config : configsList) {
{
redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue()); redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue());
} }
} }
@ -180,8 +187,7 @@ public class SysConfigServiceImpl implements ISysConfigService
* *
*/ */
@Override @Override
public void clearConfigCache() public void clearConfigCache() {
{
Collection<String> keys = redisCache.keys(Constants.SYS_CONFIG_KEY + "*"); Collection<String> keys = redisCache.keys(Constants.SYS_CONFIG_KEY + "*");
redisCache.deleteObject(keys); redisCache.deleteObject(keys);
} }
@ -190,8 +196,7 @@ public class SysConfigServiceImpl implements ISysConfigService
* *
*/ */
@Override @Override
public void resetConfigCache() public void resetConfigCache() {
{
clearConfigCache(); clearConfigCache();
loadingConfigCache(); loadingConfigCache();
} }
@ -203,12 +208,10 @@ public class SysConfigServiceImpl implements ISysConfigService
* @return * @return
*/ */
@Override @Override
public String checkConfigKeyUnique(SysConfig config) public String checkConfigKeyUnique(SysConfig config) {
{
Long configId = StringUtils.isNull(config.getConfigId()) ? -1L : config.getConfigId(); Long configId = StringUtils.isNull(config.getConfigId()) ? -1L : config.getConfigId();
SysConfig info = configMapper.checkConfigKeyUnique(config.getConfigKey()); 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.NOT_UNIQUE;
} }
return UserConstants.UNIQUE; return UserConstants.UNIQUE;
@ -220,8 +223,11 @@ public class SysConfigServiceImpl implements ISysConfigService
* @param configKey * @param configKey
* @return key * @return key
*/ */
private String getCacheKey(String configKey) private String getCacheKey(String configKey) {
{
return Constants.SYS_CONFIG_KEY + configKey; return Constants.SYS_CONFIG_KEY + configKey;
} }
private String getCacheKey2(String configKey) {
return Constants.SYS_CONFIG_KEY + configKey + "_all";
}
} }

Loading…
Cancel
Save