feat: update appraisal ordering and payment flows

This commit is contained in:
wushumin
2026-06-03 18:14:40 +08:00
parent 0838db5aba
commit 6383ec5a2a
50 changed files with 6143 additions and 988 deletions

View File

@@ -23,6 +23,7 @@ DROP TABLE IF EXISTS material_batch_download_logs;
DROP TABLE IF EXISTS material_tag_codes;
DROP TABLE IF EXISTS material_batches;
DROP TABLE IF EXISTS system_configs;
DROP TABLE IF EXISTS appraisal_service_price_packages;
DROP TABLE IF EXISTS service_packages;
DROP TABLE IF EXISTS admin_users;
DROP TABLE IF EXISTS user_messages;
@@ -57,6 +58,7 @@ DROP TABLE IF EXISTS order_assignments;
DROP TABLE IF EXISTS order_timelines;
DROP TABLE IF EXISTS order_upload_files;
DROP TABLE IF EXISTS order_upload_items;
DROP TABLE IF EXISTS shouqianba_payments;
DROP TABLE IF EXISTS order_return_addresses;
DROP TABLE IF EXISTS order_shipping_targets;
DROP TABLE IF EXISTS order_extras;
@@ -440,11 +442,33 @@ CREATE TABLE appraisal_template_key_points (
KEY idx_appraisal_template_key_points_template_id (template_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='鉴定模板关键点';
CREATE TABLE appraisal_service_price_packages (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
service_provider VARCHAR(32) NOT NULL DEFAULT 'anxinyan',
package_name VARCHAR(128) NOT NULL DEFAULT '',
package_code VARCHAR(64) NOT NULL DEFAULT '',
price DECIMAL(10,2) NOT NULL DEFAULT 0.00,
description VARCHAR(500) NOT NULL DEFAULT '',
is_enabled TINYINT(1) NOT NULL DEFAULT 1,
is_default TINYINT(1) NOT NULL DEFAULT 0,
sort_order INT NOT NULL DEFAULT 0,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY uk_appraisal_service_price_packages_code (service_provider, package_code),
KEY idx_appraisal_service_price_packages_provider (service_provider),
KEY idx_appraisal_service_price_packages_enabled (is_enabled)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='鉴定服务价格套餐';
CREATE TABLE appraisal_drafts (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
user_id BIGINT UNSIGNED NOT NULL,
service_mode VARCHAR(32) NOT NULL DEFAULT 'physical',
service_provider VARCHAR(32) NOT NULL DEFAULT 'anxinyan',
price_package_id BIGINT UNSIGNED NULL DEFAULT NULL,
price_package_name VARCHAR(128) NOT NULL DEFAULT '',
price_package_code VARCHAR(64) NOT NULL DEFAULT '',
price_package_price DECIMAL(10,2) NULL DEFAULT NULL,
current_step INT NOT NULL DEFAULT 1,
status VARCHAR(32) NOT NULL DEFAULT 'draft',
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
@@ -521,6 +545,10 @@ CREATE TABLE orders (
user_id BIGINT UNSIGNED NOT NULL,
service_mode VARCHAR(32) NOT NULL DEFAULT 'physical',
service_provider VARCHAR(32) NOT NULL DEFAULT 'anxinyan',
price_package_id BIGINT UNSIGNED NULL DEFAULT NULL,
price_package_name VARCHAR(128) NOT NULL DEFAULT '',
price_package_code VARCHAR(64) NOT NULL DEFAULT '',
price_package_price DECIMAL(10,2) NULL DEFAULT NULL,
payment_status VARCHAR(32) NOT NULL DEFAULT 'unpaid',
order_status VARCHAR(32) NOT NULL DEFAULT 'pending_payment',
display_status VARCHAR(64) NOT NULL DEFAULT '待支付',
@@ -539,10 +567,40 @@ CREATE TABLE orders (
KEY idx_orders_user_id (user_id),
KEY idx_orders_order_status (order_status),
KEY idx_orders_service_provider (service_provider),
KEY idx_orders_price_package_id (price_package_id),
KEY idx_orders_source_channel (source_channel),
KEY idx_orders_source_customer_id (source_customer_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='订单主表';
CREATE TABLE shouqianba_payments (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
order_id BIGINT UNSIGNED NOT NULL,
order_no VARCHAR(64) NOT NULL,
check_sn VARCHAR(32) NOT NULL,
order_sn VARCHAR(32) NOT NULL DEFAULT '',
order_token VARCHAR(64) NOT NULL DEFAULT '',
cashier_url VARCHAR(500) NOT NULL DEFAULT '',
order_image_url VARCHAR(500) NOT NULL DEFAULT '',
order_landing_url VARCHAR(500) NOT NULL DEFAULT '',
scene VARCHAR(8) NOT NULL DEFAULT '',
source_channel VARCHAR(32) NOT NULL DEFAULT '',
status VARCHAR(32) NOT NULL DEFAULT 'pending',
amount INT UNSIGNED NOT NULL DEFAULT 0,
currency VARCHAR(3) NOT NULL DEFAULT '156',
request_json LONGTEXT NULL,
response_json LONGTEXT NULL,
notify_json LONGTEXT NULL,
paid_at DATETIME NULL DEFAULT NULL,
cancelled_at DATETIME NULL DEFAULT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY uk_shouqianba_payments_check_sn (check_sn),
KEY idx_shouqianba_payments_order_id (order_id),
KEY idx_shouqianba_payments_order_sn (order_sn),
KEY idx_shouqianba_payments_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='收钱吧支付流水';
CREATE TABLE order_products (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
order_id BIGINT UNSIGNED NOT NULL,