Commit c2fb86d566c629a24efd7f89ddfc5ae4483da538
1 parent
c8654af4
通过角色获取菜单信息
Signed-off-by: TanYibin <5491541@qq.com>
Showing
7 changed files
with
69 additions
and
20 deletions
huaheng-wms-core/src/main/java/org/jeecg/modules/system/controller/LoginController.java
@@ -287,6 +287,7 @@ public class LoginController { | @@ -287,6 +287,7 @@ public class LoginController { | ||
287 | return result; | 287 | return result; |
288 | } | 288 | } |
289 | 289 | ||
290 | + @SuppressWarnings("null") | ||
290 | private Result<JSONObject> checkSystemActivationCode() throws IOException { | 291 | private Result<JSONObject> checkSystemActivationCode() throws IOException { |
291 | Result<JSONObject> result = new Result<JSONObject>(); | 292 | Result<JSONObject> result = new Result<JSONObject>(); |
292 | // 是否需要校验激活码 | 293 | // 是否需要校验激活码 |
@@ -405,7 +406,7 @@ public class LoginController { | @@ -405,7 +406,7 @@ public class LoginController { | ||
405 | redisUtil.del(String.format("%s::%s", CacheConstant.SYS_USERS_CACHE, sysUser.getUsername())); | 406 | redisUtil.del(String.format("%s::%s", CacheConstant.SYS_USERS_CACHE, sysUser.getUsername())); |
406 | // 调用shiro的logout | 407 | // 调用shiro的logout |
407 | SecurityUtils.getSubject().logout(); | 408 | SecurityUtils.getSubject().logout(); |
408 | - return Result.ok("退出登录成功!"); | 409 | + return Result.OK("退出登录成功!", null); |
409 | } else { | 410 | } else { |
410 | return Result.error("Token无效!"); | 411 | return Result.error("Token无效!"); |
411 | } | 412 | } |
@@ -791,7 +792,7 @@ public class LoginController { | @@ -791,7 +792,7 @@ public class LoginController { | ||
791 | if (checkCode == null || !checkCode.equals(lowerCaseCaptcha)) { | 792 | if (checkCode == null || !checkCode.equals(lowerCaseCaptcha)) { |
792 | return Result.error("验证码错误"); | 793 | return Result.error("验证码错误"); |
793 | } | 794 | } |
794 | - return Result.ok(); | 795 | + return Result.OK(); |
795 | } | 796 | } |
796 | 797 | ||
797 | /** | 798 | /** |
@@ -822,7 +823,7 @@ public class LoginController { | @@ -822,7 +823,7 @@ public class LoginController { | ||
822 | } else { | 823 | } else { |
823 | return Result.error("二维码已过期,请刷新后重试"); | 824 | return Result.error("二维码已过期,请刷新后重试"); |
824 | } | 825 | } |
825 | - return Result.OK("扫码成功"); | 826 | + return Result.OK("扫码成功", null); |
826 | } | 827 | } |
827 | 828 | ||
828 | /** | 829 | /** |
huaheng-wms-core/src/main/java/org/jeecg/modules/system/controller/SysPermissionController.java
@@ -21,12 +21,15 @@ import org.jeecg.modules.system.model.SysPermissionTree; | @@ -21,12 +21,15 @@ import org.jeecg.modules.system.model.SysPermissionTree; | ||
21 | import org.jeecg.modules.system.model.TreeModel; | 21 | import org.jeecg.modules.system.model.TreeModel; |
22 | import org.jeecg.modules.system.service.*; | 22 | import org.jeecg.modules.system.service.*; |
23 | import org.jeecg.modules.system.util.PermissionDataUtil; | 23 | import org.jeecg.modules.system.util.PermissionDataUtil; |
24 | +import org.jeecg.utils.HuahengJwtUtil; | ||
24 | import org.springframework.beans.factory.annotation.Autowired; | 25 | import org.springframework.beans.factory.annotation.Autowired; |
25 | import org.springframework.web.bind.annotation.*; | 26 | import org.springframework.web.bind.annotation.*; |
26 | 27 | ||
27 | import java.util.*; | 28 | import java.util.*; |
28 | import java.util.stream.Collectors; | 29 | import java.util.stream.Collectors; |
29 | 30 | ||
31 | +import javax.servlet.http.HttpServletRequest; | ||
32 | + | ||
30 | /** | 33 | /** |
31 | * <p> | 34 | * <p> |
32 | * 菜单权限表 前端控制器 | 35 | * 菜单权限表 前端控制器 |
@@ -168,7 +171,7 @@ public class SysPermissionController { | @@ -168,7 +171,7 @@ public class SysPermissionController { | ||
168 | listMap.put(pid, mapList); | 171 | listMap.put(pid, mapList); |
169 | } | 172 | } |
170 | } | 173 | } |
171 | - return Result.ok(listMap); | 174 | + return Result.OK(listMap); |
172 | } catch (Exception e) { | 175 | } catch (Exception e) { |
173 | log.error(e.getMessage(), e); | 176 | log.error(e.getMessage(), e); |
174 | return Result.error("批量查询子菜单失败:" + e.getMessage()); | 177 | return Result.error("批量查询子菜单失败:" + e.getMessage()); |
@@ -203,15 +206,20 @@ public class SysPermissionController { | @@ -203,15 +206,20 @@ public class SysPermissionController { | ||
203 | * @return | 206 | * @return |
204 | */ | 207 | */ |
205 | @RequestMapping(value = "/getUserPermissionByToken", method = RequestMethod.GET) | 208 | @RequestMapping(value = "/getUserPermissionByToken", method = RequestMethod.GET) |
206 | - public Result<?> getUserPermissionByToken() { | 209 | + public Result<?> getUserPermissionByToken(HttpServletRequest request) { |
207 | Result<JSONObject> result = new Result<JSONObject>(); | 210 | Result<JSONObject> result = new Result<JSONObject>(); |
208 | try { | 211 | try { |
209 | - // 直接获取当前用户不适用前端token | ||
210 | - LoginUser loginUser = (LoginUser)SecurityUtils.getSubject().getPrincipal(); | ||
211 | - if (oConvertUtils.isEmpty(loginUser)) { | 212 | + String token = request.getHeader(CommonConstant.X_ACCESS_TOKEN); |
213 | + if (oConvertUtils.isEmpty(token)) { | ||
212 | return Result.error("请登录系统!"); | 214 | return Result.error("请登录系统!"); |
213 | } | 215 | } |
214 | - List<SysPermission> metaList = sysPermissionService.queryByUser(loginUser.getUsername()); | 216 | + List<String> roles = HuahengJwtUtil.getRoles(token); |
217 | +// // 直接获取当前用户不适用前端token | ||
218 | +// LoginUser loginUser = (LoginUser)SecurityUtils.getSubject().getPrincipal(); | ||
219 | +// if (oConvertUtils.isEmpty(loginUser)) { | ||
220 | +// return Result.error("请登录系统!"); | ||
221 | +// } | ||
222 | + List<SysPermission> metaList = sysPermissionService.queryByRoles(roles); | ||
215 | // 添加首页路由 | 223 | // 添加首页路由 |
216 | // update-begin-author:taoyan date:20200211 for: TASK #3368 【路由缓存】首页的缓存设置有问题,需要根据后台的路由配置来实现是否缓存 | 224 | // update-begin-author:taoyan date:20200211 for: TASK #3368 【路由缓存】首页的缓存设置有问题,需要根据后台的路由配置来实现是否缓存 |
217 | if (!PermissionDataUtil.hasIndexPage(metaList)) { | 225 | if (!PermissionDataUtil.hasIndexPage(metaList)) { |
@@ -221,7 +229,7 @@ public class SysPermissionController { | @@ -221,7 +229,7 @@ public class SysPermissionController { | ||
221 | // update-end-author:taoyan date:20200211 for: TASK #3368 【路由缓存】首页的缓存设置有问题,需要根据后台的路由配置来实现是否缓存 | 229 | // update-end-author:taoyan date:20200211 for: TASK #3368 【路由缓存】首页的缓存设置有问题,需要根据后台的路由配置来实现是否缓存 |
222 | 230 | ||
223 | // update-begin--Author:liusq Date:20210624 for:自定义首页地址LOWCOD-1578 | 231 | // update-begin--Author:liusq Date:20210624 for:自定义首页地址LOWCOD-1578 |
224 | - List<String> roles = sysUserService.getRole(loginUser.getUsername()); | 232 | +// List<String> roles = sysUserService.getRole(loginUser.getUsername()); |
225 | String compUrl = RoleIndexConfigEnum.getIndexByRoles(roles); | 233 | String compUrl = RoleIndexConfigEnum.getIndexByRoles(roles); |
226 | if (StringUtils.isNotBlank(compUrl)) { | 234 | if (StringUtils.isNotBlank(compUrl)) { |
227 | List<SysPermission> menus = metaList.stream().filter(sysPermission -> "首页".equals(sysPermission.getName())).collect(Collectors.toList()); | 235 | List<SysPermission> menus = metaList.stream().filter(sysPermission -> "首页".equals(sysPermission.getName())).collect(Collectors.toList()); |
huaheng-wms-core/src/main/java/org/jeecg/modules/system/mapper/SysPermissionMapper.java
@@ -49,5 +49,10 @@ public interface SysPermissionMapper extends BaseMapper<SysPermission> { | @@ -49,5 +49,10 @@ public interface SysPermissionMapper extends BaseMapper<SysPermission> { | ||
49 | * @return | 49 | * @return |
50 | */ | 50 | */ |
51 | public int queryCountByUsername(@Param("username") String username, @Param("permission") SysPermission sysPermission); | 51 | public int queryCountByUsername(@Param("username") String username, @Param("permission") SysPermission sysPermission); |
52 | + | ||
53 | + /** | ||
54 | + * 根据角色查询权限 | ||
55 | + */ | ||
56 | + public List<SysPermission> queryByRoles(List<String> roles); | ||
52 | 57 | ||
53 | } | 58 | } |
huaheng-wms-core/src/main/java/org/jeecg/modules/system/mapper/xml/SysPermissionMapper.xml
@@ -103,6 +103,21 @@ | @@ -103,6 +103,21 @@ | ||
103 | </if> | 103 | </if> |
104 | ) temp | 104 | ) temp |
105 | </select> | 105 | </select> |
106 | - | 106 | + |
107 | + <!-- 获取登录角色拥有的权限 --> | ||
108 | + <select id="queryByRoles" parameterType="Object" resultMap="SysPermission"> | ||
109 | + SELECT p.* | ||
110 | + FROM sys_permission p | ||
111 | + WHERE (EXISTS (SELECT a.id FROM sys_role_permission a | ||
112 | + JOIN sys_role b ON a.role_id = b.id | ||
113 | + WHERE p.id = a.permission_id AND | ||
114 | + <foreach collection="roles" item="item" open=" b.role_code IN (" close=")" separator=","> | ||
115 | + #{item} | ||
116 | + </foreach>) | ||
117 | + OR (p.url LIKE '%:code' AND p.url LIKE '/online%' AND p.hidden = 1) | ||
118 | + OR p.url = '/online') | ||
119 | + AND p.del_flag = 0 | ||
120 | + ORDER BY p.sort_no ASC | ||
121 | + </select> | ||
107 | 122 | ||
108 | </mapper> | 123 | </mapper> |
huaheng-wms-core/src/main/java/org/jeecg/modules/system/service/ISysPermissionService.java
@@ -60,4 +60,9 @@ public interface ISysPermissionService extends IService<SysPermission> { | @@ -60,4 +60,9 @@ public interface ISysPermissionService extends IService<SysPermission> { | ||
60 | * @return | 60 | * @return |
61 | */ | 61 | */ |
62 | public boolean hasPermission(String username, String url); | 62 | public boolean hasPermission(String username, String url); |
63 | + | ||
64 | + /** | ||
65 | + * 根据角色查询权限 | ||
66 | + */ | ||
67 | + public List<SysPermission> queryByRoles(List<String> roles); | ||
63 | } | 68 | } |
huaheng-wms-core/src/main/java/org/jeecg/modules/system/service/impl/SysDictServiceImpl.java
@@ -54,22 +54,22 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl | @@ -54,22 +54,22 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl | ||
54 | @Override | 54 | @Override |
55 | public void refleshCache() { | 55 | public void refleshCache() { |
56 | // 清空字典缓存 | 56 | // 清空字典缓存 |
57 | - Set keys = redisTemplate.keys(CacheConstant.SYS_DICT_CACHE + "*"); | ||
58 | - Set keys7 = redisTemplate.keys(CacheConstant.SYS_ENABLE_DICT_CACHE + "*"); | ||
59 | - Set keys2 = redisTemplate.keys(CacheConstant.SYS_DICT_TABLE_CACHE + "*"); | ||
60 | - Set keys3 = redisTemplate.keys(CacheConstant.SYS_DEPARTS_CACHE + "*"); | ||
61 | - Set keys4 = redisTemplate.keys(CacheConstant.SYS_DEPART_IDS_CACHE + "*"); | ||
62 | - Set keys8 = redisTemplate.keys(CacheConstant.SYS_DICT_TABLE_BY_KEYS_CACHE + "*"); | ||
63 | - Set keys5 = redisTemplate.keys("jmreport:cache:dict*"); | ||
64 | - Set keys6 = redisTemplate.keys("jmreport:cache:dictTable*"); | 57 | + Set<String> keys = redisTemplate.keys(CacheConstant.SYS_DICT_CACHE + "*"); |
58 | + Set<String> keys1 = redisTemplate.keys(CacheConstant.SYS_ENABLE_DICT_CACHE + "*"); | ||
59 | + Set<String> keys2 = redisTemplate.keys(CacheConstant.SYS_DICT_TABLE_CACHE + "*"); | ||
60 | + Set<String> keys3 = redisTemplate.keys(CacheConstant.SYS_DEPARTS_CACHE + "*"); | ||
61 | + Set<String> keys4 = redisTemplate.keys(CacheConstant.SYS_DEPART_IDS_CACHE + "*"); | ||
62 | + Set<String> keys5 = redisTemplate.keys(CacheConstant.SYS_DICT_TABLE_BY_KEYS_CACHE + "*"); | ||
63 | + Set<String> keys6 = redisTemplate.keys("jmreport:cache:dict*"); | ||
64 | + Set<String> keys7 = redisTemplate.keys("jmreport:cache:dictTable*"); | ||
65 | redisTemplate.delete(keys); | 65 | redisTemplate.delete(keys); |
66 | + redisTemplate.delete(keys1); | ||
66 | redisTemplate.delete(keys2); | 67 | redisTemplate.delete(keys2); |
67 | redisTemplate.delete(keys3); | 68 | redisTemplate.delete(keys3); |
68 | redisTemplate.delete(keys4); | 69 | redisTemplate.delete(keys4); |
69 | redisTemplate.delete(keys5); | 70 | redisTemplate.delete(keys5); |
70 | redisTemplate.delete(keys6); | 71 | redisTemplate.delete(keys6); |
71 | redisTemplate.delete(keys7); | 72 | redisTemplate.delete(keys7); |
72 | - redisTemplate.delete(keys8); | ||
73 | } | 73 | } |
74 | 74 | ||
75 | /** | 75 | /** |
@@ -157,6 +157,7 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl | @@ -157,6 +157,7 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl | ||
157 | * @param code | 157 | * @param code |
158 | * @return | 158 | * @return |
159 | */ | 159 | */ |
160 | + @SuppressWarnings("deprecation") | ||
160 | @Override | 161 | @Override |
161 | // @Cacheable(value = CacheConstant.SYS_DICT_TABLE_CACHE) | 162 | // @Cacheable(value = CacheConstant.SYS_DICT_TABLE_CACHE) |
162 | public List<DictModel> queryTableDictItemsByCode(String table, String text, String code) { | 163 | public List<DictModel> queryTableDictItemsByCode(String table, String text, String code) { |
@@ -164,6 +165,7 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl | @@ -164,6 +165,7 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl | ||
164 | return sysDictMapper.queryTableDictItemsByCode(table, text, code); | 165 | return sysDictMapper.queryTableDictItemsByCode(table, text, code); |
165 | } | 166 | } |
166 | 167 | ||
168 | + @SuppressWarnings("deprecation") | ||
167 | @Override | 169 | @Override |
168 | public List<DictModel> queryTableDictItemsByCodeAndFilter(String table, String text, String code, String filterSql) { | 170 | public List<DictModel> queryTableDictItemsByCodeAndFilter(String table, String text, String code, String filterSql) { |
169 | log.debug("无缓存dictTableList的时候调用这里!"); | 171 | log.debug("无缓存dictTableList的时候调用这里!"); |
@@ -179,6 +181,7 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl | @@ -179,6 +181,7 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl | ||
179 | * @param key | 181 | * @param key |
180 | * @return | 182 | * @return |
181 | */ | 183 | */ |
184 | + @SuppressWarnings("deprecation") | ||
182 | @Override | 185 | @Override |
183 | @Cacheable(value = CacheConstant.SYS_DICT_TABLE_CACHE, unless = "#result == null ") | 186 | @Cacheable(value = CacheConstant.SYS_DICT_TABLE_CACHE, unless = "#result == null ") |
184 | public String queryTableDictTextByKey(String table, String text, String code, String key) { | 187 | public String queryTableDictTextByKey(String table, String text, String code, String key) { |
@@ -214,6 +217,7 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl | @@ -214,6 +217,7 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl | ||
214 | * @param delNotExist 是否移除不存在的项,默认为true,设为false如果某个key不存在数据库中,则直接返回key本身 | 217 | * @param delNotExist 是否移除不存在的项,默认为true,设为false如果某个key不存在数据库中,则直接返回key本身 |
215 | * @return | 218 | * @return |
216 | */ | 219 | */ |
220 | + @SuppressWarnings("deprecation") | ||
217 | @Override | 221 | @Override |
218 | // update-begin--Author:lvdandan Date:20201204 for:JT-36【online】树形列表bug修改后,还是显示原来值 暂时去掉缓存 | 222 | // update-begin--Author:lvdandan Date:20201204 for:JT-36【online】树形列表bug修改后,还是显示原来值 暂时去掉缓存 |
219 | // @Cacheable(value = CacheConstant.SYS_DICT_TABLE_BY_KEYS_CACHE) | 223 | // @Cacheable(value = CacheConstant.SYS_DICT_TABLE_BY_KEYS_CACHE) |
@@ -284,11 +288,13 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl | @@ -284,11 +288,13 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl | ||
284 | return baseMapper.queryAllUserBackDictModel(); | 288 | return baseMapper.queryAllUserBackDictModel(); |
285 | } | 289 | } |
286 | 290 | ||
291 | + @SuppressWarnings("deprecation") | ||
287 | @Override | 292 | @Override |
288 | public List<DictModel> queryTableDictItems(String table, String text, String code, String keyword) { | 293 | public List<DictModel> queryTableDictItems(String table, String text, String code, String keyword) { |
289 | return baseMapper.queryTableDictItems(table, text, code, "%" + keyword + "%"); | 294 | return baseMapper.queryTableDictItems(table, text, code, "%" + keyword + "%"); |
290 | } | 295 | } |
291 | 296 | ||
297 | + @SuppressWarnings("deprecation") | ||
292 | @Override | 298 | @Override |
293 | public List<DictModel> queryLittleTableDictItems(String table, String text, String code, String condition, String keyword, int pageSize) { | 299 | public List<DictModel> queryLittleTableDictItems(String table, String text, String code, String condition, String keyword, int pageSize) { |
294 | Page<DictModel> page = new Page<DictModel>(1, pageSize); | 300 | Page<DictModel> page = new Page<DictModel>(1, pageSize); |
@@ -334,6 +340,7 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl | @@ -334,6 +340,7 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl | ||
334 | return filterSql; | 340 | return filterSql; |
335 | } | 341 | } |
336 | 342 | ||
343 | + @SuppressWarnings("deprecation") | ||
337 | @Override | 344 | @Override |
338 | public List<DictModel> queryAllTableDictItems(String table, String text, String code, String condition, String keyword) { | 345 | public List<DictModel> queryAllTableDictItems(String table, String text, String code, String condition, String keyword) { |
339 | String filterSql = getFilterSql(table, text, code, condition, keyword); | 346 | String filterSql = getFilterSql(table, text, code, condition, keyword); |
@@ -341,6 +348,7 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl | @@ -341,6 +348,7 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl | ||
341 | return ls; | 348 | return ls; |
342 | } | 349 | } |
343 | 350 | ||
351 | + @SuppressWarnings("deprecation") | ||
344 | @Override | 352 | @Override |
345 | public List<TreeSelectModel> queryTreeList(Map<String, String> query, String table, String text, String code, String pidField, String pid, | 353 | public List<TreeSelectModel> queryTreeList(Map<String, String> query, String table, String text, String code, String pidField, String pid, |
346 | String hasChildField) { | 354 | String hasChildField) { |
@@ -369,6 +377,7 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl | @@ -369,6 +377,7 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl | ||
369 | return baseMapper.queryDeleteList(); | 377 | return baseMapper.queryDeleteList(); |
370 | } | 378 | } |
371 | 379 | ||
380 | + @SuppressWarnings("deprecation") | ||
372 | @Override | 381 | @Override |
373 | public List<DictModel> queryDictTablePageList(DictQuery query, int pageSize, int pageNo) { | 382 | public List<DictModel> queryDictTablePageList(DictQuery query, int pageSize, int pageNo) { |
374 | Page page = new Page(pageNo, pageSize, false); | 383 | Page page = new Page(pageNo, pageSize, false); |
@@ -376,6 +385,7 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl | @@ -376,6 +385,7 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl | ||
376 | return pageList.getRecords(); | 385 | return pageList.getRecords(); |
377 | } | 386 | } |
378 | 387 | ||
388 | + @SuppressWarnings("deprecation") | ||
379 | @Override | 389 | @Override |
380 | public List<DictModel> getDictItems(String dictCode) { | 390 | public List<DictModel> getDictItems(String dictCode) { |
381 | List<DictModel> ls; | 391 | List<DictModel> ls; |
huaheng-wms-core/src/main/java/org/jeecg/modules/system/service/impl/SysPermissionServiceImpl.java
@@ -58,6 +58,11 @@ public class SysPermissionServiceImpl extends ServiceImpl<SysPermissionMapper, S | @@ -58,6 +58,11 @@ public class SysPermissionServiceImpl extends ServiceImpl<SysPermissionMapper, S | ||
58 | public List<TreeModel> queryListByParentId(String parentId) { | 58 | public List<TreeModel> queryListByParentId(String parentId) { |
59 | return sysPermissionMapper.queryListByParentId(parentId); | 59 | return sysPermissionMapper.queryListByParentId(parentId); |
60 | } | 60 | } |
61 | + | ||
62 | + @Override | ||
63 | + public List<SysPermission> queryByRoles(List<String> roles) { | ||
64 | + return this.sysPermissionMapper.queryByRoles(roles); | ||
65 | + } | ||
61 | 66 | ||
62 | /** | 67 | /** |
63 | * 真实删除 | 68 | * 真实删除 |