Commit c2fb86d566c629a24efd7f89ddfc5ae4483da538

Authored by 谭毅彬
1 parent c8654af4

通过角色获取菜单信息

Signed-off-by: TanYibin <5491541@qq.com>
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&lt;SysPermission&gt; { @@ -49,5 +49,10 @@ public interface SysPermissionMapper extends BaseMapper&lt;SysPermission&gt; {
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&lt;SysPermission&gt; { @@ -60,4 +60,9 @@ public interface ISysPermissionService extends IService&lt;SysPermission&gt; {
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&lt;SysDictMapper, SysDict&gt; impl @@ -54,22 +54,22 @@ public class SysDictServiceImpl extends ServiceImpl&lt;SysDictMapper, SysDict&gt; 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&lt;SysDictMapper, SysDict&gt; impl @@ -157,6 +157,7 @@ public class SysDictServiceImpl extends ServiceImpl&lt;SysDictMapper, SysDict&gt; 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&lt;SysDictMapper, SysDict&gt; impl @@ -164,6 +165,7 @@ public class SysDictServiceImpl extends ServiceImpl&lt;SysDictMapper, SysDict&gt; 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&lt;SysDictMapper, SysDict&gt; impl @@ -179,6 +181,7 @@ public class SysDictServiceImpl extends ServiceImpl&lt;SysDictMapper, SysDict&gt; 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&lt;SysDictMapper, SysDict&gt; impl @@ -214,6 +217,7 @@ public class SysDictServiceImpl extends ServiceImpl&lt;SysDictMapper, SysDict&gt; 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&lt;SysDictMapper, SysDict&gt; impl @@ -284,11 +288,13 @@ public class SysDictServiceImpl extends ServiceImpl&lt;SysDictMapper, SysDict&gt; 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&lt;SysDictMapper, SysDict&gt; impl @@ -334,6 +340,7 @@ public class SysDictServiceImpl extends ServiceImpl&lt;SysDictMapper, SysDict&gt; 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&lt;SysDictMapper, SysDict&gt; impl @@ -341,6 +348,7 @@ public class SysDictServiceImpl extends ServiceImpl&lt;SysDictMapper, SysDict&gt; 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&lt;SysDictMapper, SysDict&gt; impl @@ -369,6 +377,7 @@ public class SysDictServiceImpl extends ServiceImpl&lt;SysDictMapper, SysDict&gt; 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&lt;SysDictMapper, SysDict&gt; impl @@ -376,6 +385,7 @@ public class SysDictServiceImpl extends ServiceImpl&lt;SysDictMapper, SysDict&gt; 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&lt;SysPermissionMapper, S @@ -58,6 +58,11 @@ public class SysPermissionServiceImpl extends ServiceImpl&lt;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 * 真实删除