11
This commit is contained in:
1 parent
cb74d0563f
commit
d508e3f959
3 files changed
+7
-5
No files matched your search
+1
-1
@@ -21,7 +21,7 @@ public class HardCanteenUserApptDishStatisticsVo {
|
||||
@Schema(description = "菜品名称")
|
||||
private String productName;
|
||||
|
||||
/** 当前同餐段、同名菜品统计项实际涉及的商品 ID;同名商品可能因重复建档包含多个 ID,历史空值不写入集合。 */
|
||||
/** 当前菜品统计项实际涉及的商品 ID;正常数据仅有一个,历史商品 ID 为空时不写入集合。 */
|
||||
@Schema(description = "商品ID集合")
|
||||
private List<Long> productIds = new ArrayList<>();
|
||||
|
||||
|
||||
+1
-1
@@ -47,7 +47,7 @@ public class HardCanteenUserApptStatisticsSummaryVo {
|
||||
@Schema(description = "餐段统计")
|
||||
private List<HardCanteenUserApptMealStatisticsVo> meals = new ArrayList<>();
|
||||
|
||||
/** 按餐段和菜品名称聚合的菜品份数。 */
|
||||
/** 按餐段和商品 ID 聚合的菜品份数;历史商品 ID 缺失时按菜品名称兜底。 */
|
||||
@Schema(description = "菜品统计")
|
||||
private List<HardCanteenUserApptDishStatisticsVo> dishes = new ArrayList<>();
|
||||
}
|
||||
+5
-3
@@ -1076,7 +1076,7 @@ public class HardCanteenApptTotalServiceImpl implements HardCanteenApptTotalServ
|
||||
/** 餐段编码到餐段聚合结果的有序映射。 */
|
||||
private final Map<String, MealStatisticsAccumulator> meals = new LinkedHashMap<>();
|
||||
|
||||
/** 餐段和菜品名称到菜品聚合结果的有序映射。 */
|
||||
/** 餐段和商品身份到菜品聚合结果的有序映射;商品 ID 缺失时使用名称兼容历史数据。 */
|
||||
private final Map<String, DishStatisticsAccumulator> dishes = new LinkedHashMap<>();
|
||||
|
||||
/**
|
||||
@@ -1120,7 +1120,9 @@ public class HardCanteenApptTotalServiceImpl implements HardCanteenApptTotalServ
|
||||
dishCount += count;
|
||||
meal.dishCount += count;
|
||||
String productName = normalize(car.getProductName(), "未命名菜品");
|
||||
String dishKey = hourType + "\u0000" + productName;
|
||||
// 同一商品的历史名称快照可能带有空格或不可见字符,优先按商品 ID 聚合可避免页面出现同 ID 重复行。
|
||||
String productKey = car.getProductId() == null ? "name:" + productName : "id:" + car.getProductId();
|
||||
String dishKey = hourType + "\u0000" + productKey;
|
||||
DishStatisticsAccumulator dish = dishes.computeIfAbsent(dishKey,
|
||||
key -> new DishStatisticsAccumulator(hourType, productName, car.getProductPic()));
|
||||
if (car.getProductId() != null) {
|
||||
@@ -1247,7 +1249,7 @@ public class HardCanteenApptTotalServiceImpl implements HardCanteenApptTotalServ
|
||||
/** 下单时固化的菜品名称。 */
|
||||
private final String productName;
|
||||
|
||||
/** 同餐段、同名菜品实际涉及的商品 ID,保留首次出现顺序并去重,便于排查同名商品重复建档。 */
|
||||
/** 当前统计项实际涉及的商品 ID,正常数据仅有一个;集合结构兼容历史无 ID 的名称兜底聚合。 */
|
||||
private final Set<Long> productIds = new LinkedHashSet<>();
|
||||
|
||||
/** 下单时固化的菜品图片地址;同名菜品聚合时保留首个非空值。 */
|
||||
|
||||
Reference in new issue
Block a user