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.
17 lines
1.9 KiB
17 lines
1.9 KiB
|
5 days ago
|
# 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 命名策略(命名检查清单)
|