You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.5 KiB
4.5 KiB
PHP后端开发任务记录
最新完成任务 ✅
完整实现个人资料接口功能 (2025-07-29)
任务描述
根据前端 uniapp/TASK.md 中完成的个人资料页面,实现对应的后端API接口,支持员工个人资料的查看和编辑功能。
实现内容
1. 扩展API接口功能
- 接口路径:
GET /api/personnel/info- 获取员工个人资料POST /api/personnel/edit- 更新员工个人资料
2. 数据库表支持
- 基础信息表:
school_personnel- 包含:姓名、性别、生日、电话、邮箱、微信号、学历、家庭住址、祖籍、个人简介、应急联系人电话、身份证正反面等
- 详细信息表:
school_personnel_info- 包含:花名、门店、民族、年龄、司龄、转正时间、是否转正、政治面貌、毕业院校、专业、毕业时间、婚姻状况、银行卡号、开户行、备注等
3. 技术实现
-
PersonnelService扩展:
- 修改
info方法:同时查询两个表,返回包含info对象的完整数据 - 修改
edit方法:使用事务同时更新两个表的数据 - 添加PersonnelInfo模型引用
- 修改
-
Personnel控制器优化:
- 修改
edit方法:支持接收完整的数据结构,包括info对象 - 添加字段存在性检查,避免undefined key错误
- 改进错误处理和返回消息
- 修改
4. 数据格式
获取接口响应格式:
{
"code": 1,
"msg": "操作成功",
"data": {
"id": 7,
"name": "麒麟老师",
"head_img": "",
"gender": 1,
"phone": "19218917377",
"email": "258785420@qq.com",
"address": "北京市海淀区",
"native_place": "山东青岛",
"education": "硕士",
"profile": "资深市场经理...",
"emergency_contact_phone": "13900139000",
"info": {
"name": "麒麟",
"store": "海淀校区",
"ethnicity": "汉族",
"age": 31,
"politics": "党员",
"university": "清华大学",
"major": "工商管理",
"graduation_date": "2014-06-30",
"marital_status": "已婚",
"bank_card": "6222021234567890124",
"bank_name": "建设银行北京分行",
"remark": "优秀员工..."
}
}
}
保存接口请求格式:
{
"name": "麒麟老师",
"gender": 1,
"phone": "19218917377",
"email": "258785420@qq.com",
"address": "北京市海淀区",
"native_place": "山东青岛",
"education": "硕士",
"profile": "资深市场经理...",
"emergency_contact_phone": "13900139000",
"info": {
"name": "麒麟",
"store": "海淀校区",
"ethnicity": "汉族",
"age": 31,
"politics": "党员",
"university": "清华大学",
"major": "工商管理"
}
}
5. 测试验证
- ✅ 获取接口测试: 使用curl验证数据正确返回,包含完整的基础信息和详细信息
- ✅ 保存接口测试: 使用curl验证数据正确保存到两个表
- ✅ 更新接口测试: 使用curl验证数据正确更新
- ✅ 数据库验证: 直接查询数据库确认数据正确存储
- ✅ 事务处理: 确保数据一致性,失败时正确回滚
6. 业务逻辑
- 数据完整性: 使用数据库事务确保两个表的数据同步更新
- 字段映射: 正确处理基础信息和详细信息的字段分离
- 错误处理: 完善的异常捕获和错误信息返回
- 权限控制: 员工只能查看和编辑自己的个人资料
7. 前端集成状态
- ✅ 数据回显: 前端页面能够正确获取和显示所有字段数据
- ✅ 数据保存: 前端页面能够正确保存所有字段数据
- ✅ 字段完整性: 支持前端页面的所有功能需求
- ✅ API兼容性: 保持与前端调用方式的完全兼容
修改的文件
-
niucloud/app/service/api/apiService/PersonnelService.php- 添加PersonnelInfo模型引用
- 扩展info方法支持详细信息查询
- 扩展edit方法支持两表联合更新
-
niucloud/app/api/controller/apiController/Personnel.php- 优化edit方法支持完整数据结构
- 添加字段存在性检查
- 改进错误处理
技术特点
- 事务安全: 使用数据库事务确保数据一致性
- 向后兼容: 保持现有API接口的兼容性
- 错误处理: 完善的异常处理和错误信息返回
- 数据验证: 支持字段的存在性检查
- 模块化设计: 清晰的数据层分离和业务逻辑封装
最后更新:2025-07-29 状态:已完成并测试通过