luodangjia
2024-11-28 06f455915bb9d11caa8829942f9007809ee9ae3d
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysConfigController.java
@@ -1,20 +1,109 @@
package com.ruoyi.system.controller;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.TableDataInfo;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.domain.SysConfig;
import com.ruoyi.system.service.ISysConfigService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
 * <p>
 *  前端控制器
 * </p>
 * 参数配置 信息操作处理
 *
 * @author luodangjia
 * @since 2024-11-21
 * @author ruoyi
 */
@RestController
@RequestMapping("/sys-config")
public class SysConfigController {
@RequestMapping("/config")
public class SysConfigController extends BaseController {
   @Resource
   private ISysConfigService configService;
   /**
    * 获取参数配置列表
    */
   @GetMapping("/list")
   public TableDataInfo list(SysConfig config) {
      startPage();
      List<SysConfig> list = configService.selectConfigList(config);
      return getDataTable(list);
}
   @Log(title = "参数管理", businessType = BusinessType.EXPORT)
   @PostMapping("/export")
   public void export(HttpServletResponse response, SysConfig config) {
      List<SysConfig> list = configService.selectConfigList(config);
      ExcelUtil<SysConfig> util = new ExcelUtil<SysConfig>(SysConfig.class);
      util.exportExcel(response, list, "参数数据");
   }
   /**
    * 根据参数编号获取详细信息
    */
   @GetMapping(value = "/{configId}")
   public AjaxResult getInfo(@PathVariable Long configId) {
      return success(configService.selectConfigById(configId));
   }
   /**
    * 根据参数键名查询参数值
    */
   @GetMapping(value = "/configKey/{configKey}")
   public AjaxResult getConfigKey(@PathVariable String configKey) {
      return success(configService.selectConfigByKey(configKey));
   }
   /**
    * 新增参数配置
    */
   @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));
   }
   /**
    * 修改参数配置
    */
   @Log(title = "参数管理", businessType = BusinessType.UPDATE)
   @PutMapping
   public AjaxResult edit(@Validated @RequestBody SysConfig config) {
      if (!configService.checkConfigKeyUnique(config)) {
         return error("修改参数'" + config.getConfigName() + "'失败,参数键名已存在");
      }
      config.setUpdateBy(SecurityUtils.getUsername());
      return toAjax(configService.updateConfig(config));
   }
   /**
    * 删除参数配置
    */
   @Log(title = "参数管理", businessType = BusinessType.DELETE)
   @DeleteMapping("/{configIds}")
   public AjaxResult remove(@PathVariable Long[] configIds) {
      configService.deleteConfigByIds(configIds);
      return success();
   }
   /**
    * 刷新参数缓存
    */
   @Log(title = "参数管理", businessType = BusinessType.CLEAN)
   @DeleteMapping("/refreshCache")
   public AjaxResult refreshCache() {
      configService.resetConfigCache();
      return success();
   }
}