whyczh
2021-05-11 be95b8c4694e788eb646203c7c74b72098bb8d6b
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
package com.whyc.service;
 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.whyc.dto.Response;
import com.whyc.mapper.MenuMapper;
import com.whyc.mapper.RoleMenuMapper;
import com.whyc.pojo.Menu;
import com.whyc.pojo.RoleMenu;
import org.springframework.stereotype.Service;
 
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
 
/**
 * 角色-菜单
 */
@Service
public class RoleMenuService {
 
    @Resource
    private RoleMenuMapper mapper;
 
    @Resource
    private MenuMapper menuMapper;
 
    public List<Menu> getUserMenu(Integer id) {
        return mapper.getUserMenu(id);
    }
 
    public List<Menu> getAllMenus(){
        List<Menu> menus = menuMapper.selectList(null);
        return menus;
    }
 
    public List<Menu> getRoleMenu(Integer roleId){
        List<Menu> menus = menuMapper.selectList(null);
        QueryWrapper<RoleMenu> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("role_id",roleId);
        List<RoleMenu> roleMenus = mapper.selectList(queryWrapper);
        for (RoleMenu roleMenu:roleMenus) {
            for (Menu menu:menus) {
                if (roleMenu.getMenuId().equals(menu.getId())){
                    menu.setSelected(true);
                    break;
                }
            }
        }
        return menus;
    }
 
    public void updateRoleMenu(int roleId,List<Menu> menus){
        QueryWrapper<RoleMenu> queryWrapper = new QueryWrapper<RoleMenu>().eq("role_id",roleId);
        mapper.delete(queryWrapper);
        for (Menu menu:menus) {
            if(menu.isSelected()){
                RoleMenu roleMenu = new RoleMenu();
                roleMenu.setMenuId(menu.getId());
                roleMenu.setRoleId(roleId);
                mapper.insert(roleMenu);
            }
        }
    }
 
 
 
}