- 为 CmsContactLead 实体的 name 和 phone 加入 @NotBlank、@Size 及 @Pattern 校验 - 规范 company、delivery、need、source、ip 字段长度限制,防止数据异常 - 在提交服务中新增 sanitizePhone 方法,清除手机号中的空格、横线及括号等分隔符 - 扩展数据库中 phone 字段长度到 VARCHAR(32),支持国际及带分机号格式 - 更新数据库中 name、company、need 字段长度,避免未来数据截断风险 - 补充项目长期记忆文件,记录技术栈及该修复详情
17 lines
901 B
Markdown
17 lines
901 B
Markdown
# 项目长期记忆
|
||
|
||
## 项目技术栈
|
||
- 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)
|