kong
2026-04-12 e62b24da90d324032754b70c7a059258dc6321ce
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
42
43
44
45
package com.xiaopeng.api.enums;
 
import lombok.Getter;
 
/**
 * 路线策略(与高德 strategy 参数对应,见 xp_route_plan 注释)
 */
@Getter
public enum RouteStrategyKind {
    /** 智能推荐 / 高德默认 */
    SMART(32, "智能推荐", 1),
    /** 时间优先 → 速度最快 */
    TIME(38, "时间优先", 2),
    /** 低价优先 → 少收费 */
    PRICE(36, "低价优先", 3);
 
    private final int amapStrategy;
    private final String displayName;
    private final int priority;
 
    RouteStrategyKind(int amapStrategy, String displayName, int priority) {
        this.amapStrategy = amapStrategy;
        this.displayName = displayName;
        this.priority = priority;
    }
 
    /**
     * 主标签优先级:数值越小越优先(智能 > 时间 > 低价)
     */
    public static RouteStrategyKind primaryOf(java.util.Collection<RouteStrategyKind> kinds) {
        if (kinds == null || kinds.isEmpty()) {
            return SMART;
        }
        return kinds.stream().min((a, b) -> Integer.compare(a.priority, b.priority)).orElse(SMART);
    }
 
    public static java.util.Optional<RouteStrategyKind> fromAmapStrategy(int strategy) {
        for (RouteStrategyKind k : values()) {
            if (k.amapStrategy == strategy) {
                return java.util.Optional.of(k);
            }
        }
        return java.util.Optional.empty();
    }
}