# 项目长期记忆

## 项目技术栈
- Spring Boot 2.x + Spring Security 5.7.11 + MyBatis-Plus 3.4.1 + Druid + MySQL
- 验证框架: JSR-303 (javax.validation)，通过 spring-boot-starter-web 间接引入，无需额外声明
- 多租户架构: 表普遍有 tenant_id 字段，定时任务需遍历所有租户
- SQL 迁移文件惯例: docs/sql/YYYY-MM-DD_描述.sql
- 实体软删除: @TableLogic + deleted 字段
- 部署方式: Docker (cms-api 容器)

## 已知问题与修复
- 2026-07-19: cms-api 报 `Data too long for column 'phone'`
  - 根因: 公开接口 /api/cms/cms-contact-lead/submit 前端传入超长/带分隔符手机号
  - 修复: CmsContactLead 实体加 @NotBlank/@Size/@Pattern；Service 加 sanitizePhone 清洗
  - SQL: docs/sql/2026-07-19_cms_contact_lead_phone_resize.sql (phone 扩到 VARCHAR(32))
- 前端 bug: id=NaN 传入后端，需前端判空 (Number.isNaN)
