云
22 小时以前 704265308b1227dbada5a36b2027b588c062ded2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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<String, String> 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<MenuVO> adapt(List<MenuVO> menus) {
        List<MenuVO> result = new ArrayList<>();
        collect(menus, result);
        return result;
    }
 
    private static void collect(List<MenuVO> menus, List<MenuVO> 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);
        }
    }
}