Selaa lähdekoodia

导航获取优化修改

anderx 1 vuosi sitten
vanhempi
commit
1a073c7a61

+ 6 - 7
src/main/java/com/goafanti/common/dao/PermissionMapper.java

@@ -1,14 +1,13 @@
 package com.goafanti.common.dao;
 
-import java.util.List;
-import java.util.Set;
-
-import org.apache.ibatis.annotations.Param;
-
 import com.goafanti.common.model.Permission;
+import com.goafanti.permission.bo.Menu;
 import com.goafanti.permission.bo.Navigation;
 import com.goafanti.permission.bo.PermissionBo;
-import com.goafanti.permission.bo.SubMenu;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Set;
 
 public interface PermissionMapper {
     int deleteByPrimaryKey(String id);
@@ -71,7 +70,7 @@ public interface PermissionMapper {
 	
 	List<Navigation> selectNavList(@Param("aid")String aid);
 
-	List<SubMenu> selectMenuList(@Param("superId")String superId,@Param("aid")String aid);
+	List<Menu> selectMenuList(@Param("superId")String superId, @Param("aid")String aid);
 
 	String selectTopNavBySubUrl(@Param("subUrl")String subUrl);
 

+ 6 - 2
src/main/java/com/goafanti/common/mapper/PermissionMapper.xml

@@ -320,7 +320,7 @@
 		</choose>
 		order by show_order
   </select>
-  <select id="selectMenuList" parameterType="java.lang.String" resultType="com.goafanti.permission.bo.SubMenu">
+  <select id="selectMenuList" parameterType="java.lang.String" resultType="com.goafanti.permission.bo.Menu">
   		<choose>
   			<when test="aid == null">
 		  		select
@@ -337,7 +337,9 @@
 				select
 					d.id,
 					d.name,
-					d.url
+					d.url,
+					d.super_id superId,
+					d.type
 				from
 					user_role a left join role b on
 					a.rid = b.id left join role_permission c on
@@ -345,7 +347,9 @@
 					c.pid = d.id
 				where
 					d.type in (1,2)
+				  <if test="superId != null">
 					and d.super_id = #{superId,jdbcType=VARCHAR}
+				  </if>
 					and a.uid = #{aid,jdbcType=VARCHAR}
 					group by d.id
   			</otherwise>

+ 19 - 0
src/main/java/com/goafanti/permission/bo/SubMenu.java

@@ -4,6 +4,25 @@ public class SubMenu {
 	private String id;
 	private String name;
 	private String url;
+	private String superId;
+	private Integer type;
+
+	public String getSuperId() {
+		return superId;
+	}
+
+	public void setSuperId(String superId) {
+		this.superId = superId;
+	}
+
+	public Integer getType() {
+		return type;
+	}
+
+	public void setType(Integer type) {
+		this.type = type;
+	}
+
 	public String getId() {
 		return id;
 	}

+ 21 - 35
src/main/java/com/goafanti/permission/service/impl/PermissionServiceImpl.java

@@ -1,20 +1,5 @@
 package com.goafanti.permission.service.impl;
 
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-import java.util.stream.Collectors;
-
-import org.apache.commons.beanutils.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.cache.annotation.Cacheable;
-import org.springframework.stereotype.Service;
-
 import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.dao.PermissionMapper;
 import com.goafanti.common.dao.RolePermissionMapper;
@@ -23,11 +8,15 @@ import com.goafanti.common.dao.UserRoleMapper;
 import com.goafanti.common.model.Permission;
 import com.goafanti.core.mybatis.BaseMybatisDao;
 import com.goafanti.core.shiro.token.TokenManager;
-import com.goafanti.permission.service.PermissionService;
 import com.goafanti.permission.bo.Menu;
 import com.goafanti.permission.bo.Navigation;
 import com.goafanti.permission.bo.PermissionBo;
-import com.goafanti.permission.bo.SubMenu;
+import com.goafanti.permission.service.PermissionService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class PermissionServiceImpl extends BaseMybatisDao<PermissionMapper> implements PermissionService {
@@ -273,24 +262,21 @@ public class PermissionServiceImpl extends BaseMybatisDao<PermissionMapper> impl
 	@Override
 	public List<Menu> selectMenuList(String superId) {
 		String aid = TokenManager.hasRole(AFTConstants.SUPERADMIN) ? null : TokenManager.getAdminId();
-		List<SubMenu> subMenus = permissionMapper.selectMenuList(superId,aid);
-		List<Menu> menus = new ArrayList<Menu>();
-		try {
-			Menu m = null;
-			for(SubMenu sm: subMenus){
-				m = new Menu();
-				BeanUtils.copyProperties(m, sm);
-				menus.add(m);
-			}
-			if(menus != null && menus.size()>0){
-				for(Menu menu: menus){
-					subMenus = permissionMapper.selectMenuList(menu.getId(),aid);
-					menu.setSubMenus(subMenus);
-				}
-			}
-		} catch (IllegalAccessException | InvocationTargetException e) {
-			e.printStackTrace();
-		}
+		List<Menu> subMenus = permissionMapper.selectMenuList(null,aid);
+		List<Menu> menus = subMenus.stream().filter(e -> e.getSuperId().equals(superId)).collect(Collectors.toList());
+		List<Menu> collect2 = subMenus.stream().filter(e -> e.getType() == 2).collect(Collectors.toList());
+		menus.forEach(menu -> {
+			collect2.forEach(
+					subMenu -> {
+						if (subMenu.getSuperId().equals(menu.getId())) {
+							if (menu.getSubMenus()==null){
+								menu.setSubMenus(new ArrayList<>());
+							}
+							menu.getSubMenus().add(subMenu);
+						}
+					}
+			);
+		});
 		return menus;
 	}