You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

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 同款形态);
  • CustomerQuickCreateParamconfirmSimilar: 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);tag A7 后台管理/客户管理设置/查重设置
  • 权限:CustomerDedupRulePermissionInitializer(@Order 19)seedModule 菜单「客户查重设置」挂「客户管理」目录(仅菜单不种子 button,与提醒规则同款)。

B · QuickCreateDTO.confirmSimilarCustomerQuickCreateDTOconfirmSimilar(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 分支)。