1 package com.supwisdom.institute.backend.base.domain.service;
3 import java.util.ArrayList;
4 import java.util.LinkedHashMap;
8 import lombok.extern.slf4j.Slf4j;
10 import org.springframework.beans.factory.annotation.Autowired;
11 import org.springframework.stereotype.Service;
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;
21 public class PermissionService extends ABaseService<Permission, PermissionRepository> {
24 public PermissionRepository getRepo() {
25 return permissionRepository;
29 private PermissionRepository permissionRepository;
32 public Permission insert(Permission entity) {
33 Permission parentPermission = permissionRepository.selectById(entity.getParentId());
34 if (parentPermission != null) {
35 entity.setApplicationId(parentPermission.getApplicationId());
38 return super.insert(entity);
41 public void deleteBatch(List<String> ids) {
43 ids.stream().forEach(id -> {
48 private Permission selectApplicationPermission() {
49 Permission permission = permissionRepository.selectById(Permission.APPLICATION_ID);
54 public PermissionTreeNode selectPermissionTree(Map<String, Object> mapBean) {
56 Permission applicationPermission = this.selectApplicationPermission();
58 Map<String, PermissionTreeNode> parentTreeNode = new LinkedHashMap<String, PermissionTreeNode>();
60 PermissionTreeNode rootTreeNode = EntityUtils.copy(applicationPermission, new PermissionTreeNode());
61 rootTreeNode.setChildren(new ArrayList<PermissionTreeNode>());
63 parentTreeNode.put(rootTreeNode.getId(), rootTreeNode);
65 List<Permission> permissions = permissionRepository.selectList(true, -1, -1, mapBean, null);
66 for (Permission permission : permissions) {
67 PermissionTreeNode treeNode = EntityUtils.copy(permission, new PermissionTreeNode());
68 treeNode.setChildren(new ArrayList<PermissionTreeNode>());
70 if (parentTreeNode.containsKey(treeNode.getId())) {
73 parentTreeNode.put(treeNode.getId(), treeNode);
76 for (PermissionTreeNode treeNode : parentTreeNode.values()) {
77 if (!parentTreeNode.containsKey(treeNode.getParentId())) {
81 parentTreeNode.get(treeNode.getParentId()).getChildren().add(treeNode);