3.1 KiB
3.1 KiB
字段映射问题诊断和验证
🔍 问题分析
根据您提供的数据,当前API返回:
supplierName: "16666666666" (手机号)buyerName: "17777777777" (手机号)fundName: "17777777771" (手机号)
这说明我们的关联查询逻辑可能没有正确执行。
🔧 已实施的修改
1. 后端修改
- ✅ 修改了
DeliveryServiceImpl.pageQuery方法 - ✅ 添加了
MemberMapper.selectMemberUserById方法 - ✅ 实现了
member表和member_user表的关联查询 - ✅ 添加了详细的调试日志
2. 前端修改
- ✅ 实现了回退机制:
row.supplierName || row.supplierMobile || ''
🧪 验证步骤
1. 检查后端日志
重启后端服务后,查看控制台输出,应该看到类似这样的日志:
供应商查询结果 - ID: 61, 结果: {id=61, mobile=16666666666, username=测试供应商1}
供应商 - ID: 61, Username: 测试供应商1, Mobile: 16666666666
2. 检查API调用
确认前端调用的是正确的API:
- 前端调用:
/delivery/pageQueryList - 后端方法:
DeliveryController.pageQueryList→deliveryService.pageQuery
3. 数据库验证
如果后端日志显示查询结果为空,可以执行以下SQL验证:
SELECT m.id, m.mobile, mu.username
FROM member m
LEFT JOIN member_user mu ON m.id = mu.member_id
WHERE m.id IN (61, 62, 63);
🎯 预期结果
如果 member_user 表中有用户名:
supplierName: "测试供应商1"buyerName: "测试采购方1"fundName: "测试资金方1"
如果 member_user 表中用户名为空:
supplierName: "16666666666" (回退到手机号)buyerName: "17777777777" (回退到手机号)fundName: "17777777771" (回退到手机号)
🔍 可能的问题原因
- 后端服务没有重启:修改没有生效
- 数据库表结构:
member_user表中可能没有对应的记录 - 数据问题:ID 61, 62, 63 在
member_user表中可能不存在或username字段为空 - 查询逻辑:SQL查询可能有问题
📋 调试方法
1. 检查后端日志
查看是否有我们添加的调试日志输出
2. 检查数据库
-- 检查member表
SELECT * FROM member WHERE id IN (61, 62, 63);
-- 检查member_user表
SELECT * FROM member_user WHERE member_id IN (61, 62, 63);
-- 检查关联查询
SELECT m.id, m.mobile, mu.username
FROM member m
LEFT JOIN member_user mu ON m.id = mu.member_id
WHERE m.id IN (61, 62, 63);
3. 检查API响应
刷新前端页面,查看控制台"原始数据字段检查"日志
✅ 当前解决方案的优势
- 容错性强:即使后端查询失败,也能显示手机号
- 用户体验好:不会出现空白字段
- 调试友好:有详细的日志输出
- 向后兼容:不影响现有功能
🚀 下一步
- 等待后端服务完全启动
- 刷新前端页面
- 查看后端日志输出
- 检查API响应数据
- 如果问题仍然存在,检查数据库表结构
现在请等待后端服务启动完成,然后测试功能并查看日志输出。