package com.ruoyi.project.system.dict.controller; import java.util.List; 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.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.framework.aspectj.lang.annotation.Log; import com.ruoyi.framework.aspectj.lang.enums.BusinessType; import com.ruoyi.framework.web.controller.BaseController; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.framework.web.domain.Ztree; import com.ruoyi.framework.web.page.TableDataInfo; import com.ruoyi.project.system.dict.domain.DictType; import com.ruoyi.project.system.dict.service.IDictTypeService; /** * 数据字典信息 * * @author ruoyi */ @Controller @RequestMapping("/system/dict") public class DictTypeController extends BaseController { private String prefix = "system/dict/type"; @Autowired private IDictTypeService dictTypeService; @RequiresPermissions("system:dict:view") @GetMapping() public String dictType() { return prefix + "/type"; } @PostMapping("/list") @RequiresPermissions("system:dict:list") @ResponseBody public TableDataInfo list(DictType dictType) { startPage(); List list = dictTypeService.selectDictTypeList(dictType); return getDataTable(list); } @Log(title = "字典类型", businessType = BusinessType.EXPORT) @RequiresPermissions("system:dict:export") @PostMapping("/export") @ResponseBody public AjaxResult export(DictType dictType) { List list = dictTypeService.selectDictTypeList(dictType); ExcelUtil util = new ExcelUtil(DictType.class); return util.exportExcel(list, "字典类型"); } /** * 新增字典类型 */ @GetMapping("/add") public String add() { return prefix + "/add"; } /** * 新增保存字典类型 */ @Log(title = "字典类型", businessType = BusinessType.INSERT) @RequiresPermissions("system:dict:add") @PostMapping("/add") @ResponseBody public AjaxResult addSave(@Validated DictType dict) { if (UserConstants.DICT_TYPE_NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict))) { return error("新增字典'" + dict.getDictName() + "'失败,字典类型已存在"); } return toAjax(dictTypeService.insertDictType(dict)); } /** * 修改字典类型 */ @GetMapping("/edit/{dictId}") public String edit(@PathVariable("dictId") Long dictId, ModelMap mmap) { mmap.put("dict", dictTypeService.selectDictTypeById(dictId)); return prefix + "/edit"; } /** * 修改保存字典类型 */ @Log(title = "字典类型", businessType = BusinessType.UPDATE) @RequiresPermissions("system:dict:edit") @PostMapping("/edit") @ResponseBody public AjaxResult editSave(@Validated DictType dict) { if (UserConstants.DICT_TYPE_NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict))) { return error("修改字典'" + dict.getDictName() + "'失败,字典类型已存在"); } return toAjax(dictTypeService.updateDictType(dict)); } @Log(title = "字典类型", businessType = BusinessType.DELETE) @RequiresPermissions("system:dict:remove") @PostMapping("/remove") @ResponseBody public AjaxResult remove(String ids) { return toAjax(dictTypeService.deleteDictTypeByIds(ids)); } /** * 清空缓存 */ @RequiresPermissions("system:dict:remove") @Log(title = "字典类型", businessType = BusinessType.CLEAN) @GetMapping("/clearCache") @ResponseBody public AjaxResult clearCache() { dictTypeService.clearCache(); return success(); } /** * 查询字典详细 */ @RequiresPermissions("system:dict:list") @GetMapping("/detail/{dictId}") public String detail(@PathVariable("dictId") Long dictId, ModelMap mmap) { mmap.put("dict", dictTypeService.selectDictTypeById(dictId)); mmap.put("dictList", dictTypeService.selectDictTypeAll()); return "system/dict/data/data"; } /** * 校验字典类型 */ @PostMapping("/checkDictTypeUnique") @ResponseBody public String checkDictTypeUnique(DictType dictType) { return dictTypeService.checkDictTypeUnique(dictType); } /** * 选择字典树 */ @GetMapping("/selectDictTree/{columnId}/{dictType}") public String selectDeptTree(@PathVariable("columnId") Long columnId, @PathVariable("dictType") String dictType, ModelMap mmap) { mmap.put("columnId", columnId); mmap.put("dict", dictTypeService.selectDictTypeByType(dictType)); return prefix + "/tree"; } /** * 加载字典列表树 */ @GetMapping("/treeData") @ResponseBody public List treeData() { List ztrees = dictTypeService.selectDictTree(new DictType()); return ztrees; } }