package com.ots.project.system.config.controller; import com.ots.common.constant.UserConstants; import com.ots.common.utils.poi.ExcelUtil; import com.ots.framework.aspectj.lang.annotation.Log; import com.ots.framework.aspectj.lang.enums.BusinessType; import com.ots.framework.web.controller.BaseController; import com.ots.framework.web.domain.AjaxResult; import com.ots.framework.web.page.TableDataInfo; import com.ots.project.system.config.domain.Config; import com.ots.project.system.config.service.IConfigService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; @Controller @RequestMapping("/system/config") public class ConfigController extends BaseController { private String prefix = "system/config"; @Autowired private IConfigService configService; @RequiresPermissions("system:config:view") @GetMapping() public String config() { return prefix + "/config"; } @RequiresPermissions("system:config:list") @PostMapping("/list") @ResponseBody public TableDataInfo list(Config config) { startPage(); List list = configService.selectConfigList(config); return getDataTable(list); } @Log(title = "参数管理", businessType = BusinessType.EXPORT) @RequiresPermissions("system:config:export") @PostMapping("/export") @ResponseBody public AjaxResult export(Config config) { List list = configService.selectConfigList(config); ExcelUtil util = new ExcelUtil(Config.class); return util.exportExcel(list, "参数数据"); } @GetMapping("/add") public String add() { return prefix + "/add"; } @RequiresPermissions("system:config:add") @Log(title = "参数管理", businessType = BusinessType.INSERT) @PostMapping("/add") @ResponseBody public AjaxResult addSave(@Validated Config config) { if (UserConstants.CONFIG_KEY_NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config))) { return error("新增参数'" + config.getConfigName() + "'失败,参数键名已存在"); } return toAjax(configService.insertConfig(config)); } @GetMapping("/edit/{configId}") public String edit(@PathVariable("configId") Long configId, ModelMap mmap) { mmap.put("config", configService.selectConfigById(configId)); return prefix + "/edit"; } @RequiresPermissions("system:config:edit") @Log(title = "参数管理", businessType = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody public AjaxResult editSave(@Validated Config config) { if (UserConstants.CONFIG_KEY_NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config))) { return error("修改参数'" + config.getConfigName() + "'失败,参数键名已存在"); } return toAjax(configService.updateConfig(config)); } @RequiresPermissions("system:config:remove") @Log(title = "参数管理", businessType = BusinessType.DELETE) @PostMapping("/remove") @ResponseBody public AjaxResult remove(String ids) { return toAjax(configService.deleteConfigByIds(ids)); } @PostMapping("/checkConfigKeyUnique") @ResponseBody public String checkConfigKeyUnique(Config config) { return configService.checkConfigKeyUnique(config); } }