# 2026-07-19 工作日志 ## cms-api phone 字段超长报错修复 - **问题**: cms-api 容器报 `com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column 'phone' at row 1` - **根因**: 公开接口 `/api/cms/cms-contact-lead/submit` (官网联系表单,无需登录) 前端传入超长/带分隔符的手机号,直接写入 MySQL 触发截断异常 - **影响**: 用户提交联系表单失败,销售线索丢失;公开接口易被刷 - **修复**: 1. `CmsContactLead.java` 实体加 JSR-303 校验: name/phone 加 @NotBlank+@Size+@Pattern,company/delivery/need/source/ip 加 @Size 2. `CmsContactLeadServiceImpl.submit()` 加 `sanitizePhone()` 清洗逻辑: 去空格/横线/括号,仅保留 + 和数字 3. 新增 SQL 迁移: `docs/sql/2026-07-19_cms_contact_lead_phone_resize.sql`,phone 扩到 VARCHAR(32),同步放宽 name/company/need ## 关联问题(未修复,需前端处理) - 日志中 `参数类型转换异常: 参数名=id, 传入值=NaN, 期望类型=Integer`:前端 JS 把 NaN 拼到 URL 调用 `@GetMapping("/{id}")`,需前端判空 - `定时任务需要查询所有租户的超时订单 list = 0`:正常 INFO 日志,非错误 ## 修改的文件 - src/main/java/com/gxwebsoft/cms/entity/CmsContactLead.java - src/main/java/com/gxwebsoft/cms/service/impl/CmsContactLeadServiceImpl.java - docs/sql/2026-07-19_cms_contact_lead_phone_resize.sql (新增)