package com.ots.project.system.dict.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.domain.Ztree; import com.ots.framework.web.page.TableDataInfo; import com.ots.project.system.dict.domain.DictType; import com.ots.project.system.dict.service.IDictTypeService; 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/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) { dictType.setOtherType("demography"); 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) { try { return toAjax(dictTypeService.deleteDictTypeByIds(ids)); } catch (Exception e) { return error(e.getMessage()); } } @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; } @GetMapping("/selectDictTree/{columnId}/{dictType}/{otherType}") public String selectDeptTree(@PathVariable("columnId") Long columnId, @PathVariable("dictType") String dictType, @PathVariable("otherType") String otherType, ModelMap mmap) { mmap.put("columnId", columnId); mmap.put("dict", dictTypeService.selectDictTypeByType(dictType)); return prefix + "/otherTypeTree"; } @GetMapping("/treeDataOtherType/{otherType}") @ResponseBody public List treeDataOtherType(@PathVariable("otherType") String otherType) { DictType dictType = new DictType(); dictType.setOtherType(otherType); List ztrees = dictTypeService.selectDictTree(dictType); return ztrees; } }