当前位置: 首页 > news >正文

管家预约字段修复说明

🐛 问题描述

在管家预约功能中,前端发送的JSON数据包含了后端 Appointment 实体类中不存在的字段,导致反序列化失败:

Unrecognized field "ownerCommunity" (class com.parkingmanage.entity.Appointment), not marked as ignorable

🔍 问题分析

错误的字段映射

前端代码中添加了以下不存在的字段:

  • ownerCommunity
  • ownerBuilding
  • ownerUnits
  • ownerFloor
  • ownerRoom
  • isManagerBooking

后端实体类现有字段

根据 Appointment.java,实际存在的字段是:

  • community - 社区信息
  • building - 楼栋信息
  • units - 单元信息
  • floor - 楼层信息
  • room - 房间信息
  • ownername - 业主姓名
  • ownerphone - 业主电话

🔧 修复方案

修复前的代码:

// 错误:使用了不存在的字段
appointmentData.ownerCommunity = this.selectedOwnerInfo.community;
appointmentData.ownerBuilding = this.selectedOwnerInfo.building;
appointmentData.ownerUnits = this.selectedOwnerInfo.units;
appointmentData.ownerFloor = this.selectedOwnerInfo.floor;
appointmentData.ownerRoom = this.selectedOwnerInfo.roomnumber;
appointmentData.isManagerBooking = true;

修复后的代码:

// 正确:使用现有的字段
if (this.selectedOwnerInfo.community) {appointmentData.community = this.selectedOwnerInfo.community;
}
if (this.selectedOwnerInfo.building) {appointmentData.building = this.selectedOwnerInfo.building;
}
if (this.selectedOwnerInfo.units) {appointmentData.units = this.selectedOwnerInfo.units;
}
if (this.selectedOwnerInfo.floor) {appointmentData.floor = this.selectedOwnerInfo.floor;
}
if (this.selectedOwnerInfo.roomnumber) {appointmentData.room = this.selectedOwnerInfo.roomnumber;
}

📋 字段映射关系

业主信息字段

Appointment字段

说明

selectedOwnerInfo.ownername

appointmentData.ownername

业主姓名

selectedOwnerInfo.ownerphone

appointmentData.ownerphone

业主电话

selectedOwnerInfo.community

appointmentData.community

社区名称

selectedOwnerInfo.building

appointmentData.building

楼栋号

selectedOwnerInfo.units

appointmentData.units

单元号

selectedOwnerInfo.floor

appointmentData.floor

楼层

selectedOwnerInfo.roomnumber

appointmentData.room

房间号

🎯 修复效果

1. 解决序列化错误

  • ✅ 移除了不存在的字段
  • ✅ 使用正确的字段映射
  • ✅ 保持数据完整性

2. 保持功能完整

  • ✅ 管家代为预约功能正常
  • ✅ 业主信息正确保存
  • ✅ 地址信息完整传递

3. 数据一致性

  • ✅ 前后端字段名称一致
  • ✅ 数据类型匹配
  • ✅ 避免冗余字段

🧪 测试验证

测试场景1:管家选择业主预约

// 预期数据结构
{"ownername": "张三","ownerphone": "13800138000", "community": "四季上东","building": "1号楼","units": "1单元", "floor": "5","room": "501","appointtype": "代人"
}

测试场景2:管家未选择业主

// 预期数据结构
{"ownername": "","ownerphone": "","appointtype": "代人"// 其他地址信息从表单获取
}

📝 注意事项

  1. 字段命名规范:确保前端字段名与后端实体类字段名完全一致
  1. 数据验证:添加了条件判断,避免空值覆盖现有数据
  1. 日志记录:保留详细的调试日志,便于问题排查
  1. 向后兼容:修改不影响其他预约类型的功能

✅ 验证清单

  • 移除不存在的字段:ownerCommunity, ownerBuilding, ownerUnits, ownerFloor, ownerRoom, isManagerBooking
  • 使用正确的字段映射关系
  • 添加条件判断避免空值
  • 保持日志记录完整
  • 测试管家预约功能
  • 验证数据保存正确性
http://www.dtcms.com/a/394712.html

相关文章:

  • java面试day3 | 框架篇、Spring、SpringMVC、SpringBoot、MyBatis、注解、AOP、Bean
  • 【log4j2】log4j2插件挂载变更msg格式(工作实战,原理详解)
  • MVCC(多版本并发控制):InnoDB 高并发的核心技术
  • 决策树习题
  • PHP-ThinkPhp漏洞学习-MVC模型路由访问模版渲染安全写法版本漏洞(2024小迪安全Day31)
  • [已修复] iTunes 无法识别您的 iPhone
  • EC2 实例的操作系统 (OS) 未能成功从 AWS 的网络服务 (DHCP) 中获取到分配给它的私有 IPv4 地址
  • Vercel、Netlify、AWS 与 Cloudflare:前端部署与边缘计算平台全景对比
  • 【Threejs】【工具类】Raycaster实现 3D 交互(如鼠标拾取、碰撞检测)的核心工具
  • Fay数字人QA功能详解
  • NETSTAT命令详解
  • FFmpeg 5.x 编译 so 文件的记录
  • 以开启https的nginx转发流量到minio
  • StarRocks 各类索引以及存储位置详解
  • PromptPilot 技术深解,工程化提示词开发如何让大模型准确率大大提高
  • RTX4090:AI与深度学习应用实践的革命性推动者
  • Cursor Multi-Root Workspace 新特性深度实战:一次打开 React 前端 + Go 后端,AI 自动跨项目跳转、联调、写代码!
  • 如何处理单位换算的问题
  • Docker部署 MySQL+Mycat
  • RTX4090:极致性能探索与硬核评测
  • DM物理存储结构及内存结构
  • ASP.NET Core MVC 路由逻辑初探
  • 【Python办公】文字转视频(可自定义颜色、字体大小)
  • 数据洪流时代,如何挑选一款面向未来的时序数据库?IoTDB 的答案
  • python+django/flask的吉安红色旅游平台 红色教育景区展示+图文资讯发布+评论互动功能系统java+nodejs
  • 设计模式(C++)详解——代理模式 (Proxy Pattern)(2)
  • 详解 Kubernetes 命令:kubectl exec -it nginx -- bash 及实战场景
  • Android挂机短信模板和多台手机同步短信模板
  • Solid Edge 转换为 IGS 全流程技术指南:含迪威模型网在线转换方案
  • 设计模式(C++)详解——代理模式 (Proxy Pattern)(1)