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

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-customercrm-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 命名策略(命名检查清单)