package com.ruoyi.satisfaction.domain.row;
|
|
import lombok.Data;
|
|
/**
|
* 满意度分类只读视图(语音侧与问卷侧共用)。
|
* <p>
|
* 为什么共用一个类:语音的 {@code ivr_liba_script_assort} 与问卷的
|
* {@code svy_lib_script_category} 在满意度统计里语义完全一致——
|
* 都是「一个满意度分类:id + 名称 + type」,调用方只用来
|
* 「按 {@code type.contains("myd")} 过滤出分类 id、并按名称分组」。
|
* <p>
|
* 两表的原始列名不同,SQL 里已做别名归一:
|
* <ul>
|
* <li>语音:{@code index_assort_name as name}</li>
|
* <li>问卷:{@code name}(列名本来就是 name)</li>
|
* </ul>
|
* <p>
|
* ⚠️ 这是<b>只读</b>视图。
|
*/
|
@Data
|
public class SatisfactionCategoryRow {
|
|
/**
|
* 分类 id
|
*/
|
private Long id;
|
|
/**
|
* 分类名称
|
* <p>注意:分类口径统计是按「模板上的分类名」({@code script_assortname} /
|
* {@code categoryName})分组,而不是用本字段;本字段主要用于建分类 id → 名称的映射。
|
*/
|
private String name;
|
|
/**
|
* 分类类型(满意度固定为 myd 相关,调用方按 contains("myd") 过滤)
|
*/
|
private String type;
|
|
/**
|
* 对应列 {@code pid}:父分类 id(顶层为 {@code null} 或 {@code -1})。
|
* <p>
|
* 用途:{@code /smartor/trace/getSatisfactionExceptConfigQuestion} 走的是
|
* 语音分类的<b>服务方法</b> {@code IvrLibaScriptAssortServiceImpl.selectIvrLibaScriptAssortList},
|
* 该方法会把分类拼成树、<b>只返回顶层节点</b>({@code pid == null || pid == -1}),
|
* 所以调用方必须用本字段做同样的顶层筛选才能与原文一致。
|
* <p>
|
* 语音侧与问卷侧都取了本列,但<b>只有语音侧</b>需要按它筛顶层——
|
* 问卷侧原文直接用 {@code svyLibScriptCategoryMapper} 取全部分类(不拼树),
|
* 两侧不一致是原文行为,必须保留。
|
*/
|
private Long pid;
|
}
|