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.
1.9 KiB
1.9 KiB
01 — 客户模块骨架
What to build: 创建 crm-customer Maven 子模块并挂进根工程与 crm-app,使空壳能 mvn compile 通过、单体应用能启动、健康检查能通。后续所有客户功能都落在这个模块里;本票只交付"能跑起来的空壳",不含任何业务功能。
Blocked by: None — can start immediately.
Status: ready-for-agent
依赖方向(关键,避免 Maven 循环):crm-customer 只依赖 crm-base/crm-auth/crm-rule/crm-dict/crm-file/crm-preference。不依赖 crm-opportunity——「关联商机」反查(票 06)与「商机读客户」(票 11)均通过 customer 侧定义的出站 port 解耦,Maven 依赖只走 crm-opportunity → crm-customer 单向,循环依赖靠 Spring DI 解除。
crm-customer/pom.xml创建,dependencies:crm-base/crm-auth/crm-rule/crm-dict/crm-file/crm-preference+lombok(provided) +spring-boot-starter-test(test) +h2(test)(对称crm-opportunity/pom.xml)- 根
pom.xml<modules>加入crm-customer;crm-app/pom.xml加入<artifactId>crm-customer</artifactId> - 包结构建好:
com.crm.customer(controller / service / mapper / domain.entity / domain.enums / domain.dto / domain.param / port / query / config,对称 opportunity) - 最小可行性:
Customer实体占位(继承BaseEntity+@TableName("customer")+@Entity @Table)+ 一个GET /api/customer/ping健康接口,返回模块名/版本 - 验证:
mvn compile全工程通过;crm-app启动成功;@SpringBootApplication(scanBasePackages="com.crm")+@MapperScan("com.crm.**.mapper")+@EntityScan("com.crm")自动扫到 customer 的 controller/mapper/实体 - 源码规范:所有
.java为 UTF-8 无 BOM(AGENTS.md);无孤立单大写字母触发 Hibernate 命名策略(命名检查清单)