Browse Source

快捷菜单接口

chenc 3 years ago
parent
commit
2a52ba7005

+ 7 - 7
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysPermissionController.java

@@ -250,7 +250,7 @@ public class SysPermissionController {
 	 * @return
 	 */
 	@RequestMapping(value = "/getUserPermissionByTokenBottom", method = RequestMethod.GET)
-	public Result<?> getUserPermissionByTokenBottom(@RequestParam(name = "token", required = true) String token) {
+	public Result<?> getUserPermissionByTokenBottom(@RequestParam(name = "token", required = true) String token,@RequestParam(name = "name", required = false) String name) {
 		Result<JSONObject> result = new Result<JSONObject>();
 		try {
 			if (oConvertUtils.isEmpty(token)) {
@@ -258,13 +258,13 @@ public class SysPermissionController {
 			}
 			log.info(" ------ 通过令牌获取用户拥有的访问菜单 ---- TOKEN ------ " + token);
 			String username = JwtUtil.getUsername(token);
-			List<SysPermission> metaList = sysPermissionService.queryByUser(username);
+			List<SysPermission> metaList = sysPermissionService.queryByUserAndName(username,name);
 			//添加首页路由
 			//update-begin-author:taoyan date:20200211 for: TASK #3368 【路由缓存】首页的缓存设置有问题,需要根据后台的路由配置来实现是否缓存
-			if(!PermissionDataUtil.hasIndexPage(metaList)){
-				SysPermission indexMenu = sysPermissionService.list(new LambdaQueryWrapper<SysPermission>().eq(SysPermission::getName,"首页")).get(0);
-				metaList.add(0,indexMenu);
-			}
+//			if(!PermissionDataUtil.hasIndexPage(metaList)){
+//				SysPermission indexMenu = sysPermissionService.list(new LambdaQueryWrapper<SysPermission>().eq(SysPermission::getName,"首页")).get(0);
+//				metaList.add(0,indexMenu);
+//			}
 			//update-end-author:taoyan date:20200211 for: TASK #3368 【路由缓存】首页的缓存设置有问题,需要根据后台的路由配置来实现是否缓存
 			JSONObject json = new JSONObject();
 			JSONArray menujsonArray = new JSONArray();
@@ -300,7 +300,7 @@ public class SysPermissionController {
 	public void getChildList(List<Map<String,Object>> mapListChild,JSONArray jsonArray){
 		for(int i=0;i<jsonArray.size();i++){
 			if(jsonArray.getJSONObject(i).getJSONArray("children")!=null){
-				getChildList(mapListChild,jsonArray);
+				getChildList(mapListChild,jsonArray.getJSONObject(i).getJSONArray("children"));
 			}else{
 				Map<String,Object> map=new LinkedHashMap<>();
 				map.put("name",jsonArray.getJSONObject(i).getJSONObject("meta").get("title"));

+ 4 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/SysPermissionMapper.java

@@ -30,6 +30,10 @@ public interface SysPermissionMapper extends BaseMapper<SysPermission> {
 	  *   根据用户查询用户权限
 	 */
 	public List<SysPermission> queryByUser(@Param("username") String username);
+	/**
+	 *   根据用户查询用户权限,且根据菜单名称过滤
+	 */
+	public List<SysPermission> queryByUserAndName(@Param("username") String username,@Param("name") String name);
 	
 	/**
 	 *   修改菜单状态字段: 是否子节点

+ 40 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/xml/SysPermissionMapper.xml

@@ -71,6 +71,46 @@
 			<!--update end Author:lvdandan  Date:20200213 for:加入部门权限 -->
 		   ) h order by h.sort_no ASC
 	</select>
+
+
+	<select id="queryByUserAndName" parameterType="Object"  resultMap="SysPermission">
+		SELECT * FROM (
+		SELECT p.*
+		FROM  sys_permission p
+		WHERE (exists(
+		select a.id from sys_role_permission a
+		join sys_role b on a.role_id = b.id
+		join sys_user_role c on c.role_id = b.id
+		join sys_user d on d.id = c.user_id
+		where p.id = a.permission_id AND d.username = #{username,jdbcType=VARCHAR}
+		)
+		<!--update begin Author:taoyan  Date:20200225 for:默认授权online的auto动态隐藏路由 -->
+		or (p.url like '%:code' and p.url like '/online%' and p.hidden = 1)
+		or (p.url = '/online') )
+		<!--update end Author:taoyan  Date:20200213 for:默认授权online的auto动态隐藏路由  -->
+		and p.del_flag = 0
+		<if test="name!=null and name !=''">
+			p.name like #{name,jdbcType=VARCHAR}
+		</if>
+		<!--update begin Author:lvdandan  Date:20200225 for:加入部门权限 -->
+		UNION
+		SELECT p.*
+		FROM  sys_permission p
+		WHERE exists(
+		select a.id from sys_depart_role_permission a
+		join sys_depart_role b on a.role_id = b.id
+		join sys_depart_role_user c on c.drole_id = b.id
+		join sys_user d on d.id = c.user_id
+		where p.id = a.permission_id AND d.username = #{username,jdbcType=VARCHAR}
+		)
+		and p.del_flag = 0
+
+		<if test="name!=null and name !=''">
+			p.name like #{name,jdbcType=VARCHAR}
+		</if>
+		<!--update end Author:lvdandan  Date:20200213 for:加入部门权限 -->
+		) h order by h.sort_no ASC
+	</select>
 	
 	
 

+ 2 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/ISysPermissionService.java

@@ -31,6 +31,8 @@ public interface ISysPermissionService extends IService<SysPermission> {
 	public void editPermission(SysPermission sysPermission) throws JeecgBootException;
 	
 	public List<SysPermission> queryByUser(String username);
+
+	public List<SysPermission> queryByUserAndName(String username,String name);
 	
 	/**
 	 * 根据permissionId删除其关联的SysPermissionDataRule表中的数据

+ 1 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/BottomMenuServiceImpl.java

@@ -36,6 +36,7 @@ public class BottomMenuServiceImpl extends ServiceImpl<BottomMenuMapper, BottomM
             for(BottomMenu b:bottomMenu.getBottomMenuList()){
                 b.setId(null);
                 b.setSort(sort);
+                b.setPkOrg(sysUser.getOrgCode());
                 sort++;
             }
             this.saveBatch(bottomMenu.getBottomMenuList());

+ 5 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysPermissionServiceImpl.java

@@ -184,6 +184,11 @@ public class SysPermissionServiceImpl extends ServiceImpl<SysPermissionMapper, S
 		return this.sysPermissionMapper.queryByUser(username);
 	}
 
+	@Override
+	public List<SysPermission> queryByUserAndName(String username, String name) {
+		return this.sysPermissionMapper.queryByUserAndName(username,name);
+	}
+
 	/**
 	 * 根据permissionId删除其关联的SysPermissionDataRule表中的数据
 	 */