package com.ruoyi.satisfaction.service.strategy; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; /** * 满意度「站点口径」标识。 *
* 本模块用策略区分两套满意度口径(见 {@link SatisfactionScoreStrategy}): *
| 站点 | 标识 | 口径 |
|---|---|---|
| 通用(南华使用;同德也复用其中的 4 个通用端点) | *{@link #COMMON}({@code "common"},别名 {@code "nanhua"}) | *{@link CommonSatisfactionScoreStrategy}:按明细的 {@code score} 字段求平均(分母含分值为空的行) | *
| 省立同德 | *{@link #SLTD}({@code "sltd"}) | *{@link SltdSatisfactionScoreStrategy}:按选项< b>文案判定五档并加权(1/0.8/0.6/0.4/0.2),百分制 | *
* 为什么两套口径必须分开:同德的历史数据里 {@code score} 有 {@code 0}、{@code 0000000001}
* 这类脏值,按 {@code score} 求平均会把得分固定成 0 或 100,所以同德只能按选项文案判档;
* 而通用口径的南华数据没有这个问题,改用文案判档反而会让结果与迁移前不一致。
* 因此这里不做"统一算法",而是用策略显式区分。
*/
public final class SatisfactionSites {
/**
* 通用口径(南华使用,同德的 4 个通用端点也走它)
*/
public static final String COMMON = "common";
/**
* 省立同德口径
*/
public static final String SLTD = "sltd";
/**
* 站点别名 → 规范站点标识(南华没有独占口径,归到通用口径)
*/
private static final Map