SysDictController.java 2.78 KB
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("获取字典表父级集合")
    @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");
        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);
    }
}