luoweijian
|
3504604b0d
|
commit
|
2 weeks ago |
luoweijian
|
51902312fc
|
commit
|
2 weeks ago |
luoweijian
|
7415f1e209
|
docs(adr): 补 ADR-0031 ConvertibleLeadCatalogPort seam + crm-lead CONTEXT 术语
Candidate #2 代码审查(/code-review)收尾:实现(8329911)已落且双轴通过,
但通篇引用的 ADR-0031 从未写下(悬空引用,5+ 文件)。本次补齐:
- docs/adr/0031:记录 crm-lead 声明并自实现的窄 inbound port(收窄 ADR-0029
的 ILeadService 泄漏),与 ADR-0025 PoolLeadOccupationPort 方向相反的同型 seam
- crm-lead/CONTEXT.md:新增「可转商机候选线索目录端口」术语
|
2 weeks ago |
luoweijian
|
83299113e7
|
refactor(lead/opportunity): ConvertibleLeadCatalogPort 收窄跨域契约(架构审查候选2)
- crm-lead 新增 port/inbound:ConvertibleLeadCatalogPort(单方法)+
ConvertibleLeadView(随端口同包)+ ConvertibleLeadCatalogPortImpl
(逻辑自 LeadServiceImpl 原样迁入,票 12 口径不变)
- 删 ILeadService.listConvertibleLeads + LeadServiceImpl 实现 +
domain/dto/ConvertibleLeadView + LeadConvertibleQueryTest
(宽服务接口不再挂为外域服务的方法,商机侧不再 import ILeadService)
- 商机侧 4 处改注入端口:CreateServiceImpl / IOpportunityCreateService /
CreateController / 测试;占用过滤(查 opportunity.source_lead_id)留商机侧
- 验证:crm-lead 119 + crm-opportunity 165 全绿
|
2 weeks ago |
luoweijian
|
70e2e35f68
|
feat(opportunity): 票12 商机侧直接新建入口(A3-1-1-2-1)后端补齐
前误判纠正:此前 map 将票12标已落,实为仅验了转商机 port 路径;
本轮补齐商机侧独立新建入口后端(此前一行未写):
- crm-lead: ILeadService.listConvertibleLeads(ownerUserId) 返 status IN(3,4)
候选线索轻量视图 ConvertibleLeadView(准入规则留线索域,架构甲)
- crm-opportunity: CreateOpportunityRequest + IOpportunityCreateService + Impl
+ OpportunityCreateController(POST /api/opportunity, GET /convertible-leads)
- oppSource=opp_source_01(线索转入) → sourceLeadId 必填校验
- source_lead_id 唯一性预检 + DB uk 并发防线(转译业务异常)
- 建商机核心(主表+阶段落位+初始日志+团队成员)两条入口对称,
日志描述「直接创建商机」/opSource=USER 区别于转商机
- 候选下拉商机侧补「未被占用」过滤(剔除已在 opp 表占用的 lead)
crm-lead 119 + crm-opportunity 161 全绿,无 BOM。
前端【关联线索/客户】下拉交互 + A4 客户数据源仍在本仓库外。
|
2 weeks ago |
luoweijian
|
e4e4cc2347
|
fix(opportunity): 转商机契约补省市两级地区,修丢字段脏数据
根因:转商机命令 CreateOpportunityCmd 只带单个 regionCode,而源头线索与
目的地商机主表都存 provinceCode+cityCode 两级(均 not null)。命令丢了一
级信息,商机侧被迫两列同填一个 code → 省份列存市/区 code,列表区划回显错。
这是命令契约丢信息,非缺拆分算法(两级值源头本就都有)。
修(补契约字段,非拆分):
- CreateOpportunityCmd:regionCode → provinceCode + cityCode
- ConvertOpportunityParam:同拆两字段(转商机弹窗地区选择器本就省市两级)
- LeadServiceImpl:必填校验拆两字段 + 组装 cmd 透传 param 的省/市
- OpportunityCreationPortImpl:分别 set 两列,删同填占位与「省市拆分待专票」TODO
- 单测:断言省/市两级分别落库(110000/110100);既有 LeadServiceImplTest 同步拆
mvn -pl crm-opportunity -am test 152 全绿 + crm-lead 116 全绿。
|
2 weeks ago |
luoweijian
|
0e4449d75b
|
feat(lead): 票11 转商机契约加 customerId(可空占位,待A4收紧必填)
票11 步骤1-2 契约变更(走法甲:customerId 暂可空,不倒退现有自由文本转商机):
- CreateOpportunityCmd 新增 customerId(Long,暂可空);intendedCustomer 降为
客户名快照,与 customerId 并存(引用+快照,同票13走法)
- ConvertOpportunityParam 新增 customerId(前端下拉选客户得到;A4 下拉未就绪
前前端传 null)
- LeadServiceImpl 组装 cmd 时透传 param.getCustomerId()
A4 客户下拉就绪后把 customerId 收紧为必填(终态契约,一处校验)。
mvn -pl crm-lead -am test 116 全绿。
|
2 weeks ago |
luoweijian
|
6583863b49
|
commit
|
2 weeks ago |
luoweijian
|
3d0699df6f
|
commit
|
3 weeks ago |
luoweijian
|
162ecbf9d2
|
commit
|
3 weeks ago |
luoweijian
|
ea212fa8b6
|
feat: 字典种子对齐蓝湖原型——lead_source 改渠道 38 项并新增 brand/product/scene(frontend-integration 票据 02)
|
3 weeks ago |
luoweijian
|
1d6c9c6d7a
|
commit
|
3 weeks ago |
luoweijian
|
dfd1fc6f01
|
commit
|
3 weeks ago |
luoweijian
|
70b53de34c
|
commit
|
3 weeks ago |
luoweijian
|
3277f701de
|
commit
|
3 weeks ago |
luoweijian
|
b345c4dc7b
|
commit
|
3 weeks ago |