陶杰
2024-12-09 14900ee3d583e2d96da5c67770d4f30f8fac5969
1.小程序菜单
已修改3个文件
116 ■■■■ 文件已修改
src/main/java/com/mzl/flower/constant/Constants.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/service/system/AppMenuService.java 99 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/web/system/AppMenuController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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"; //供应商子账号权限根路径
    /**
     * 审核结果
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;
    }
}
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));
    }
}