RoleServiceImpl.java
3.44 KB
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
package com.bootdo.system.service.impl;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.bootdo.system.dao.RoleDao;
import com.bootdo.system.dao.RoleMenuDao;
import com.bootdo.system.dao.UserDao;
import com.bootdo.system.dao.UserRoleDao;
import com.bootdo.system.domain.RoleDO;
import com.bootdo.system.domain.RoleMenuDO;
import com.bootdo.system.service.RoleService;
@Service
public class RoleServiceImpl implements RoleService {
public static final String ROLE_ALL_KEY = "\"role_all\"";
public static final String DEMO_CACHE_NAME = "role";
@Autowired
RoleDao roleMapper;
@Autowired
RoleMenuDao roleMenuMapper;
@Autowired
UserDao userMapper;
@Autowired
UserRoleDao userRoleMapper;
@Override
public List<RoleDO> list() {
List<RoleDO> roles = roleMapper.list(new HashMap<>(16));
return roles;
}
@Override
public List<RoleDO> list(Long userId) {
List<Long> rolesIds = userRoleMapper.listRoleId(userId);
List<RoleDO> roles = roleMapper.list(new HashMap<>(16));
for (RoleDO roleDO : roles) {
roleDO.setRoleSign("false");
for (Long roleId : rolesIds) {
if (Objects.equals(roleDO.getRoleId(), roleId)) {
roleDO.setRoleSign("true");
break;
}
}
}
return roles;
}
@Transactional
@Override
public int save(RoleDO role) {
int count = roleMapper.save(role);
List<Long> menuIds = role.getMenuIds();
Long roleId = role.getRoleId();
List<RoleMenuDO> rms = new ArrayList<>();
for (Long menuId : menuIds) {
RoleMenuDO rmDo = new RoleMenuDO();
rmDo.setRoleId(roleId);
rmDo.setMenuId(menuId);
rms.add(rmDo);
}
roleMenuMapper.removeByRoleId(roleId);
if (rms.size() > 0) {
roleMenuMapper.batchSave(rms);
}
return count;
}
@Transactional
@Override
public int remove(Long id) {
int count = roleMapper.remove(id);
userRoleMapper.removeByRoleId(id);
roleMenuMapper.removeByRoleId(id);
return count;
}
@Override
public RoleDO get(Long id) {
RoleDO roleDO = roleMapper.get(id);
return roleDO;
}
@Override
public int update(RoleDO role) {
int r = roleMapper.update(role);
List<Long> menuIds = role.getMenuIds();
Long roleId = role.getRoleId();
roleMenuMapper.removeByRoleId(roleId);
List<RoleMenuDO> rms = new ArrayList<>();
for (Long menuId : menuIds) {
RoleMenuDO rmDo = new RoleMenuDO();
rmDo.setRoleId(roleId);
rmDo.setMenuId(menuId);
rms.add(rmDo);
}
if (rms.size() > 0) {
roleMenuMapper.batchSave(rms);
}
return r;
}
@Override
public int batchremove(Long[] ids) {
int r = roleMapper.batchRemove(ids);
return r;
}
}