package cn.iocoder.yudao.module.system.controller.admin.auth; import cn.iocoder.yudao.module.system.controller.admin.auth.vo.AuthPermissionInfoRespVO.MenuVO; import java.util.ArrayList; import java.util.List; import java.util.Map; /** Maps already-authorized, visible menus to implemented mobile pages. Does not grant permissions. */ public final class MobileMenuAdapter { private MobileMenuAdapter() { } private static final Map PAGES = Map.of( "mes/pro/scan-in/index", "inbound", "mes/pro/bagCode/index", "bags", "mes/pro/pallet/index", "pallets", "mes/pro/batch/index", "batches", "wls/materialstock/index", "stock", "mes/qc/seedQuality/index", "quality", "mes/qc/seedQuality/record", "quality-records", "wls/productsales/index", "sales"); public static List adapt(List menus) { List result = new ArrayList<>(); collect(menus, result); return result; } private static void collect(List menus, List result) { if (menus == null) return; for (MenuVO menu : menus) { if (!Boolean.TRUE.equals(menu.getVisible())) continue; String component = menu.getComponent(); String key = component == null ? null : PAGES.get(component.replaceFirst("^/", "")); if (key != null) { result.add(MenuVO.builder().id(menu.getId()).parentId(0L).name(menu.getName()) .path("/mobile/" + key).component("mobile/" + key).visible(true) .keepAlive(false).alwaysShow(false).build()); } collect(menu.getChildren(), result); } } }