package com.se.system.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; import com.se.system.domain.SysConfig; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.se.common.core.utils.poi.ExcelUtil; import com.se.common.core.web.controller.BaseController; import com.se.common.core.web.domain.AjaxResult; import com.se.common.core.web.page.TableDataInfo; import com.se.common.log.annotation.Log; import com.se.common.log.enums.BusinessType; import com.se.common.security.annotation.RequiresPermissions; import com.se.common.security.utils.SecurityUtils; import com.se.system.service.inte.ISysConfigService; /** * 参数配置 信息操作处理 * * @author admin */ @RestController @RequestMapping("/config") @SuppressWarnings("ALL") public class SysConfigController extends BaseController { @Value("${enableEncrypt}") boolean enableEncrypt; private final static String PWD_KEY = "sys.user.initPassword"; @Autowired private ISysConfigService configService; /** * 获取参数配置列表 */ @RequiresPermissions("system:config:list") @GetMapping("/list") public TableDataInfo list(SysConfig config) throws Exception { startPage(); List list = configService.selectConfigList(config); /*if (enableEncrypt && null != list) { for (SysConfig cfg : list) { if (null != cfg && PWD_KEY.equals(cfg.getConfigKey()) && !StringUtils.isEmpty(cfg.getConfigValue())) { cfg.setConfigValue(AesUtils.encrypt(cfg.getConfigValue())); } } }*/ return getDataTable(list); } @Log(title = "参数管理", businessType = BusinessType.EXPORT) @RequiresPermissions("system:config:export") @PostMapping("/export") public void export(HttpServletResponse response, SysConfig config) { List list = configService.selectConfigList(config); /*if (enableEncrypt && null != list) { for (SysConfig cfg : list) { if (null != cfg && PWD_KEY.equals(cfg.getConfigKey()) && !StringUtils.isEmpty(cfg.getConfigValue())) { cfg.setConfigValue(AesUtils.encrypt(cfg.getConfigValue())); } } }*/ ExcelUtil util = new ExcelUtil(SysConfig.class); util.exportExcel(response, list, "参数数据"); } /** * 根据参数编号获取详细信息 */ @GetMapping(value = "/{configId}") public AjaxResult getInfo(@PathVariable Long configId) throws Exception { SysConfig config = configService.selectConfigById(configId); /*if ((enableEncrypt && null != config && PWD_KEY.equals(config.getConfigKey()) && !StringUtils.isEmpty(config.getConfigValue())) { config.setConfigValue(AesUtils.encrypt(config.getConfigValue())); }*/ return success(config); } /** * 根据参数键名查询参数值 */ @GetMapping(value = "/configKey/{configKey}") public AjaxResult getConfigKey(@PathVariable String configKey) throws Exception { String val = configService.selectConfigByKey(configKey); /*if (enableEncrypt && PWD_KEY.equals(configKey) && !StringUtils.isEmpty(val)) { val = AesUtils.encrypt(val); }*/ return success(val); } /** * 新增参数配置 */ @RequiresPermissions("system:config:add") @Log(title = "参数管理", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@Validated @RequestBody SysConfig config) { if (!configService.checkConfigKeyUnique(config)) { return error("新增参数'" + config.getConfigName() + "'失败,参数键名已存在"); } config.setCreateBy(SecurityUtils.getUsername()); return toAjax(configService.insertConfig(config)); } /** * 修改参数配置 */ @RequiresPermissions("system:config:edit") @Log(title = "参数管理", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@Validated @RequestBody SysConfig config) throws Exception { if (!configService.checkConfigKeyUnique(config)) { return error("修改参数'" + config.getConfigName() + "'失败,参数键名已存在"); } config.setUpdateBy(SecurityUtils.getUsername()); /*if ((enableEncrypt && PWD_KEY.equals(config.getConfigKey()) && !StringUtils.isEmpty(config.getConfigValue())){ config.setConfigValue(AesUtils.decrypt(config.getConfigValue())); }*/ return toAjax(configService.updateConfig(config)); } /** * 删除参数配置 */ @RequiresPermissions("system:config:remove") @Log(title = "参数管理", businessType = BusinessType.DELETE) @DeleteMapping("/{configIds}") public AjaxResult remove(@PathVariable Long[] configIds) { configService.deleteConfigByIds(configIds); return success(); } /** * 刷新参数缓存 */ @RequiresPermissions("system:config:remove") @Log(title = "参数管理", businessType = BusinessType.CLEAN) @DeleteMapping("/refreshCache") public AjaxResult refreshCache() { configService.resetConfigCache(); return success(); } }