From 14900ee3d583e2d96da5c67770d4f30f8fac5969 Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期一, 09 十二月 2024 14:11:59 +0800
Subject: [PATCH] 1.小程序菜单
---
src/main/java/com/mzl/flower/service/system/AppMenuService.java | 99 +++++++++++++++++++++++++++++++++++++++++--------
src/main/java/com/mzl/flower/web/system/AppMenuController.java | 14 +++++++
src/main/java/com/mzl/flower/constant/Constants.java | 3 +
3 files changed, 100 insertions(+), 16 deletions(-)
diff --git a/src/main/java/com/mzl/flower/constant/Constants.java b/src/main/java/com/mzl/flower/constant/Constants.java
index 71b4fb4..fb4ba06 100644
--- a/src/main/java/com/mzl/flower/constant/Constants.java
+++ b/src/main/java/com/mzl/flower/constant/Constants.java
@@ -12,6 +12,9 @@
public static final String DEFAULT_MEMBER_ID = "1"; //默认会员等级
+ public static final String DEFAULT_SUB_ACCOUNT_PARTNER = "partner"; //合伙人子账号权限根路径
+ public static final String DEFAULT_SUB_ACCOUNT_SUPPLIER = "supplier"; //供应商子账号权限根路径
+
/**
* 审核结果
diff --git a/src/main/java/com/mzl/flower/service/system/AppMenuService.java b/src/main/java/com/mzl/flower/service/system/AppMenuService.java
index 670978a..da65865 100644
--- a/src/main/java/com/mzl/flower/service/system/AppMenuService.java
+++ b/src/main/java/com/mzl/flower/service/system/AppMenuService.java
@@ -9,6 +9,7 @@
import com.mzl.flower.dto.response.system.AppMenuDTO;
import com.mzl.flower.dto.response.system.AppMenuTreeDTO;
import com.mzl.flower.entity.system.AppMenu;
+import com.mzl.flower.enums.TrueOrFalseEnum;
import com.mzl.flower.mapper.system.AppMenuMapper;
import com.mzl.flower.service.BaseService;
import com.mzl.flower.utils.TreeBuilderUtil;
@@ -23,6 +24,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
@Service
@Transactional
@@ -37,12 +39,12 @@
public void addMenu(CreateAppMenuDTO dto) {
AppMenu menu = new AppMenu();
// 查找菜单名称是否已经存在
- if (menuMapper.selectCount(new QueryWrapper<AppMenu>()
- .lambda().eq(AppMenu::getMenuName, dto.getMenuName())
- .eq(AppMenu::getStatus, Constants.STATUS_ACTIVE)
- ) > 0) {
- throw new ValidationException("菜单名称已经存在");
- }
+// if (menuMapper.selectCount(new QueryWrapper<AppMenu>()
+// .lambda().eq(AppMenu::getMenuName, dto.getMenuName())
+// .eq(AppMenu::getStatus, Constants.STATUS_ACTIVE)
+// ) > 0) {
+// throw new ValidationException("菜单名称已经存在");
+// }
// 查找权限标识是否已经存在
if (menuMapper.selectCount(new QueryWrapper<AppMenu>().lambda().eq(AppMenu::getPermissionUq, dto.getPermissionUq()).eq(AppMenu::getStatus, Constants.STATUS_ACTIVE)) > 0) {
throw new ValidationException("权限标识已经存在");
@@ -84,9 +86,9 @@
if(null==menu){
throw new ValidationException("菜单不存在");
}
- if (menuMapper.selectCount(new QueryWrapper<AppMenu>().lambda().eq(AppMenu::getMenuName, dto.getMenuName()).eq(AppMenu::getStatus, Constants.STATUS_ACTIVE).ne(AppMenu::getId, menu.getId())) > 0) {
- throw new ValidationException("菜单名称已经存在");
- }
+// if (menuMapper.selectCount(new QueryWrapper<AppMenu>().lambda().eq(AppMenu::getMenuName, dto.getMenuName()).eq(AppMenu::getStatus, Constants.STATUS_ACTIVE).ne(AppMenu::getId, menu.getId())) > 0) {
+// throw new ValidationException("菜单名称已经存在");
+// }
// 查找权限标识是否已经存在
if (menuMapper.selectCount(new QueryWrapper<AppMenu>().lambda().eq(AppMenu::getPermissionUq, dto.getPermissionUq()).eq(AppMenu::getStatus, Constants.STATUS_ACTIVE).ne(AppMenu::getId, menu.getId())) > 0) {
throw new ValidationException("权限标识已经存在");
@@ -149,13 +151,7 @@
// 获取供应商菜单信息
public List<AppMenu> getPermissionMenu() {
- LambdaQueryWrapper<AppMenu> queryWrapper = new QueryWrapper<AppMenu>()
- .lambda()
- .eq(AppMenu::getStatus, Constants.STATUS_ACTIVE)
- .eq(AppMenu::getSubaccountAccessFlag,Constants.CUSTOM01.ONE.getDesc())
-// .eq(AppMenu::getPermissionUq, Constants.APP_MENU_TYPE.SUPPLIER.getDesc())
- ;
- List<AppMenu> list = menuMapper.selectList(queryWrapper);
+ List<AppMenu> list = getAppMenus();
if (!CollectionUtils.isEmpty(list)) {
@@ -168,6 +164,77 @@
return null;
}
+ private List<AppMenu> getAppMenus() {
+ LambdaQueryWrapper<AppMenu> queryWrapper = new QueryWrapper<AppMenu>()
+ .lambda()
+ .eq(AppMenu::getStatus, Constants.STATUS_ACTIVE)
+ .eq(AppMenu::getSubaccountAccessFlag,Constants.CUSTOM01.ONE.getDesc())
+// .eq(AppMenu::getPermissionUq, Constants.APP_MENU_TYPE.SUPPLIER.getDesc())
+ ;
+ List<AppMenu> list = menuMapper.selectList(queryWrapper);
+ return list;
+ }
+
+
+ public List<AppMenu> getSupplierPermissionMenu() {
+ // 获取所有订单信息
+ List<AppMenu> list = getAppMenus();
+ // 遍历list,找到appMenu的permissionUq的值为supplier的菜单
+ // 找到 permissionUq 为 supplier 的菜单
+ List<AppMenu> supplierMenus = list.stream()
+ .filter(menu -> Constants.DEFAULT_SUB_ACCOUNT_SUPPLIER.equals(menu.getPermissionUq()))
+ .collect(Collectors.toList());
+ if(!CollectionUtils.isEmpty(supplierMenus)){
+ AppMenu appMenu = supplierMenus.get(0);
+
+ // 递归查找所有子菜单
+ List<AppMenu> allChildMenus = findAllChildren(appMenu.getId(), list);
+
+ return allChildMenus;
+ }
+
+ return new ArrayList<>();
+ }
+
+ public List<AppMenu> getPartnerPermissionMenu() {
+ // 获取所有订单信息
+ List<AppMenu> list = getAppMenus();
+ // 遍历list,找到appMenu的permissionUq的值为supplier的菜单
+ // 找到 permissionUq 为 supplier 的菜单
+ List<AppMenu> supplierMenus = list.stream()
+ .filter(menu -> Constants.DEFAULT_SUB_ACCOUNT_PARTNER.equals(menu.getPermissionUq()))
+ .collect(Collectors.toList());
+ if(!CollectionUtils.isEmpty(supplierMenus)){
+ AppMenu appMenu = supplierMenus.get(0);
+
+ // 递归查找所有子菜单
+ List<AppMenu> allChildMenus = findAllChildren(appMenu.getId(), list);
+
+ return allChildMenus;
+ }
+
+ return new ArrayList<>();
+ }
+
+ /**
+ * 递归查找所有子菜单
+ *
+ * @param parentId 父菜单 ID
+ * @param allMenus 所有菜单列表
+ * @return 所有子菜单
+ */
+ public static List<AppMenu> findAllChildren(String parentId, List<AppMenu> allMenus) {
+ List<AppMenu> children = allMenus.stream()
+ .filter(menu -> parentId.equals(menu.getParentId()))
+ .collect(Collectors.toList());
+
+ List<AppMenu> allChildren = new ArrayList<>(children);
+ for (AppMenu child : children) {
+ allChildren.addAll(findAllChildren(child.getId(), allMenus));
+ }
+
+ return allChildren;
+ }
}
diff --git a/src/main/java/com/mzl/flower/web/system/AppMenuController.java b/src/main/java/com/mzl/flower/web/system/AppMenuController.java
index 870c06b..962f00f 100644
--- a/src/main/java/com/mzl/flower/web/system/AppMenuController.java
+++ b/src/main/java/com/mzl/flower/web/system/AppMenuController.java
@@ -120,4 +120,18 @@
return returnData(R.SUCCESS.getCode(), ConverterUtil.transList(menuService.getPermissionMenu(), AppMenuSimpleDTO.class));
}
+ @GetMapping("/supplier/permission/menu")
+ @ApiOperation(value = "子账号有权限的菜单")
+
+ public ResponseEntity<ReturnDataDTO<?>> getSupplierPermissionMenu(){
+ return returnData(R.SUCCESS.getCode(), ConverterUtil.transList(menuService.getSupplierPermissionMenu(), AppMenuSimpleDTO.class));
+ }
+
+ @GetMapping("/partner/permission/menu")
+ @ApiOperation(value = "子账号有权限的菜单")
+
+ public ResponseEntity<ReturnDataDTO<?>> getPartnerPermissionMenu(){
+ return returnData(R.SUCCESS.getCode(), ConverterUtil.transList(menuService.getPartnerPermissionMenu(), AppMenuSimpleDTO.class));
+ }
+
}
--
Gitblit v1.9.3