package com.dl.web.controller.system; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.hutool.core.util.ObjectUtil; import com.dl.common.annotation.Log; 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.domain.entity.SysDictData; import com.dl.common.core.page.TableDataInfo; import com.dl.common.enums.BusinessType; import com.dl.common.utils.poi.ExcelUtil; import com.dl.system.service.ISysDictDataService; import com.dl.system.service.ISysDictTypeService; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; /** * 数据字典信息 * * @author Lion Li */ @Validated @RequiredArgsConstructor @RestController @RequestMapping("/system/dict/data") public class SysDictDataController extends BaseController { private final ISysDictDataService dictDataService; private final ISysDictTypeService dictTypeService; /** * 查询字典数据列表 */ @SaCheckPermission("system:dict:list") @GetMapping("/list") public TableDataInfo list(SysDictData dictData, PageQuery pageQuery) { return dictDataService.selectPageDictDataList(dictData, pageQuery); } /** * 导出字典数据列表 */ @Log(title = "字典数据", businessType = BusinessType.EXPORT) @SaCheckPermission("system:dict:export") @PostMapping("/export") public void export(SysDictData dictData, HttpServletResponse response) { List list = dictDataService.selectDictDataList(dictData); ExcelUtil.exportExcel(list, "字典数据", SysDictData.class, response); } /** * 查询字典数据详细 * * @param dictCode 字典code */ @SaCheckPermission("system:dict:query") @GetMapping(value = "/{dictCode}") public R getInfo(@PathVariable String dictCode) { return R.ok(dictDataService.selectDictDataById(dictCode)); } /** * 根据字典类型查询字典数据信息 * * @param dictType 字典类型 */ @GetMapping(value = "/type/{dictType}") public R> dictType(@PathVariable String dictType) { List data = dictTypeService.selectDictDataByType(dictType); if (ObjectUtil.isNull(data)) { data = new ArrayList<>(); } return R.ok(data); } /** * 新增字典类型 */ @SaCheckPermission("system:dict:add") @Log(title = "字典数据", businessType = BusinessType.INSERT) @PostMapping public R add(@Validated @RequestBody SysDictData dict) { dictDataService.insertDictData(dict); return R.ok(); } /** * 修改保存字典类型 */ @SaCheckPermission("system:dict:edit") @Log(title = "字典数据", businessType = BusinessType.UPDATE) @PutMapping public R edit(@Validated @RequestBody SysDictData dict) { dictDataService.updateDictData(dict); return R.ok(); } /** * 删除字典类型 * * @param dictCodes 字典code串 */ @SaCheckPermission("system:dict:remove") @Log(title = "字典类型", businessType = BusinessType.DELETE) @DeleteMapping("/{dictCodes}") public R remove(@PathVariable String[] dictCodes) { dictDataService.deleteDictDataByIds(dictCodes); return R.ok(); } }