feat(quality-owner): 增加优质号主、极品专区与无忧租号保险
- 支持保证金余额支付、在线支付开通及后台手动设置审计 - 新增极品专区发布权限、赔付方案与保险结算费率快照 - 优化首页、商品卡和个人中心的优质号主身份展示
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
-- +goose Up
|
||||
|
||||
-- 优质号主与无忧租号保险:
|
||||
-- users 保存优质号主资格及保证金快照;
|
||||
-- rental_listings 标记极品专区商品,并保存发布时赔付方案/费率快照;
|
||||
-- rental_orders / order_checkouts 保存下单时费率快照和实际保险服务费。
|
||||
ALTER TABLE users
|
||||
ADD COLUMN quality_owner_status VARCHAR(16) NOT NULL DEFAULT 'none' COMMENT '优质号主状态: none普通/active优质' AFTER status,
|
||||
ADD COLUMN quality_owner_deposit_cent BIGINT NOT NULL DEFAULT 0 COMMENT '优质号主保证金(分)' AFTER quality_owner_status,
|
||||
ADD COLUMN quality_owner_deposit_source VARCHAR(16) NOT NULL DEFAULT '' COMMENT '保证金来源: paid用户缴纳/manual后台设置' AFTER quality_owner_deposit_cent,
|
||||
ADD COLUMN quality_owner_activated_at DATETIME NULL COMMENT '优质号主开通时间' AFTER quality_owner_deposit_source,
|
||||
ADD KEY idx_users_quality_owner_status (quality_owner_status);
|
||||
|
||||
ALTER TABLE rental_listings
|
||||
ADD COLUMN is_premium TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否极品专区' AFTER distribution_site_id,
|
||||
ADD COLUMN compensation_plan VARCHAR(16) NOT NULL DEFAULT 'normal' COMMENT '赔付方案: normal普通赔付/insurance无忧租号保险' AFTER is_premium,
|
||||
ADD COLUMN insurance_fee_bps INT NOT NULL DEFAULT 0 COMMENT '保险服务费率快照(万分比)' AFTER compensation_plan,
|
||||
ADD KEY idx_rental_listings_premium_status (is_premium, status, review_status);
|
||||
|
||||
ALTER TABLE rental_orders
|
||||
ADD COLUMN is_premium TINYINT(1) NOT NULL DEFAULT 0 COMMENT '下单时是否极品专区' AFTER distribution_rule_version_id,
|
||||
ADD COLUMN compensation_plan VARCHAR(16) NOT NULL DEFAULT 'normal' COMMENT '下单时赔付方案快照' AFTER is_premium,
|
||||
ADD COLUMN insurance_fee_bps INT NOT NULL DEFAULT 0 COMMENT '下单时保险服务费率快照(万分比)' AFTER compensation_plan,
|
||||
ADD COLUMN insurance_fee_cent BIGINT NOT NULL DEFAULT 0 COMMENT '实际保险服务费(分)' AFTER insurance_fee_bps;
|
||||
|
||||
ALTER TABLE order_checkouts
|
||||
ADD COLUMN insurance_fee_bps INT NOT NULL DEFAULT 0 COMMENT '保险服务费率快照(万分比)' AFTER platform_fee_cent,
|
||||
ADD COLUMN insurance_fee_cent BIGINT NOT NULL DEFAULT 0 COMMENT '保险服务费(分)' AFTER insurance_fee_bps;
|
||||
|
||||
INSERT INTO permissions (code, name, resource, action) VALUES
|
||||
('user:quality_owner', '设置优质号主', 'user', 'quality_owner')
|
||||
ON DUPLICATE KEY UPDATE
|
||||
name = VALUES(name),
|
||||
resource = VALUES(resource),
|
||||
action = VALUES(action);
|
||||
|
||||
INSERT IGNORE INTO role_permissions (role_id, permission_id)
|
||||
SELECT r.id, p.id
|
||||
FROM roles r
|
||||
JOIN permissions p ON p.code = 'user:quality_owner'
|
||||
WHERE r.code IN ('ops', 'super_admin');
|
||||
|
||||
-- +goose Down
|
||||
|
||||
DELETE rp
|
||||
FROM role_permissions rp
|
||||
JOIN permissions p ON p.id = rp.permission_id
|
||||
WHERE p.code = 'user:quality_owner';
|
||||
|
||||
DELETE FROM permissions WHERE code = 'user:quality_owner';
|
||||
|
||||
ALTER TABLE order_checkouts
|
||||
DROP COLUMN insurance_fee_cent,
|
||||
DROP COLUMN insurance_fee_bps;
|
||||
|
||||
ALTER TABLE rental_orders
|
||||
DROP COLUMN insurance_fee_cent,
|
||||
DROP COLUMN insurance_fee_bps,
|
||||
DROP COLUMN compensation_plan,
|
||||
DROP COLUMN is_premium;
|
||||
|
||||
ALTER TABLE rental_listings
|
||||
DROP KEY idx_rental_listings_premium_status,
|
||||
DROP COLUMN insurance_fee_bps,
|
||||
DROP COLUMN compensation_plan,
|
||||
DROP COLUMN is_premium;
|
||||
|
||||
ALTER TABLE users
|
||||
DROP KEY idx_users_quality_owner_status,
|
||||
DROP COLUMN quality_owner_activated_at,
|
||||
DROP COLUMN quality_owner_deposit_source,
|
||||
DROP COLUMN quality_owner_deposit_cent,
|
||||
DROP COLUMN quality_owner_status;
|
||||
@@ -0,0 +1,13 @@
|
||||
-- +goose Up
|
||||
|
||||
-- 通用业务支付单:订单支付继续使用 order_id;优质号主保证金等非订单业务使用 biz_id,
|
||||
-- 避免把用户 ID 写入订单外键语义。
|
||||
ALTER TABLE payment_orders
|
||||
ADD COLUMN biz_id BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '业务对象ID(非订单业务使用)' AFTER order_no,
|
||||
ADD KEY idx_payment_orders_user_biz (user_id, biz_type, biz_id, status);
|
||||
|
||||
-- +goose Down
|
||||
|
||||
ALTER TABLE payment_orders
|
||||
DROP KEY idx_payment_orders_user_biz,
|
||||
DROP COLUMN biz_id;
|
||||
Reference in New Issue
Block a user