package com.pashanhoo.dictionary.controller; import com.github.pagehelper.PageInfo; import com.pashanhoo.common.Result; import com.pashanhoo.common.util.TreeUtil; import com.pashanhoo.dictionary.model.dto.SysDict; import com.pashanhoo.dictionary.model.vo.EditDictVo; import com.pashanhoo.dictionary.model.vo.GetSysDictParentVo; import com.pashanhoo.dictionary.model.vo.SysDictVo; import com.pashanhoo.dictionary.service.SysDictService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; @Api(tags = "字典表") @RestController @RequestMapping("/SysDict") public class SysDictController { @Autowired SysDictService sysDictService; @ApiOperation("根据父级编码查询子集编码和名称") @GetMapping ("getSysDictChildByParentCode") public Result getSysDictChildByParentCode(@ApiParam("父级编码") @RequestParam String dcode) { return sysDictService.getSysDictChildByParentCode(dcode); } @ApiOperation("获取字典表父级集合") @PostMapping("getSysDictParent") public Result<PageInfo<GetSysDictParentVo>> getSysDictParent(@RequestBody SysDictVo request) { return Result.ok(sysDictService.getSysDictParent(request)); } @ApiOperation("编辑界面获取指定字典编码子集") @GetMapping("getSysDictByTypeId") public Result<List<SysDict>> getSysDictByTypeId(@ApiParam("类型ID") @RequestParam String typeId) { List<SysDict> dicts = sysDictService.getSysDictByTypeId(typeId); // TreeUtil.setRule((o1, o2) -> 0, SysDict.class,"DictId"); TreeUtil.setRule(new Comparator<SysDict>() { @Override public int compare(SysDict o1, SysDict o2) { if (o1.getSort() == null) { o1.setSort((short) 0); } if (o2.getSort() == null) { o2.setSort((short) 0); } return o1.getSort() - o2.getSort(); } },SysDict.class,"DictId"); List<SysDict> tree = TreeUtil.listToTree(dicts, typeId); return Result.ok(tree); } @ApiOperation("编辑") @PostMapping("editSysDictByTypeId") public Result editSysDictByTypeId(@RequestBody EditDictVo request) { int row = sysDictService.editSysDict(request); if (row != 0) { return Result.ok("修改成功"); } else { return Result.ok("修改失败"); } } @ApiOperation("返回json") @GetMapping("getJson") public Result getJson() { List<SysDict> dicts = sysDictService.selectAll(); TreeUtil.setRule(new Comparator<SysDict>() { @Override public int compare(SysDict o1, SysDict o2) { if (o1.getSort() == null) { o1.setSort((short) 0); } if (o2.getSort() == null) { o2.setSort((short) 0); } return o1.getSort() - o2.getSort(); } }, SysDict.class, "DictId"); List<SysDict> tree = TreeUtil.listToTree(dicts, null); Map<String, List<SysDict>> map = new HashMap<>(); for (SysDict SYSDICT : tree) { map.put(SYSDICT.getDcode(), SYSDICT.getChildren()); } return Result.ok(map); } }