Commit c0fdc077 authored by 赵啸非's avatar 赵啸非

更新菜单树列表

parent 2163e7c2
...@@ -13,6 +13,7 @@ import com.mortals.framework.util.HttpUtil; ...@@ -13,6 +13,7 @@ import com.mortals.framework.util.HttpUtil;
import com.mortals.framework.util.StringUtils; import com.mortals.framework.util.StringUtils;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.common.key.RedisKey; import com.mortals.xhx.common.key.RedisKey;
import com.mortals.xhx.module.menu.model.MenuEntity;
import com.mortals.xhx.module.menu.service.MenuService; import com.mortals.xhx.module.menu.service.MenuService;
import com.mortals.xhx.module.user.model.UserEntity; import com.mortals.xhx.module.user.model.UserEntity;
import com.mortals.xhx.module.user.service.UserService; import com.mortals.xhx.module.user.service.UserService;
...@@ -26,6 +27,7 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -26,6 +27,7 @@ import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
...@@ -69,6 +71,10 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi ...@@ -69,6 +71,10 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
// List<ModelEntity> modelList = this.service.findModelList(userEntity.getId()); // List<ModelEntity> modelList = this.service.findModelList(userEntity.getId());
// userEntity.setModelList(modelList); // userEntity.setModelList(modelList);
List<MenuEntity> menuList =menuService.findTreeMenuByUser(userEntity);
userEntity.setMenuList(menuList);
userEntity.setLoginTime(System.currentTimeMillis()); userEntity.setLoginTime(System.currentTimeMillis());
userEntity.setToken(IdUtil.fastSimpleUUID()); userEntity.setToken(IdUtil.fastSimpleUUID());
userEntity.setExpireTime(DateUtils.addCurrDate(7).getTime()); userEntity.setExpireTime(DateUtils.addCurrDate(7).getTime());
......
package com.mortals.xhx.module.menu.service.impl; package com.mortals.xhx.module.menu.service.impl;
import com.mortals.framework.common.code.YesNo; import com.mortals.framework.common.code.YesNo;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
...@@ -16,12 +17,12 @@ import com.mortals.xhx.module.menu.service.MenuService; ...@@ -16,12 +17,12 @@ import com.mortals.xhx.module.menu.service.MenuService;
import java.util.*; import java.util.*;
/** /**
* MenuService * MenuService
* 菜单信息业务 service实现 * 菜单信息业务 service实现
* *
* @author zxfei * @author zxfei
* @date 2022-05-25 * @date 2022-05-25
*/ */
@Service("menuService") @Service("menuService")
public class MenuServiceImpl extends AbstractCRUDServiceImpl<MenuDao, MenuEntity, Long> implements MenuService { public class MenuServiceImpl extends AbstractCRUDServiceImpl<MenuDao, MenuEntity, Long> implements MenuService {
@Override @Override
...@@ -84,7 +85,10 @@ public class MenuServiceImpl extends AbstractCRUDServiceImpl<MenuDao, MenuEntity ...@@ -84,7 +85,10 @@ public class MenuServiceImpl extends AbstractCRUDServiceImpl<MenuDao, MenuEntity
@Override @Override
public List<MenuEntity> findTreeMenuByUser(IUser user) throws AppException { public List<MenuEntity> findTreeMenuByUser(IUser user) throws AppException {
return dao.selectMenuTreeByUserId(user.getId()); List<MenuEntity> menuList = dao.selectMenuTreeByUserId(user.getId());
//转换为树结构
List<MenuEntity> menuTreeList = getChildPerms(menuList, -1);
return menuTreeList;
} }
public List<MenuEntity> findTreeMenu() throws AppException { public List<MenuEntity> findTreeMenu() throws AppException {
...@@ -168,11 +172,71 @@ public class MenuServiceImpl extends AbstractCRUDServiceImpl<MenuDao, MenuEntity ...@@ -168,11 +172,71 @@ public class MenuServiceImpl extends AbstractCRUDServiceImpl<MenuDao, MenuEntity
MenuQuery query = new MenuQuery(); MenuQuery query = new MenuQuery();
query.setParentId(entity.getParentId()); query.setParentId(entity.getParentId());
Comparator<Integer> comparator = Comparator.comparing(Integer::intValue); Comparator<Integer> comparator = Comparator.comparing(Integer::intValue);
Optional<Integer> maxOptional = this.find(query).stream().map(MenuEntity::getOrderId).filter(f->f!=9999).max(comparator); Optional<Integer> maxOptional = this.find(query).stream().map(MenuEntity::getOrderId).filter(f -> f != 9999).max(comparator);
maxOptional.ifPresent(e -> { maxOptional.ifPresent(e -> {
e=e+1; e = e + 1;
entity.setOrderId(e); entity.setOrderId(e);
}); });
super.saveBefore(entity, context); super.saveBefore(entity, context);
} }
/**
* 根据父节点的ID获取所有子节点
*
* @param list 分类表
* @param parentId 传入的父节点ID
* @return String
*/
public List<MenuEntity> getChildPerms(List<MenuEntity> list, int parentId) {
List<MenuEntity> returnList = new ArrayList<MenuEntity>();
for (Iterator<MenuEntity> iterator = list.iterator(); iterator.hasNext(); ) {
MenuEntity t =iterator.next();
// 一、根据传入的某个父节点ID,遍历该父节点的所有子节点
if (t.getParentId() == parentId) {
recursionFn(list, t);
returnList.add(t);
}
}
return returnList;
}
/**
* 递归列表
*
* @param list
* @param t
*/
private void recursionFn(List<MenuEntity> list, MenuEntity t) {
// 得到子节点列表
List<MenuEntity> childList = getChildList(list, t);
t.setChildList(childList);
for (MenuEntity tChild : childList) {
if (hasChild(list, tChild)) {
recursionFn(list, tChild);
}
}
}
/**
* 得到子节点列表
*/
private List<MenuEntity> getChildList(List<MenuEntity> list, MenuEntity t) {
List<MenuEntity> tlist = new ArrayList<>();
Iterator<MenuEntity> it = list.iterator();
while (it.hasNext()) {
MenuEntity n =it.next();
if (n.getParentId().longValue() == t.getId().longValue()) {
tlist.add(n);
}
}
return tlist;
}
/**
* 判断是否有子节点
*/
private boolean hasChild(List<MenuEntity> list, MenuEntity t) {
return getChildList(list, t).size() > 0 ? true : false;
}
} }
\ No newline at end of file
...@@ -15,13 +15,13 @@ ...@@ -15,13 +15,13 @@
<select id="selectMenuTreeByUserId" parameterType="paramDto" resultMap="MenuEntity-Map"> <select id="selectMenuTreeByUserId" parameterType="paramDto" resultMap="MenuEntity-Map">
select <include refid="_columns"/> select <include refid="_columns"/>
from mortals_xhx_menu m from mortals_xhx_menu a
left join mortals_xhx_role_auth rm on m.id = rm.menuId left join mortals_xhx_role_auth rm on a.id = rm.menuId
left join mortals_xhx_role_user ur on rm.roleId = ur.roleId left join mortals_xhx_role_user ur on rm.roleId = ur.roleId
left join mortals_xhx_role ro on ur.roleId = ro.id left join mortals_xhx_role ro on ur.roleId = ro.id
left join mortals_xhx_user u on ur.userId = u.id left join mortals_xhx_user u on ur.userId = u.id
where u.id = #{condition.userId} and m.menuType in ('0','1','2') and m.status = 1 AND ro.status = 1 where u.id = #{condition.userId} and a.menuType in ('0','1','2') and a.status = 1 AND ro.status = 1
order by m.parentId, m.orderId order by a.parentId, a.orderId
</select> </select>
</mapper> </mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment