1
This commit is contained in:
195
ruoyi-admin/src/main/resources/sql/erp_goofish_upgrade.sql
Normal file
195
ruoyi-admin/src/main/resources/sql/erp_goofish_upgrade.sql
Normal file
@@ -0,0 +1,195 @@
|
||||
-- =============================================================================
|
||||
-- 闲管家 ERP:erp_open_config / erp_goofish_order 一键升级脚本
|
||||
-- =============================================================================
|
||||
-- 用法:
|
||||
-- 1. 先备份数据库;连接目标库后执行(或在文件开头加 USE your_database;)
|
||||
-- 2. 可重复执行:已存在的列/索引会自动跳过
|
||||
-- 3. ADD COLUMN 一律不指定 AFTER,避免旧表缺中间列时升级失败(新列落在表尾,不影响业务)
|
||||
-- 环境:MySQL 5.7+ / 8.x(MariaDB 未逐项验证)
|
||||
-- =============================================================================
|
||||
|
||||
SET @schema := DATABASE();
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 1) 表不存在时创建完整结构(与 erp_goofish_init.sql 一致)
|
||||
-- -----------------------------------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS erp_open_config (
|
||||
id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
app_key varchar(64) NOT NULL COMMENT '开放平台 AppKey(appid)',
|
||||
app_secret varchar(128) NOT NULL COMMENT '开放平台 AppSecret',
|
||||
xy_user_name varchar(128) DEFAULT NULL COMMENT '默认闲鱼会员名(展示)',
|
||||
express_code varchar(64) DEFAULT NULL COMMENT '发货用快递公司编码(日日顺物流在官方列表中为 rrs)',
|
||||
express_name varchar(64) DEFAULT NULL COMMENT '快递公司名称(展示)',
|
||||
status char(1) NOT NULL DEFAULT '0' COMMENT '0正常 1停用',
|
||||
order_num int(11) NOT NULL DEFAULT 0 COMMENT '排序(小优先)',
|
||||
create_by varchar(64) DEFAULT '',
|
||||
create_time datetime DEFAULT NULL,
|
||||
update_by varchar(64) DEFAULT '',
|
||||
update_time datetime DEFAULT NULL,
|
||||
remark varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_app_key (app_key)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='闲管家开放平台应用配置';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS erp_goofish_order (
|
||||
id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
app_key varchar(64) NOT NULL COMMENT 'AppKey',
|
||||
seller_id bigint(20) DEFAULT NULL COMMENT '商家ID',
|
||||
user_name varchar(128) DEFAULT NULL COMMENT '闲鱼会员名',
|
||||
order_no varchar(64) NOT NULL COMMENT '闲鱼订单号',
|
||||
order_type int(11) DEFAULT NULL COMMENT '订单类型',
|
||||
order_status int(11) DEFAULT NULL COMMENT '订单状态(推送/列表)',
|
||||
refund_status int(11) DEFAULT NULL COMMENT '退款状态',
|
||||
modify_time bigint(20) DEFAULT NULL COMMENT '订单更新时间(秒)',
|
||||
product_id bigint(20) DEFAULT NULL COMMENT '管家商品ID',
|
||||
item_id bigint(20) DEFAULT NULL COMMENT '闲鱼商品ID',
|
||||
goods_title varchar(512) DEFAULT NULL COMMENT '商品标题(详情 goods.title)',
|
||||
goods_image_url varchar(1024) DEFAULT NULL COMMENT '商品主图 URL(goods.images 首图)',
|
||||
buyer_nick varchar(256) DEFAULT NULL COMMENT '买家昵称(详情 buyer_nick)',
|
||||
pay_amount bigint(20) DEFAULT NULL COMMENT '实付金额(分) pay_amount',
|
||||
detail_waybill_no varchar(128) DEFAULT NULL COMMENT '闲管家详情回传运单号 waybill_no',
|
||||
detail_express_code varchar(64) DEFAULT NULL COMMENT '详情快递编码 express_code',
|
||||
detail_express_name varchar(128) DEFAULT NULL COMMENT '详情快递名称 express_name',
|
||||
receiver_name varchar(128) DEFAULT NULL COMMENT '收货人(详情有则落库)',
|
||||
receiver_mobile varchar(64) DEFAULT NULL COMMENT '收货手机',
|
||||
receiver_address varchar(1000) DEFAULT NULL COMMENT '收货详细地址(address)',
|
||||
receiver_region varchar(256) DEFAULT NULL COMMENT '省市区街道等拼接展示',
|
||||
recv_prov_name varchar(64) DEFAULT NULL COMMENT 'prov_name',
|
||||
recv_city_name varchar(64) DEFAULT NULL COMMENT 'city_name',
|
||||
recv_area_name varchar(64) DEFAULT NULL COMMENT 'area_name',
|
||||
recv_town_name varchar(128) DEFAULT NULL COMMENT 'town_name',
|
||||
detail_json longtext COMMENT '订单详情接口全量 JSON',
|
||||
last_notify_json longtext COMMENT '最近一次推送原文 JSON',
|
||||
jd_order_id bigint(20) DEFAULT NULL COMMENT '关联 jd_order.id(第三方单号=闲鱼单号)',
|
||||
local_waybill_no varchar(128) DEFAULT NULL COMMENT '本地物流扫描得到的运单号',
|
||||
ship_status tinyint(4) NOT NULL DEFAULT '0' COMMENT '0未发货 1已调用发货成功 2发货失败',
|
||||
ship_error varchar(500) DEFAULT NULL COMMENT '发货失败原因',
|
||||
ship_time datetime DEFAULT NULL COMMENT '发货调用成功时间',
|
||||
ship_express_code varchar(64) DEFAULT NULL COMMENT '实际发货使用的快递编码',
|
||||
create_time datetime DEFAULT NULL,
|
||||
update_time datetime DEFAULT NULL,
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_app_order (app_key, order_no),
|
||||
KEY idx_jd_order (jd_order_id),
|
||||
KEY idx_order_status (order_status),
|
||||
KEY idx_modify_time (modify_time)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='闲管家 ERP 订单(全量跟踪)';
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 2) 存储过程:列不存在则 ADD
|
||||
-- -----------------------------------------------------------------------------
|
||||
DROP PROCEDURE IF EXISTS jarvis_erp_goofish_add_column;
|
||||
DROP PROCEDURE IF EXISTS jarvis_erp_goofish_add_index;
|
||||
|
||||
DELIMITER $$
|
||||
|
||||
CREATE PROCEDURE jarvis_erp_goofish_add_column(
|
||||
IN p_table VARCHAR(64),
|
||||
IN p_column VARCHAR(64),
|
||||
IN p_ddl TEXT
|
||||
)
|
||||
BEGIN
|
||||
DECLARE col_exists INT DEFAULT 0;
|
||||
SELECT COUNT(*) INTO col_exists
|
||||
FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = @schema
|
||||
AND TABLE_NAME = p_table
|
||||
AND COLUMN_NAME = p_column;
|
||||
IF col_exists = 0 THEN
|
||||
SET @stmt := CONCAT('ALTER TABLE `', p_table, '` ADD COLUMN `', p_column, '` ', p_ddl);
|
||||
PREPARE ps FROM @stmt;
|
||||
EXECUTE ps;
|
||||
DEALLOCATE PREPARE ps;
|
||||
END IF;
|
||||
END$$
|
||||
|
||||
CREATE PROCEDURE jarvis_erp_goofish_add_index(
|
||||
IN p_table VARCHAR(64),
|
||||
IN p_index VARCHAR(64),
|
||||
IN p_columns VARCHAR(200)
|
||||
)
|
||||
BEGIN
|
||||
DECLARE idx_exists INT DEFAULT 0;
|
||||
SELECT COUNT(*) INTO idx_exists
|
||||
FROM information_schema.statistics
|
||||
WHERE TABLE_SCHEMA = @schema
|
||||
AND TABLE_NAME = p_table
|
||||
AND INDEX_NAME = p_index;
|
||||
IF idx_exists = 0 THEN
|
||||
SET @stmt := CONCAT('ALTER TABLE `', p_table, '` ADD INDEX `', p_index, '` (', p_columns, ')');
|
||||
PREPARE ps FROM @stmt;
|
||||
EXECUTE ps;
|
||||
DEALLOCATE PREPARE ps;
|
||||
END IF;
|
||||
END$$
|
||||
|
||||
DELIMITER ;
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 3) erp_goofish_order:补齐缺列(与当前 Java 实体 / erp_goofish_init.sql 一致)
|
||||
-- -----------------------------------------------------------------------------
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'seller_id', 'bigint(20) NULL COMMENT ''商家ID''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'user_name', 'varchar(128) NULL COMMENT ''闲鱼会员名''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'order_type', 'int(11) NULL COMMENT ''订单类型''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'order_status', 'int(11) NULL COMMENT ''订单状态(推送/列表)''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'refund_status', 'int(11) NULL COMMENT ''退款状态''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'modify_time', 'bigint(20) NULL COMMENT ''订单更新时间(秒)''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'product_id', 'bigint(20) NULL COMMENT ''管家商品ID''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'item_id', 'bigint(20) NULL COMMENT ''闲鱼商品ID''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'goods_title', 'varchar(512) NULL COMMENT ''商品标题(详情 goods.title)''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'goods_image_url', 'varchar(1024) NULL COMMENT ''商品主图 URL(goods.images 首图)''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'buyer_nick', 'varchar(256) NULL COMMENT ''买家昵称(详情 buyer_nick)''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'pay_amount', 'bigint(20) NULL COMMENT ''实付金额(分) pay_amount''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'detail_waybill_no', 'varchar(128) NULL COMMENT ''闲管家详情回传运单号 waybill_no''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'detail_express_code', 'varchar(64) NULL COMMENT ''详情快递编码 express_code''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'detail_express_name', 'varchar(128) NULL COMMENT ''详情快递名称 express_name''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'receiver_name', 'varchar(128) NULL COMMENT ''收货人(详情有则落库)''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'receiver_mobile', 'varchar(64) NULL COMMENT ''收货手机''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'receiver_address', 'varchar(1000) NULL COMMENT ''收货详细地址(address)''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'receiver_region', 'varchar(256) NULL COMMENT ''省市区街道等拼接展示''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'recv_prov_name', 'varchar(64) NULL COMMENT ''prov_name''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'recv_city_name', 'varchar(64) NULL COMMENT ''city_name''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'recv_area_name', 'varchar(64) NULL COMMENT ''area_name''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'recv_town_name', 'varchar(128) NULL COMMENT ''town_name''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'detail_json', 'longtext NULL COMMENT ''订单详情接口全量 JSON''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'last_notify_json', 'longtext NULL COMMENT ''最近一次推送原文 JSON''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'jd_order_id', 'bigint(20) NULL COMMENT ''关联 jd_order.id(第三方单号=闲鱼单号)''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'local_waybill_no', 'varchar(128) NULL COMMENT ''本地物流扫描得到的运单号''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'ship_status', 'tinyint(4) NOT NULL DEFAULT 0 COMMENT ''0未发货 1已调用发货成功 2发货失败''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'ship_error', 'varchar(500) NULL COMMENT ''发货失败原因''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'ship_time', 'datetime NULL COMMENT ''发货调用成功时间''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'ship_express_code', 'varchar(64) NULL COMMENT ''实际发货使用的快递编码''');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'create_time', 'datetime NULL');
|
||||
CALL jarvis_erp_goofish_add_column('erp_goofish_order', 'update_time', 'datetime NULL');
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 4) 索引(手工建表可能缺)
|
||||
-- -----------------------------------------------------------------------------
|
||||
CALL jarvis_erp_goofish_add_index('erp_goofish_order', 'idx_jd_order', '`jd_order_id`');
|
||||
CALL jarvis_erp_goofish_add_index('erp_goofish_order', 'idx_order_status', '`order_status`');
|
||||
CALL jarvis_erp_goofish_add_index('erp_goofish_order', 'idx_modify_time', '`modify_time`');
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 5) 唯一键 uk_app_order
|
||||
-- 若已存在同名约束则跳过;若 (app_key,order_no) 有重复行会报错,需先清洗数据。
|
||||
-- 若已通过其它名称建了 (app_key,order_no) 唯一索引,请勿重复执行本节(可能报 Duplicate key)。
|
||||
-- -----------------------------------------------------------------------------
|
||||
SET @uk := (
|
||||
SELECT COUNT(*) FROM information_schema.table_constraints
|
||||
WHERE table_schema = @schema AND table_name = 'erp_goofish_order'
|
||||
AND constraint_name = 'uk_app_order' AND constraint_type = 'UNIQUE'
|
||||
);
|
||||
SET @sql_uk := IF(@uk = 0,
|
||||
'ALTER TABLE erp_goofish_order ADD UNIQUE KEY uk_app_order (app_key, order_no)',
|
||||
'SELECT ''uk_app_order 已存在,跳过'' AS note');
|
||||
PREPARE puk FROM @sql_uk;
|
||||
EXECUTE puk;
|
||||
DEALLOCATE PREPARE puk;
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 6) 清理存储过程
|
||||
-- -----------------------------------------------------------------------------
|
||||
DROP PROCEDURE IF EXISTS jarvis_erp_goofish_add_column;
|
||||
DROP PROCEDURE IF EXISTS jarvis_erp_goofish_add_index;
|
||||
|
||||
SELECT 'erp_goofish_upgrade.sql 执行结束' AS message;
|
||||
Reference in New Issue
Block a user