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

更新资源文件

parent f4aaf405
......@@ -106,7 +106,9 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
}
Set<String> urls = resourceService.findUrlSetByUserId(user.getId());
log.info("userId:{},urls:{}", user.getId(), JSON.toJSONString(urls));
List<MenuEntity> outlookBarList = menuService.findTreeMenu(user, urls);
// List<MenuEntity> outlookBarList = menuService.findTreeMenu(user, urls);
List<MenuEntity> treeMenuList = menuService.findTreeMenu(user);
String currUserName = user.getRealName();
if (currUserName == null || currUserName.trim().length() == 0) {
currUserName = "管理员";
......@@ -116,7 +118,7 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
String token = authTokenService.getToken(request);
data.put("token", token);
data.put("currUserName", currUserName);
data.put("barList", outlookBarList);
data.put("menuList", treeMenuList);
data.put("id", user.getId());
data.put("userType", user.getUserType());
ret.put(KEY_RESULT_DATA, data);
......
......@@ -10,22 +10,20 @@ package com.mortals.xhx.base.system.menu.service;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.ICRUDService;
import com.mortals.framework.service.IUser;
import com.mortals.xhx.base.system.menu.model.MenuEntity;
import com.mortals.xhx.base.system.menu.model.MenuTreeSelect;
import java.util.List;
import java.util.Set;
/**
* <p>Title: 菜单信息</p>
* <p>Description: MenuService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
* 菜单资源类
* @author: zxfei
* @date: 2024/9/6 16:28
*/
public interface MenuService extends ICRUDService<MenuEntity,Long> {
/**
* 获取所有可用菜单
......@@ -33,7 +31,7 @@ public interface MenuService extends ICRUDService<MenuEntity,Long> {
* @return
* @throws AppException
*/
public List<MenuEntity> findAllEnable() throws AppException;
List<MenuEntity> findAllEnable() throws AppException;
/**
* 查询有权限的菜单
......@@ -43,16 +41,17 @@ public interface MenuService extends ICRUDService<MenuEntity,Long> {
* @return
* @throws AppException
*/
public List<MenuEntity> findTreeMenu(IUser user, Set<String> urls) throws AppException;
List<MenuEntity> findTreeMenu(IUser user, Set<String> urls) throws AppException;
/**
* 查看所有菜单
* 查询有权限的菜单
*
* @param user 当前用户
* @return
* @throws AppException
*/
public List<MenuEntity> findTreeMenu() throws AppException;
List<MenuEntity> findTreeMenu(IUser user) throws AppException;
/**
* 更新排列顺序
......@@ -60,4 +59,33 @@ public interface MenuService extends ICRUDService<MenuEntity,Long> {
* @param type
*/
void upOrDown(Long id, Integer type);
/**
* 是否存在菜单信息业务节点
*
* @param menuId 菜单信息业务ID
* @return 结果
*/
boolean hasChildByMenuId(Long menuId);
/**
* 构建前端所需要下拉树结构
*
* @param menuList 菜单信息业务列表
* @return 下拉树结构列表
*/
List<MenuTreeSelect> buildMenuTreeSelect(List<MenuEntity> menuList);
/**
* 根据父id查询子节点
* @param parentId
* @param context
* @return
*/
List<MenuTreeSelect> getListByParentId(Long parentId, Context context);
}
\ No newline at end of file
......@@ -18,10 +18,12 @@ import com.mortals.framework.util.StringUtils;
import com.mortals.xhx.base.system.menu.dao.MenuDao;
import com.mortals.xhx.base.system.menu.model.MenuEntity;
import com.mortals.xhx.base.system.menu.model.MenuQuery;
import com.mortals.xhx.base.system.menu.model.MenuTreeSelect;
import com.mortals.xhx.base.system.menu.service.MenuService;
import com.mortals.xhx.common.code.YesNoEnum;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.util.*;
import java.util.stream.Collectors;
......@@ -52,6 +54,8 @@ public class MenuServiceImpl extends AbstractCRUDServiceImpl<MenuDao, MenuEntity
@Override
public List<MenuEntity> findTreeMenu(IUser user, Set<String> urls) throws AppException {
//todo 重新写 菜单树 通过角色获取菜单
Set<Long> authIds = new HashSet<>();
Map<Long, MenuEntity> menuMap = new HashMap<Long, MenuEntity>();
List<MenuEntity> userModuleList = this.findAllEnable();
......@@ -118,7 +122,6 @@ public class MenuServiceImpl extends AbstractCRUDServiceImpl<MenuDao, MenuEntity
@Override
public void upOrDown(Long id, Integer type) {
MenuQuery query = new MenuQuery();
query.setOrderColList(Arrays.asList(new OrderCol("orderId")));
query.setOrderKind(OrderCol.ASCENDING);
......@@ -173,11 +176,81 @@ public class MenuServiceImpl extends AbstractCRUDServiceImpl<MenuDao, MenuEntity
MenuQuery query = new MenuQuery();
query.setParentId(entity.getParentId());
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 -> {
e=e+1;
e = e + 1;
entity.setOrderId(e);
});
super.saveBefore(entity, context);
}
@Override
public boolean hasChildByMenuId(Long menuId) {
List<MenuEntity> list = this.find(new MenuQuery().parentId(menuId));
return list.size() > 0 ? true : false;
}
@Override
public List<MenuTreeSelect> buildMenuTreeSelect(List<MenuEntity> list) {
List<MenuEntity> returnList = new ArrayList<>();
List<Long> tempList = list.stream().map(MenuEntity::getId).collect(Collectors.toList());
for (Iterator<MenuEntity> iterator = list.iterator(); iterator.hasNext(); ) {
MenuEntity menuEntity = iterator.next();
if (!tempList.contains(menuEntity.getParentId())) {
recursionFn(list, menuEntity);
returnList.add(menuEntity);
}
}
if (returnList.isEmpty()) {
returnList = list;
}
return returnList.stream().map(MenuTreeSelect::new).collect(Collectors.toList());
}
/**
* 递归列表
*/
private void recursionFn(List<MenuEntity> list, MenuEntity t) {
// 得到子节点列表
List<MenuEntity> childList = getChildList(list, t);
t.setChildren(childList);
for (MenuEntity tChild : childList) {
if (hasChild(list, tChild)) {
recursionFn(list, tChild);
}
}
}
/**
* 判断是否有子节点
*/
private boolean hasChild(List<MenuEntity> list, MenuEntity t) {
return getChildList(list, t).size() > 0 ? true : false;
}
/**
* 得到子节点列表
*/
private List<MenuEntity> getChildList(List<MenuEntity> list, MenuEntity t) {
return list.stream().map(item -> {
if (!ObjectUtils.isEmpty(item.getParentId()) && item.getParentId() == t.getId()) {
return item;
}
return null;
}).filter(f -> f != null).collect(Collectors.toList());
}
@Override
public List<MenuTreeSelect> getListByParentId(Long parentId, Context context) {
if (ObjectUtils.isEmpty(parentId)) {
parentId = 0L;
}
//只做一层
List<MenuTreeSelect> collect = this.find(new MenuQuery().parentId(parentId), context).stream().map(item -> new MenuTreeSelect(item)
).collect(Collectors.toList());
return collect;
}
}
\ No newline at end of file
......@@ -8,6 +8,8 @@ import com.mortals.framework.model.OrderCol;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.menu.model.MenuQuery;
import com.mortals.xhx.base.system.menu.model.MenuTreeSelect;
import com.mortals.xhx.common.code.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
......@@ -15,11 +17,6 @@ import org.springframework.web.bind.annotation.*;
import com.mortals.framework.web.BaseCRUDJsonMappingController;
import com.mortals.xhx.base.system.menu.model.MenuEntity;
import com.mortals.xhx.base.system.menu.service.MenuService;
import com.mortals.xhx.common.code.DataSatus;
import com.mortals.xhx.common.code.MenuAuthType;
import com.mortals.xhx.common.code.MenuComm;
import com.mortals.xhx.common.code.MenuLinkType;
import com.mortals.xhx.common.code.MenuType;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
......@@ -28,12 +25,13 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.mortals.framework.ap.SysConstains.RESULT_KEY;
/**
* 菜单信息
*
* @author: zxfei
* @date: 2021/11/30 10:02
* @date: 2024/9/6 16:23
*/
@RestController
@RequestMapping("menu")
......@@ -46,21 +44,19 @@ public class MenuController extends BaseCRUDJsonBodyMappingController<MenuServic
@Override
protected void doListBefore(MenuEntity query, Map<String, Object> model, Context context) throws AppException {
List<OrderCol> orderColList = new ArrayList<OrderCol>();
orderColList.add(new OrderCol("parentId"));
List<OrderCol> orderColList = new ArrayList<>();
orderColList.add(new OrderCol("orderId"));
query.setOrderColList(orderColList);
}
@Override
protected void init(Map<String, Object> model, Context context) {
Map<String, Object> status = new HashMap<String, Object>();
status.put("status", DataSatus.getEnumMap(DataSatus.CLOSE.getValue(), DataSatus.DELETE.getValue(), DataSatus.OVERDUE.getValue(), DataSatus.USEOUT.getValue()));
status.put("linkType", MenuLinkType.getEnumMap());
status.put("commMenu", MenuComm.getEnumMap());
status.put("menuType", MenuType.getEnumMap());
status.put("authType", MenuAuthType.getEnumMap());
model.put(KEY_RESULT_DICT, status);
this.addDict(model, "linkType", LinkTypeEnum.getEnumMap());
this.addDict(model, "commMenu", CommMenuEnum.getEnumMap());
this.addDict(model, "menuType", MenuTypeEnum.getEnumMap());
this.addDict(model, "authType", AuthTypeEnum.getEnumMap());
this.addDict(model, "visible", VisibleEnum.getEnumMap());
this.addDict(model, "status", StatusEnum.getEnumMap());
}
/**
......@@ -114,4 +110,54 @@ public class MenuController extends BaseCRUDJsonBodyMappingController<MenuServic
}
return ret.toJSONString();
}
/**
* 获取站点下拉树列表
*/
@ApiOperation(value = "菜单树列表")
@PostMapping("treeselect")
public String treeselect() {
Map<String, Object> model = new HashMap<>();
JSONObject ret = new JSONObject();
String busiDesc = "查询" + this.getModuleDesc();
int code = VALUE_RESULT_SUCCESS;
try {
List<MenuEntity> list = this.service.find(new MenuQuery());
List<MenuTreeSelect> treeSelects = this.service.buildMenuTreeSelect(list);
model.put("result", treeSelects);
recordSysLog(request, busiDesc + " 【成功】");
} catch (Exception e) {
code = VALUE_RESULT_FAILURE;
this.doException(request, busiDesc, model, e);
}
ret.put(KEY_RESULT_DATA, model);
ret.put(KEY_RESULT_CODE, code);
return ret.toJSONString();
}
/**
* 根据parentId查询子信息
*/
@ApiOperation(value = "根据parentId查询子信息")
@GetMapping(value = "getListByParentId")
public String getListByParentId(Long parentId) {
JSONObject ret = new JSONObject();
Map<String, Object> model = new HashMap<>();
String busiDesc = "查询" + this.getModuleDesc() + "子节点";
try {
List<MenuTreeSelect> treeList = this.service.getListByParentId(parentId, getContext());
model.put(RESULT_KEY, treeList);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
ret.put(KEY_RESULT_DATA, model);
recordSysLog(request, busiDesc + "【成功】");
} catch (Exception e) {
log.error("根据parentId查询子信息错误", e);
this.doException(request, busiDesc, model, e);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_MSG, e.getMessage());
}
return ret.toJSONString();
}
}
\ No newline at end of file
......@@ -67,8 +67,8 @@ public class ResourceServiceImpl extends AbstractCRUDServiceImpl<ResourceDao, Re
if (StringUtils.isEmpty(url)) {
continue;
}
url = url.replaceAll(",", ",");
urls.addAll(StringUtils.converStr2Set(url));
urls.add(url);
// url = url.replaceAll(",", ",");
}
return urls;
}
......
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