4.1 KiB
04 · 已知缺口:查重设置页端点 + QuickCreate.confirmSimilar
- Status: resolved
- Type: task
- Blocked by: 02-style-unify
目标
两个规格内小缺口补齐(R8)。
A. 查重设置页端点(a7-3-3-2 前端页面无接口支撑)
- crm-rule 新增
GET /api/rule/customer/dedup(读当前配置)+POST /api/rule/customer/dedup/save(表单绑定); - 配置实体复用既有 DedupRule 单例(票09 已做服务端种子),对称
CustomerReminderRuleController改造后形态; - 权限:客户管理设置菜单权限点(与提醒规则同款);
- tag:
A7 后台管理/客户管理设置/查重设置。
B. QuickCreateDTO 加 confirmSimilar
- 商机弹窗快建客户命中相似客户时"仍要创建"透传字段(D3 已有 confirmPhone 同款形态);
CustomerQuickCreateParam加confirmSimilar: Boolean(默认 false),命中相似且未确认 → 仍抛 670xx 提示码(沿用既有 check-name 口径)。
验收
- 两模块 mvn test 绿,新端点有单测;
- API-SUMMARY §5 已知缺口清单这两条销账。
Answer
A · 查重设置页端点 — 已实施,票面前提修正:crm-rule 内并不存在"既有 DedupRule 单例"(票面所引"票09 已做服务端种子"未落地,DefaultCustomerDedupSettingProvider 注释即言"单例未建前给出厂值"),故按对称 reminder 范式从零建栈:
- 单例
customer_dedup_rule(单行 id=1)五字段:masterEnabled(总开关仅控名称/电话)/ nameEnabled + nameMatchMode(1 精确 2 模糊)+ similarityThreshold(0–100,出厂 80)/ phoneEnabled;统一社会信用代码为系统强制规则,无配置列、消费侧恒开(a7-3-3-2 §3)。 CustomerDedupRuleInitializer(@Order 20)首装种子(全开+模糊+80,幂等键=单例行存在);保存=全量覆盖即生效,校验 matchMode∈{1,2}、threshold∈[0,100] → 64023,开关缺省→0、方式缺省→模糊、阈值缺省→80。- 契约
GET /api/rule/customer/dedup+POST /api/rule/customer/dedup/save(表单绑定,零 @RequestBody/PutMapping);tagA7 后台管理/客户管理设置/查重设置。 - 权限:
CustomerDedupRulePermissionInitializer(@Order 19)seedModule 菜单「客户查重设置」挂「客户管理」目录(仅菜单不种子 button,与提醒规则同款)。
B · QuickCreateDTO.confirmSimilar — CustomerQuickCreateDTO 加 confirmSimilar(Boolean,默认 false),quickCreate 经既有 copyProperties 透传进 create 链路;命中相似且未确认 → needConfirm=true + similarHits(未落库)。票面两处引用勘误:① "confirmPhone 同款形态(D3)"——全仓无 confirmPhone,上游图 D3 为客户双轴建模,实际参照 CustomerCreateDTO.confirmSimilar 既有形态;② "仍抛 670xx 提示码"——按既有 check-name 口径实施为 needConfirm 返回(非异常),R8 原文即"透传"。
消费侧(上游 D4-rev2 拍板 B):RuleBackedCustomerDedupSettingProvider(@Primary)读单例驱动 seam——master∧单项→名称/电话开关、阈值/匹配方式透传、单例缺失回退 Default 出厂值;新增 CustomerNameMatchMode 枚举 + CustomerDedupService EXACT 分支(trim + 大小写不敏感全等,LIMIT 20,复用 mapHits 可见性脱敏;标准化全套随 D21 迭代)。匹配方式消费边界 = 新增/编辑内建查重(导入路径维持模糊,D4-rev2 范围外)。
测试与验收:mvn test -pl crm-customer,crm-rule -am 全绿——crm-rule 152(+6:ServiceImpl 4 + Initializer 2)、crm-customer 144(+9:Provider 映射 6 + quickCreate needConfirm/confirm 集成 2 + 精确模式 1);BOM 扫描 clean。API-SUMMARY §2.12 重写(reminder + dedup 两栈)、§2.3/§2.4 更新、§5 缺口 1/2 销账;crm-rule/CONTEXT.md 新增「客户查重设置」段。
中途修复:Provider 漏 import lombok.RequiredArgsConstructor(mvn 编译期暴露);单例缺失分支漏 fallback 兜底(singletonMissing 用例红 → 两个开关方法补 fallback 分支)。