zouxuan 5 năm trước cách đây
mục cha
commit
91381da644

+ 38 - 0
mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/dto/MenuQueryInfo.java

@@ -0,0 +1,38 @@
+package com.ym.mec.auth.api.dto;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+public class MenuQueryInfo extends QueryInfo {
+    @ApiModelProperty(value = "父节点编号,默认0",required = false)
+    private Integer parentId = 0;
+
+    @ApiModelProperty(value = "节点状态,默认0未删除,1删除",required = false)
+    private String delFlag = "0";
+
+    private Integer userId;
+
+    public Integer getParentId() {
+        return parentId;
+    }
+
+    public void setParentId(Integer parentId) {
+        this.parentId = parentId;
+    }
+
+    public String getDelFlag() {
+        return delFlag;
+    }
+
+    public void setDelFlag(String delFlag) {
+        this.delFlag = delFlag;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+}

+ 13 - 0
mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/entity/SysMenu.java

@@ -3,6 +3,8 @@ package com.ym.mec.auth.api.entity;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 
+import java.util.List;
+
 /**
 /**
  * 对应数据库表(sys_menu):
  * 对应数据库表(sys_menu):
  */
  */
@@ -58,6 +60,17 @@ public class SysMenu {
 	@ApiModelProperty(value = "逻辑删除标记(0--正常 1--删除)",required = false)
 	@ApiModelProperty(value = "逻辑删除标记(0--正常 1--删除)",required = false)
 	private String delFlag;
 	private String delFlag;
 
 
+	@ApiModelProperty(value = "子节点列表",required = false)
+	private List<SysMenu> sysMenus;
+
+	public List<SysMenu> getSysMenus() {
+		return sysMenus;
+	}
+
+	public void setSysMenus(List<SysMenu> sysMenus) {
+		this.sysMenus = sysMenus;
+	}
+
 	public Integer getId() {
 	public Integer getId() {
 		return id;
 		return id;
 	}
 	}

+ 9 - 0
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/dal/dao/SysMenuDao.java

@@ -28,4 +28,13 @@ public interface SysMenuDao extends BaseDAO<Integer, SysMenu> {
      * @return
      * @return
      */
      */
     SysMenu findMenuByPermission(@Param("permission") String permission);
     SysMenu findMenuByPermission(@Param("permission") String permission);
+
+    /**
+     * 获取用户菜单树状结构
+     * @param menuId
+     * @param delFlag
+     * @param userId
+     * @return
+     */
+    List<SysMenu> findByParentId(@Param("parentId") Integer menuId,@Param("delFlag") String delFlag,@Param("userId") Integer userId);
 }
 }

+ 4 - 2
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/SysMenuService.java

@@ -1,6 +1,8 @@
 package com.ym.mec.auth.service;
 package com.ym.mec.auth.service;
 
 
+import com.ym.mec.auth.api.dto.MenuQueryInfo;
 import com.ym.mec.auth.api.entity.SysMenu;
 import com.ym.mec.auth.api.entity.SysMenu;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.common.service.BaseService;
 
 
 import java.util.List;
 import java.util.List;
@@ -16,10 +18,10 @@ public interface SysMenuService extends BaseService<Integer, SysMenu> {
 
 
     /**
     /**
      * 根据用户编号查询用户可访问菜单
      * 根据用户编号查询用户可访问菜单
-     * @param id
+     * @param menuQueryInfo
      * @return
      * @return
      */
      */
-    List<SysMenu> findByUser(Integer id);
+    PageInfo<SysMenu> findByUser(MenuQueryInfo menuQueryInfo);
 
 
     /**
     /**
      * 根据权限标识查菜单
      * 根据权限标识查菜单

+ 25 - 2
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysMenuServiceImpl.java

@@ -1,5 +1,8 @@
 package com.ym.mec.auth.service.impl;
 package com.ym.mec.auth.service.impl;
 
 
+import com.ym.mec.auth.api.dto.MenuQueryInfo;
+import com.ym.mec.auth.api.enums.YesOrNoEnum;
+import com.ym.mec.common.page.PageInfo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
@@ -28,8 +31,28 @@ public class SysMenuServiceImpl extends BaseServiceImpl<Integer, SysMenu>  imple
 	}
 	}
 
 
 	@Override
 	@Override
-	public List<SysMenu> findByUser(Integer id) {
-		return sysMenuDao.findByUser(id);
+	public PageInfo<SysMenu> findByUser(MenuQueryInfo menuQueryInfo) {
+		PageInfo<SysMenu> pageInfo = queryPage(menuQueryInfo);
+		for (SysMenu menu:pageInfo.getRows()) {
+			menu = getTree(menu,menuQueryInfo.getDelFlag(),menuQueryInfo.getUserId());
+		}
+		return pageInfo;
+	}
+
+	private SysMenu getTree(SysMenu menu, String delFlag,Integer userId){
+		//得到根节点对象
+		//获取子节点list
+		List<SysMenu> sysMenus = sysMenuDao.findByParentId(menu.getId(),delFlag,userId);
+		//如果存在子节点
+		if(sysMenus != null && sysMenus.size() > 0) {
+			//将子节点list放入父节点对象
+			menu.setSysMenus(sysMenus);
+			//遍历子节点....
+			for (SysMenu sysMenu : sysMenus) {
+				getTree(sysMenu,delFlag,userId);
+			}
+		}
+		return menu;
 	}
 	}
 
 
 	@Override
 	@Override

+ 8 - 3
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/MenuController.java

@@ -1,5 +1,6 @@
 package com.ym.mec.auth.web.controller;
 package com.ym.mec.auth.web.controller;
 
 
+import com.ym.mec.auth.api.dto.MenuQueryInfo;
 import com.ym.mec.auth.api.entity.SysMenu;
 import com.ym.mec.auth.api.entity.SysMenu;
 import com.ym.mec.auth.service.SysMenuService;
 import com.ym.mec.auth.service.SysMenuService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.controller.BaseController;
@@ -58,12 +59,16 @@ public class MenuController extends BaseController {
         return succeed(sysMenuService.get(id));
         return succeed(sysMenuService.get(id));
     }
     }
 
 
-    @ApiOperation("查询用户可访问菜单")
+    @ApiOperation("查询用户可访问菜单树状结构")
     @GetMapping("/findByUser")
     @GetMapping("/findByUser")
-    public Object findByUser() {
+    public Object findByUser(@RequestBody MenuQueryInfo menuQueryInfo) {
         AuthUser user = SecurityUtils.getUser();
         AuthUser user = SecurityUtils.getUser();
         if(user != null){
         if(user != null){
-            return succeed(sysMenuService.findByUser(user.getUserId()));
+            if(menuQueryInfo == null){
+                menuQueryInfo = new MenuQueryInfo();
+            }
+            menuQueryInfo.setUserId(user.getUserId());
+            return succeed(sysMenuService.findByUser(menuQueryInfo));
         }
         }
         return failed();
         return failed();
     }
     }

+ 28 - 2
mec-auth/mec-auth-server/src/main/resources/config/mybatis/SysMenuMapper.xml

@@ -93,13 +93,19 @@
 
 
     <!-- 分页查询 -->
     <!-- 分页查询 -->
     <select id="queryPage" resultMap="SysMenu" parameterType="map">
     <select id="queryPage" resultMap="SysMenu" parameterType="map">
-        SELECT * FROM sys_menu ORDER BY id_
+        SELECT sm.* FROM sys_user_role sur
+        LEFT JOIN sys_role_menu srm ON sur.role_id_ = srm.role_id_
+        LEFT JOIN sys_menu sm ON srm.menu_id_ = sm.id_
+        <include refid="queryTree"/>
         <include refid="global.limit"/>
         <include refid="global.limit"/>
     </select>
     </select>
 
 
     <!-- 查询当前表的总记录数 -->
     <!-- 查询当前表的总记录数 -->
     <select id="queryCount" resultType="int">
     <select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM sys_menu
+        SELECT COUNT(sm.id_) FROM sys_user_role sur
+        LEFT JOIN sys_role_menu srm ON sur.role_id_ = srm.role_id_
+        LEFT JOIN sys_menu sm ON srm.menu_id_ = sm.id_
+        <include refid="queryTree"/>
 	</select>
 	</select>
 
 
     <select id="getMenusByRoleId" resultMap="SysMenu">
     <select id="getMenusByRoleId" resultMap="SysMenu">
@@ -120,4 +126,24 @@
     <select id="findMenuByPermission" resultMap="SysMenu">
     <select id="findMenuByPermission" resultMap="SysMenu">
         SELECT * FROM `sys_role_menu` WHERE `permission_` = #{permission} AND sm.del_flag_ = 0
         SELECT * FROM `sys_role_menu` WHERE `permission_` = #{permission} AND sm.del_flag_ = 0
     </select>
     </select>
+    <sql id="queryTree">
+        <where>
+            <if test="userId != null">
+                sur.user_id_ = #{userId}
+            </if>
+            <if test="delFlag != null">
+                AND sm.del_flag_ = #{delFlag}
+            </if>
+            <if test="parentId != null">
+                AND sm.parent_id_ = #{parentId}
+            </if>
+        </where>
+    </sql>
+
+    <select id="findByParentId" resultMap="SysMenu">
+        SELECT sm.* FROM sys_user_role sur
+        LEFT JOIN sys_role_menu srm ON sur.role_id_ = srm.role_id_
+        LEFT JOIN sys_menu sm ON srm.menu_id_ = sm.id_
+        <include refid="queryTree"/>
+    </select>
 </mapper>
 </mapper>

+ 5 - 5
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -180,11 +180,11 @@ public class RoomServiceImpl implements RoomService {
         roomResult.setDisplay(display);
         roomResult.setDisplay(display);
 //        JwtToken jwtToken = tokenHelper.createJwtToken(jwtUser);
 //        JwtToken jwtToken = tokenHelper.createJwtToken(jwtUser);
         IMTokenInfo tokenInfo = imHelper.getToken(userId, userId, "");
         IMTokenInfo tokenInfo = imHelper.getToken(userId, userId, "");
-        if (tokenInfo.isSuccess()) {
-            roomResult.setImToken(tokenInfo.getAuthenticationValue());
-        } else {
-            throw new ApiException(ErrorEnum.ERR_IM_TOKEN_ERROR, tokenInfo.getErrorMessage());
-        }
+//        if (tokenInfo.isSuccess()) {
+//            roomResult.setImToken(tokenInfo.getAuthenticationValue());
+//        } else {
+//            throw new ApiException(ErrorEnum.ERR_IM_TOKEN_ERROR, tokenInfo.getErrorMessage());
+//        }
 //        roomResult.setAuthorization(jwtToken.getToken());
 //        roomResult.setAuthorization(jwtToken.getToken());
         roomResult.setRoomId(roomId);
         roomResult.setRoomId(roomId);
         List<RoomMember> roomMemberList = roomMemberDao.findByRid(roomId);
         List<RoomMember> roomMemberList = roomMemberDao.findByRid(roomId);