package com.dl.web.controller.system; import cn.dev33.satoken.annotation.SaCheckPermission; import com.dl.common.annotation.Log; import com.dl.common.constant.UserConstants; import com.dl.common.core.controller.BaseController; import com.dl.common.core.domain.PageQuery; import com.dl.common.core.domain.R; import com.dl.common.core.page.TableDataInfo; import com.dl.common.enums.BusinessType; import com.dl.common.utils.poi.ExcelUtil; import com.dl.system.domain.SysConfig; import com.dl.system.service.ISysConfigService; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.List; /** * 参数配置 信息操作处理 * * @author Lion Li */ @Validated @RequiredArgsConstructor @RestController @RequestMapping("/system/config") public class SysConfigController extends BaseController { private final ISysConfigService configService; /** * 获取参数配置列表 */ @SaCheckPermission("system:config:list") @GetMapping("/list") public TableDataInfo list(SysConfig config, PageQuery pageQuery) { return configService.selectPageConfigList(config, pageQuery); } /** * 导出参数配置列表 */ @Log(title = "参数管理", businessType = BusinessType.EXPORT) @SaCheckPermission("system:config:export") @PostMapping("/export") public void export(SysConfig config, HttpServletResponse response) { List list = configService.selectConfigList(config); ExcelUtil.exportExcel(list, "参数数据", SysConfig.class, response); } /** * 根据参数编号获取详细信息 * * @param configId 参数ID */ @SaCheckPermission("system:config:query") @GetMapping(value = "/{configId}") public R getInfo(@PathVariable Long configId) { return R.ok(configService.selectConfigById(configId)); } /** * 根据参数键名查询参数值 * * @param configKey 参数Key */ @GetMapping(value = "/configKey/{configKey}") public R getConfigKey(@PathVariable String configKey) { return R.ok(configService.selectConfigByKey(configKey)); } /** * 新增参数配置 */ @SaCheckPermission("system:config:add") @Log(title = "参数管理", businessType = BusinessType.INSERT) @PostMapping public R add(@Validated @RequestBody SysConfig config) { if (!configService.checkConfigKeyUnique(config)) { return R.fail("新增参数'" + config.getConfigName() + "'失败,参数键名已存在"); } configService.insertConfig(config); return R.ok(); } /** * 修改参数配置 */ @SaCheckPermission("system:config:edit") @Log(title = "参数管理", businessType = BusinessType.UPDATE) @PutMapping public R edit(@Validated @RequestBody SysConfig config) { if (!configService.checkConfigKeyUnique(config)) { return R.fail("修改参数'" + config.getConfigName() + "'失败,参数键名已存在"); } configService.updateConfig(config); return R.ok(); } /** * 根据参数键名修改参数配置 */ @SaCheckPermission("system:config:edit") @Log(title = "参数管理", businessType = BusinessType.UPDATE) @PutMapping("/updateByKey") public R updateByKey(@RequestBody SysConfig config) { configService.updateConfig(config); return R.ok(); } /** * 删除参数配置 * * @param configIds 参数ID串 */ @SaCheckPermission("system:config:remove") @Log(title = "参数管理", businessType = BusinessType.DELETE) @DeleteMapping("/{configIds}") public R remove(@PathVariable Long[] configIds) { configService.deleteConfigByIds(configIds); return R.ok(); } /** * 刷新参数缓存 */ @SaCheckPermission("system:config:remove") @Log(title = "参数管理", businessType = BusinessType.CLEAN) @DeleteMapping("/refreshCache") public R refreshCache() { configService.resetConfigCache(); return R.ok(); } }