2025-11-21
数据库表结构调整,所有字段添加 entrust_ 前缀,新增 entrust_trade_no 字段
CREATE TABLE `second_entrust_user` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
`entrust_trade_id` int NOT NULL COMMENT '交易ID',
`entrust_trade_no` varchar(50) NOT NULL COMMENT '交易编号',
`entrust_user_phone` varchar(50) COMMENT '委托人电话',
`entrust_user_name` varchar(20) COMMENT '委托人姓名',
`entrust_id_card` varchar(255) COMMENT '委托人身份证',
`entrust_id_card_img` varchar(255) COMMENT '委托人身份证照片',
`delete_flag` int NOT NULL DEFAULT '0' COMMENT '删除标记, 0:未删除, 1:已删除',
`created_time` datetime(1) NOT NULL COMMENT '创建时间',
`created_user_id` int DEFAULT NULL COMMENT '创建人ID',
`updated_time` datetime DEFAULT NULL COMMENT '修改时间',
`updated_user_id` int DEFAULT NULL COMMENT '修改人ID',
PRIMARY KEY (`id`) USING BTREE
);
| 旧字段名 | 新字段名 | 说明 |
|---|---|---|
| trade_id | entrust_trade_id | 交易ID |
| - | entrust_trade_no | 交易编号(新增) |
| user_phone | entrust_user_phone | 委托人电话 |
| user_name | entrust_user_name | 委托人姓名 |
| id_card | entrust_id_card | 委托人身份证 |
| id_card_img | entrust_id_card_img | 委托人身份证照片 |
文件: alien-entity/src/main/java/shop/alien/entity/second/SecondEntrustUser.java
变更内容:
tradeId → entrustTradeIdentrustTradeNouserPhone → entrustUserPhoneuserName → entrustUserNameidCard → entrustIdCardidCardImg → entrustIdCardImg文件: alien-entity/src/main/java/shop/alien/entity/second/vo/SecondEntrustUserDTO.java
变更内容:
entrust_ 前缀SecondTradeRecord(不合适的设计)文件: alien-entity/src/main/resources/mapper/second/SecondEntrustUserMapper.xml
变更内容:
文件: alien-second/src/main/java/shop/alien/second/service/SecondEntrustUserService.java
变更内容:
getByTradeNo(String entrustTradeNo) 方法文件: alien-second/src/main/java/shop/alien/second/service/impl/SecondEntrustUserServiceImpl.java
变更内容:
getByTradeNo 方法StringUtils 导入文件: alien-second/src/main/java/shop/alien/second/controller/SecondEntrustUserController.java
变更内容:
/getByTradeNo 接口文件: alien-second/API_TEST.md
变更内容:
GET /secondEntrustUser/getByTradeNo?entrustTradeNo=TRADE202511210001
根据交易编号查询委托人信息
| 接口 | 旧参数名 | 新参数名 |
|---|---|---|
| getByTradeId | tradeId | entrustTradeId |
| getByUserPhone | userPhone | entrustUserPhone |
{
"tradeId": 1,
"userPhone": "13800138000",
"userName": "张三",
"idCard": "110101199001011234",
"idCardImg": "https://example.com/id_card.jpg"
}
{
"entrustTradeId": 1,
"entrustTradeNo": "TRADE202511210001",
"entrustUserPhone": "13800138000",
"entrustUserName": "张三",
"entrustIdCard": "110101199001011234",
"entrustIdCardImg": "https://example.com/id_card.jpg"
}
⚠️ 重大变更(Breaking Changes)
如果原表已有数据,需要执行以下迁移 SQL:
-- 方案1: 重命名字段(如果表已存在且有数据)
ALTER TABLE second_entrust_user
CHANGE COLUMN trade_id entrust_trade_id int NOT NULL COMMENT '交易ID',
ADD COLUMN entrust_trade_no varchar(50) COMMENT '交易编号' AFTER entrust_trade_id,
CHANGE COLUMN user_phone entrust_user_phone varchar(50) COMMENT '委托人电话',
CHANGE COLUMN user_name entrust_user_name varchar(20) COMMENT '委托人姓名',
CHANGE COLUMN id_card entrust_id_card varchar(255) COMMENT '委托人身份证',
CHANGE COLUMN id_card_img entrust_id_card_img varchar(255) COMMENT '委托人身份证照片';
-- 如果需要填充 entrust_trade_no 字段,可以从交易表关联查询
UPDATE second_entrust_user seu
INNER JOIN second_trade_record str ON seu.entrust_trade_id = str.id
SET seu.entrust_trade_no = str.trade_no;
-- 方案2: 创建新表并迁移数据(推荐,更安全)
-- 1. 备份原表
CREATE TABLE second_entrust_user_backup AS SELECT * FROM second_entrust_user;
-- 2. 删除原表
DROP TABLE second_entrust_user;
-- 3. 创建新表(使用新的表结构)
CREATE TABLE `second_entrust_user` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
`entrust_trade_id` int NOT NULL COMMENT '交易ID',
`entrust_trade_no` varchar(50) NOT NULL COMMENT '交易编号',
`entrust_user_phone` varchar(50) COMMENT '委托人电话',
`entrust_user_name` varchar(20) COMMENT '委托人姓名',
`entrust_id_card` varchar(255) COMMENT '委托人身份证',
`entrust_id_card_img` varchar(255) COMMENT '委托人身份证照片',
`delete_flag` int NOT NULL DEFAULT '0' COMMENT '删除标记, 0:未删除, 1:已删除',
`created_time` datetime(1) NOT NULL COMMENT '创建时间',
`created_user_id` int DEFAULT NULL COMMENT '创建人ID',
`updated_time` datetime DEFAULT NULL COMMENT '修改时间',
`updated_user_id` int DEFAULT NULL COMMENT '修改人ID',
PRIMARY KEY (`id`) USING BTREE
);
-- 4. 迁移数据
INSERT INTO second_entrust_user (
id, entrust_trade_id, entrust_user_phone, entrust_user_name,
entrust_id_card, entrust_id_card_img, delete_flag,
created_time, created_user_id, updated_time, updated_user_id
)
SELECT
id, trade_id, user_phone, user_name,
id_card, id_card_img, delete_flag,
created_time, created_user_id, updated_time, updated_user_id
FROM second_entrust_user_backup;
-- 5. 填充 entrust_trade_no
UPDATE second_entrust_user seu
INNER JOIN second_trade_record str ON seu.entrust_trade_id = str.id
SET seu.entrust_trade_no = str.trade_no;
entrust_trade_no 字段填充正确如果需要回滚到旧版本: