# 项目长期记忆 ## 项目技术栈 - 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)