修复时间: 2025-01-21 15:30:00
修复人员: Cursor AI
问题类型: 前后端数据一致性问题
影响模块: 学生信息管理 - 家庭信息编辑功能
文件: web/src/api/xg-xx/student.ts
问题: 前端API接口类型定义中的字段名称与后端实体类不匹配
原字段名(❌ 错误):
emergencyContact?: string // 应该是 emergencyContactName
emergencyPhone?: string // 应该是 emergencyContactPhone
emergencyRelation?: string // 应该是 emergencyContactRelation
正确字段名(✅ 修复后):
emergencyContactName?: string
emergencyContactPhone?: string
emergencyContactRelation?: string
fatherName?: string
fatherPhone?: string
fatherWorkUnit?: string
motherName?: string
motherPhone?: string
motherWorkUnit?: string
familyIncome?: string
familyEconomicStatus?: string
familyMembers?: number
文件: backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/domain/XgStudentInfo.java
问题: 部分家庭信息字段缺少 updateStrategy = FieldStrategy.IGNORED 配置
修复字段:
@TableField(value = "family_income", updateStrategy = FieldStrategy.IGNORED)
private String familyIncome;
@TableField(value = "family_economic_status", updateStrategy = FieldStrategy.IGNORED)
private String familyEconomicStatus;
@TableField(value = "family_members", updateStrategy = FieldStrategy.IGNORED)
private Integer familyMembers;
文件: backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/domain/bo/XgStudentInfoBo.java
问题: 缺少 familyEconomicStatus 字段定义
修复内容:
/**
* 家庭经济状况
*/
@Size(max = 20, message = "家庭经济状况长度不能超过20个字符")
private String familyEconomicStatus;
文件: web/src/views/xg-xx/studentInfo/components/StudentEditDialog.vue
问题: 前端表单中缺少 familyEconomicStatus 字段的表单项
修复内容:
<el-col :span="12">
<el-form-item label="家庭经济状况" prop="familyEconomicStatus">
<el-select v-model="form.familyEconomicStatus" placeholder="请选择家庭经济状况" style="width: 100%">
<el-option label="富裕" value="富裕" />
<el-option label="一般" value="一般" />
<el-option label="困难" value="困难" />
<el-option label="贫困" value="贫困" />
</el-select>
</el-form-item>
</el-col>
文件: web/src/api/xg-xx/student.ts
修复内容:
emergencyContact 改为 emergencyContactNameemergencyPhone 改为 emergencyContactPhoneemergencyRelation 改为 emergencyContactRelationfatherName, fatherPhone, fatherWorkUnit 字段motherName, motherPhone, motherWorkUnit 字段familyIncome, familyEconomicStatus, familyMembers 字段文件: backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/domain/XgStudentInfo.java
修复内容: 为以下字段添加 updateStrategy = FieldStrategy.IGNORED 配置
family_incomefamily_economic_statusfamily_members文件: backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/domain/bo/XgStudentInfoBo.java
修复内容: 添加缺失的 familyEconomicStatus 字段定义
文件: web/src/views/xg-xx/studentInfo/components/StudentEditDialog.vue
修复内容: 添加 familyEconomicStatus 字段的表单项
-- 紧急联系人信息
emergency_contact_name varchar(50)
emergency_contact_phone varchar(20)
emergency_contact_relation varchar(20)
-- 父母信息
father_name varchar(50)
father_phone varchar(20)
father_work_unit varchar(100)
mother_name varchar(50)
mother_phone varchar(20)
mother_work_unit varchar(100)
-- 家庭经济信息
family_income varchar(20)
family_economic_status varchar(20)
family_members tinyint(2)
@TableField 注解一致-- 查询现有数据验证
SELECT id, student_no, name, father_name, mother_name, emergency_contact_name,
family_income, family_economic_status, family_members
FROM xg_student_info
WHERE deleted = 0 AND (father_name IS NOT NULL OR mother_name IS NOT NULL)
LIMIT 1;
-- 结果示例
+---------------------+------------+--------+-------------+-------------+------------------------+-------------+------------------------+----------------+
| id | student_no | name | father_name | mother_name | emergency_contact_name | family_income | family_economic_status | family_members |
+---------------------+------------+--------+-------------+-------------+------------------------+-------------+------------------------+----------------+
| 1745003000000000001 | 202101001 | 张三 | 张建国 | 李美华 | NULL | 10-15万 | NULL | 4 |
+---------------------+------------+--------+-------------+-------------+------------------------+-------------+------------------------+----------------+
updateStrategy = FieldStrategy.IGNOREDdocs/开发文档/API/学生信息管理API.mddocs/设计文档/database/mysql-database-standard.md.cursor/cursorrules-frontend.md.cursor/cursorrules-backend.md修复状态: ✅ 已完成
验证状态: ✅ 已验证
部署状态: ⏳ 待部署(需要重新编译和重启服务)