访客申请表添加业主信息字段 - 部署说明
需求说明
在访客申请提交时,将查询到的业主信息(姓名和手机号码)存储到 visitor_application
表中。
变更内容
1. 数据库变更
- 添加
owner_name
字段:业主姓名
- 添加
owner_phone
字段:业主手机号
- 添加
idx_owner_phone
索引:提升查询性能
2. 后端代码变更
- 修改
VisitorApplication
实体类,添加业主信息字段
- 修改
VisitorApplicationController
控制器,添加业主信息处理逻辑
3. 前端代码变更
- 前端小程序已支持传递业主信息,无需修改
部署步骤
步骤1:备份数据库
-- 建议先备份visitor_application表
CREATE TABLE visitor_application_backup_20250627 AS
SELECT * FROM visitor_application;
步骤2:执行数据库更新脚本
# 方式1:使用简化脚本(推荐)
mysql -u [用户名] -p [数据库名] < src/main/resources/sql/update_visitor_application_simple.sql# 方式2:手动执行SQL
mysql -u [用户名] -p
use [数据库名];
source src/main/resources/sql/update_visitor_application_simple.sql;
步骤3:验证数据库变更
-- 检查表结构
DESCRIBE visitor_application;-- 检查索引
SHOW INDEX FROM visitor_application;-- 验证字段是否正确添加
SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_COMMENT
FROM information_schema.COLUMNS
WHERE TABLE_NAME = 'visitor_application' AND COLUMN_NAME IN ('owner_name', 'owner_phone');
步骤4:重新编译并部署后端
# 编译项目
mvn clean compile# 或者重新打包
mvn clean package -DskipTests# 重启应用
# 根据实际部署方式重启服务
步骤5:测试验证
- 提交一个新的访客申请
- 检查数据库中是否正确保存了业主姓名和手机号
- 验证日志输出是否包含业主信息
验证SQL
-- 查看最新的访客申请记录
SELECT id,application_no,nickname as '访客姓名',phone as '访客手机号',owner_name as '业主姓名',owner_phone as '业主手机号',create_time
FROM visitor_application
ORDER BY create_time DESC
LIMIT 5;
回滚方案
如果需要回滚,可以执行以下SQL:
-- 删除添加的字段
ALTER TABLE visitor_application DROP COLUMN owner_name;
ALTER TABLE visitor_application DROP COLUMN owner_phone;
ALTER TABLE visitor_application DROP INDEX idx_owner_phone;
注意事项
- 执行数据库变更前请务必备份数据
- 如果字段已存在,执行脚本会报错,可以忽略
- 业主姓名字段允许为空,以兼容可能无法获取姓名的情况
- 业主手机号字段添加了索引,用于快速查询
- 前端已经支持传递业主信息,无需额外修改
相关文件
- 数据库脚本:
src/main/resources/sql/update_visitor_application_simple.sql
- 实体类:
src/main/java/com/parkingmanage/entity/VisitorApplication.java
- 控制器:
src/main/java/com/parkingmanage/controller/VisitorApplicationController.java
- 原表结构:
src/main/resources/sql/visitor_application.sql