feat(large_data): 造数与选参改为真实数据源驱动,新增机会点造数模块
youth_map/model_capacity_detail_shop_page/context:
- 容量模型 ID 改读青春版 defaultConfig 的 modelCapacityModelConfigId, 删除 modelColors/regionAgg 猜测路径;缺失时明确失败并提示不得猜测
- 选参城市改走 branchCompanyAgg:先按分公司容量取前 3 个分公司,再取 各自城市聚合,最多尝试 3 个城市各取第一页,不再假设单城市必然有数据
- 分公司聚合为空时先回落到已造数城市(杭州),再采全局容量候选; 空聚合明确标注不等同于无权限,不放宽 pageIds 的服务端权限过滤
standard/chance_point_context:
- 商圈标记候选为空时,用已造真实机会点坐标经 chancePoint/modelCluster 匹配真实商圈,保留后端城市与适合度权限校验
- 匹配响应必须有布尔 isInCluster,格式异常直接失败;日志声明该路径 仅证明点位位于真实可见商圈,不代表圈内候选已达 2000 条
model_cluster/area_list(新 context): 从只读区域分页第一页按去重商圈数 选区县,替代运行前手工配置 ID;同一商圈返回冲突区县即失败
industry/context: 新增 resolve_largest_brand 保留品牌来源记录, 同步导出据此按真实分支确认 10000 行硬上限
standard/task_seed/seeder:
- totalNum 与明细不一致时不再直接失败:allPage 走 SQL LIMIT 无 BaseDao 截断,短页即列表读取结束,countAll 落后不能否认已返回的真实明细; 记录 reportedTotalNum/actualRecordCount 并以短页去重 ID 校验造数
- _verify_new_tasks 抽取共用,新增 verify_written_batch 只读恢复确认 (targetWrites=0,绝不重发 add/create,仍有待发起集合时拒绝确认)
- seed 新增 excluded_cluster_ids;集合回读 accountId 缺失按 Mapper 不投影 处理,返回非空但无效才失败(倒推服务端已按员工与租户过滤)
- seed_standard_tasks 新增 --exclude-cluster-ids-file 支持恢复时排除已成功批次
standard/chance_point_seed(新): 机会点造数模块(payloads/seed_chance_points)
registry: 补 3 个前置接口注册(defaultConfig、modelCluster/area/page、 chancePoint/modelCluster),与 linhuiba SDK 新增 _raw 方法一一对应
离线单测 461 -> 588 项全过