liujie
2023-08-31 8d7dbd6d2c0775d45043474c1525ad827b4cd3bd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
package com.stylefeng.guns.modular.system.service.impl;
 
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.stylefeng.guns.core.node.ZTreeNode;
import com.stylefeng.guns.core.util.Convert;
import com.stylefeng.guns.modular.system.dao.MenuMapper;
import com.stylefeng.guns.modular.system.dao.RelationMapper;
import com.stylefeng.guns.modular.system.dao.RoleMapper;
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.service.IRoleService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
 
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
 
@Service
public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements IRoleService {
 
    @Resource
    private RoleMapper roleMapper;
 
    @Resource
    private RelationMapper relationMapper;
 
    @Resource
    private MenuMapper menuMapper;
 
    @Override
    @Transactional(readOnly = false)
    public void setAuthority(Integer roleId, String ids) {
 
        // 删除该角色所有的权限
        this.roleMapper.deleteRolesById(roleId);
 
        // 添加新的权限
        for (Long id : Convert.toLongArray(true, Convert.toStrArray(",", ids))) {
            Relation relation = new Relation();
            relation.setRoleid(roleId);
            relation.setMenuid(id);
            this.relationMapper.insert(relation);
        }
    }
 
    @Override
    @Transactional(readOnly = false)
    public void delRoleById(Integer roleId) {
        //删除角色
        this.roleMapper.deleteById(roleId);
 
        // 删除该角色所有的权限
        this.roleMapper.deleteRolesById(roleId);
    }
 
    @Override
    public List<Map<String, Object>> selectRoles(String condition) {
        return this.baseMapper.selectRoles(condition);
    }
 
    @Override
    public int deleteRolesById(Integer roleId) {
        return this.baseMapper.deleteRolesById(roleId);
    }
 
    @Override
    public List<ZTreeNode> roleTreeList() {
        return this.baseMapper.roleTreeList();
    }
 
    @Override
    public List<ZTreeNode> roleTreeListByRoleId(String[] roleId) {
        return this.baseMapper.roleTreeListByRoleId(roleId);
    }
 
    @Override
    public List<Relation> selectAuthority(String roleid) {
        return relationMapper.selectList(new EntityWrapper<Relation>().eq("roleid",roleid));
    }
 
    @Override
    public List<Menu> getRelation() {
        List<Menu> pcode = menuMapper.selectList(new EntityWrapper<Menu>().eq("pcode", 0));
 
        for (Menu menu : pcode) {
            ArrayList<MenuOne> menuOnes = new ArrayList<>();
            List<Menu> pcode1 = menuMapper.selectList(new EntityWrapper<Menu>().eq("pcode", menu.getId()).eq("levels",2));
            /*for (Menu menu1 : pcode1) {
                MenuOne menuOne = new MenuOne();
                BeanUtil.copyProperties(menu1,menuOne);
                menuOne.setChildren(null);
                menuOnes.add(menuOne);
            }*/
            if(pcode1.size()==0){
                List<Menu> pcode2 = menuMapper.selectList(new EntityWrapper<Menu>().eq("pcode", menu.getId()).eq("levels",3));
                menu.setChildren(pcode2);
            }
            menu.setList(pcode1);
        }
        for (Menu menu : pcode) {
            List<Menu> list = menu.getList();
            for (Menu menu1 : list) {
                    menu1.setChildren(menuMapper.selectList(new EntityWrapper<Menu>().eq("pcode",menu1.getId())));
            }
 
        }
        return pcode;
    }
 
    @Override
    public List<RoleVo> getDept(Integer deptid) {
        return roleMapper.getDept(deptid);
    }
 
    @Override
    public void setAuthorityOne(List<Relation> relations) {
        Integer roleid = relations.get(0).getRoleid();
 
        // 删除该角色所有的权限
        this.roleMapper.deleteRolesById(roleid);
        for (Relation relation : relations) {
            this.relationMapper.insert(relation);
        }
    }
 
    @Override
    public List<Menu> getRelation1(List<Long> collect) {
        return menuMapper.selectList(new EntityWrapper<Menu>().in("id",collect).orderBy("num",true));
    }
 
}