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