ff2f7f226c4473061e9a96041b7461875dfbd7ed
[institute/sw-backend.git] /
1 package com.supwisdom.institute.backend.system.domain.service;
2
3 import java.util.ArrayList;
4 import java.util.HashMap;
5 import java.util.LinkedHashMap;
6 import java.util.List;
7 import java.util.Map;
8
9 import lombok.extern.slf4j.Slf4j;
10
11 import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.stereotype.Service;
13
14 import com.supwisdom.institute.backend.common.framework.entity.EntityUtils;
15 import com.supwisdom.institute.backend.common.framework.service.ABaseService;
16 import com.supwisdom.institute.backend.system.domain.entity.Permission;
17 import com.supwisdom.institute.backend.system.domain.model.PermissionTreeNode;
18 import com.supwisdom.institute.backend.system.domain.repo.PermissionRepository;
19
20 @Slf4j
21 @Service
22 public class PermissionService extends ABaseService<Permission, PermissionRepository> {
23   
24   @Override
25   public PermissionRepository getRepo() {
26     return permissionRepository;
27   }
28
29   @Autowired
30   private PermissionRepository permissionRepository;
31
32   public void deleteBatch(List<String> ids) {
33     
34     ids.stream().forEach(id -> {
35       this.deleteById(id);
36     });
37   }
38
39   public PermissionTreeNode selectPermissionTree(Map<String, Object> mapBean) {
40     
41     List<Permission> permissions = permissionRepository.selectList(true, -1, -1, mapBean, null);
42     
43     Map<String, PermissionTreeNode> parentTreeNode = new LinkedHashMap<String, PermissionTreeNode>();
44     
45     PermissionTreeNode rootTreeNode = new PermissionTreeNode();
46     rootTreeNode.setId(Permission.ROOT_PARENT_ID);
47     rootTreeNode.setCode("ROOT");
48     rootTreeNode.setName("顶级菜单");
49     rootTreeNode.setChildren(new ArrayList<PermissionTreeNode>());
50     
51     parentTreeNode.put(rootTreeNode.getId(), rootTreeNode);
52     
53     for (Permission permission : permissions) {
54       PermissionTreeNode treeNode = EntityUtils.copy(permission, new PermissionTreeNode());
55       treeNode.setChildren(new ArrayList<PermissionTreeNode>());
56       
57       parentTreeNode.put(treeNode.getId(), treeNode);
58     }
59     
60     for (PermissionTreeNode treeNode : parentTreeNode.values()) {
61       if (!parentTreeNode.containsKey(treeNode.getParentId())) {
62         continue;
63       }
64       
65       parentTreeNode.get(treeNode.getParentId()).getChildren().add(treeNode);
66     }
67     
68     return rootTreeNode;
69   }
70
71 }