PowerController.java 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package com.api.base.controll;
  2. import com.api.base.dto.ElTree;
  3. import com.api.base.model.Power;
  4. import com.api.base.service.PowerService;
  5. import com.api.core.controller.Ctrl;
  6. import com.api.core.annotation.PowerEnable;
  7. import com.api.core.response.Result;
  8. import com.api.core.response.ResultGenerator;
  9. import io.swagger.annotations.Api;
  10. import io.swagger.annotations.ApiOperation;
  11. import org.springframework.web.bind.annotation.PostMapping;
  12. import org.springframework.web.bind.annotation.RequestMapping;
  13. import org.springframework.web.bind.annotation.RestController;
  14. import javax.annotation.Resource;
  15. import java.util.ArrayList;
  16. import java.util.List;
  17. import java.util.Map;
  18. import java.util.stream.Collectors;
  19. /**
  20. * Created by CodeGenerator on 2019/03/25.
  21. */
  22. @PowerEnable(name = "权限管理",url = "/power")
  23. @Api(value = "权限管理", tags = {"权限管理"})
  24. @RestController
  25. @RequestMapping("/power")
  26. public class PowerController extends Ctrl {
  27. @Resource
  28. private PowerService powerService;
  29. @ApiOperation(value = "权限树列表", tags = {"权限管理"}, notes = "权限树列表")
  30. @PostMapping(value = "/list", name = "权限树列表")
  31. public Result list() {
  32. List<Power> powers = powerService.findAll();
  33. Map<Integer, List<Power>> res = powers.stream().collect(Collectors.groupingBy(Power::getPid));
  34. List<Power> parent = res.get(0);
  35. List<ElTree<Power>> elTrees = new ArrayList<>();
  36. for (Power p: parent) {
  37. ElTree<Power> elTree = new ElTree<>();
  38. elTree.setId(p.getId());
  39. elTree.setName(p.getName());
  40. elTree.setChildren(new ArrayList<>());
  41. elTrees.add(elTree);
  42. }
  43. for (Integer key:res.keySet()) {
  44. if(key!=0){
  45. for (ElTree<Power> e:elTrees) {
  46. if(e.getId().equals(key)){
  47. e.getChildren().addAll(res.get(key));
  48. }
  49. }
  50. }
  51. }
  52. return ResultGenerator.genSuccessResult(elTrees);
  53. }
  54. }