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.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.domain.SysCompany; import com.ruoyi.system.service.ISysCompanyService; 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; /** * 组织管理 * * @author andy */ @Controller @RequestMapping("/system/company") public class SysCompanyController extends BaseController { private String prefix = "system/company"; @Autowired private ISysCompanyService companyService; @RequiresPermissions("system:company:view") @GetMapping() public String config() { return prefix + "/company"; } /** * 查询参数配置列表 */ @RequiresPermissions("system:company:list") @PostMapping("/list") @ResponseBody public TableDataInfo list(SysCompany company) { if (null == company.getCompanyId()) { company.setCompanyId(ShiroUtils.getLoginUserCompanyId()); } startPage(); List list = companyService.selectAll(); return getDataTable(list); } @Log(title = "参数管理", businessType = BusinessType.EXPORT) @RequiresPermissions("system:company:export") @PostMapping("/export") @ResponseBody public AjaxResult export(SysCompany config) { List list = companyService.selectAll(); ExcelUtil util = new ExcelUtil(SysCompany.class); return util.exportExcel(list, "参数数据"); } /** * 新增参数配置 */ @GetMapping("/add") public String add() { return prefix + "/add"; } /** * 新增保存参数配置 */ @RequiresPermissions("system:company:add") @Log(title = "参数管理", businessType = BusinessType.INSERT) @PostMapping("/add") @ResponseBody public AjaxResult addSave(@Validated SysCompany company) { if (!companyService.checkCompanyIdUnique(company)) { return error("新增参数'" + company.getName() + "'失败,参数键名已存在"); } company.setCreateBy(getLoginName()); return toAjax(companyService.insertCompany(company)); } /** * 修改参数配置 */ @RequiresPermissions("system:company:edit") @GetMapping("/edit/{companyId}") public String edit(@PathVariable("companyId") String companyId, ModelMap mmap) { mmap.put("company", companyService.selectCompanyById(companyId)); return prefix + "/edit"; } /** * 修改保存参数配置 */ @RequiresPermissions("system:company:edit") @Log(title = "参数管理", businessType = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody public AjaxResult editSave(@Validated SysCompany company) { if (!companyService.checkCompanyIdUnique(company)) { return error("修改参数'" + company.getName() + "'失败,参数键名已存在"); } company.setUpdateBy(getLoginName()); return toAjax(companyService.updateCompany(company)); } /** * 删除参数配置 */ @RequiresPermissions("system:company:remove") @Log(title = "参数管理", businessType = BusinessType.DELETE) @PostMapping("/remove") @ResponseBody public AjaxResult remove(String ids) { companyService.deleteCompanyByIds(ids); return success(); } /** * 刷新参数缓存 */ @RequiresPermissions("system:company:remove") @Log(title = "参数管理", businessType = BusinessType.CLEAN) @GetMapping("/refreshCache") @ResponseBody public AjaxResult refreshCache() { companyService.resetCompanyCache(); return success(); } /** * 校验参数键名 */ @PostMapping("/checkCompanyIdUnique") @ResponseBody public boolean checkCompanyIdUnique(SysCompany config) { return companyService.checkCompanyIdUnique(config); } }