Files
hfb_sys/backend/migrations/000028_mohong.sql
T
yml2213 e07532a188 移除摸大红支付后建群逻辑,仅保留扫码与复制
支付成功只固化客服二维码与订单文案;同步清理迁移、配置与前后端相关字段。
2026-07-16 19:52:40 +08:00

114 lines
5.0 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- +goose Up
-- +goose StatementBegin
-- 摸大红商品表
CREATE TABLE IF NOT EXISTS mohong_products (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(128) NOT NULL COMMENT '商品标题',
cover_url VARCHAR(512) NOT NULL DEFAULT '' COMMENT '封面图',
image_urls JSON NULL COMMENT '详情图列表',
description TEXT NOT NULL COMMENT '商品描述',
price_cent BIGINT NOT NULL DEFAULT 0 COMMENT '售价(分)',
original_price_cent BIGINT NOT NULL DEFAULT 0 COMMENT '原价(分,0表示不展示)',
unit VARCHAR(32) NOT NULL DEFAULT '份' COMMENT '单位',
stock INT NOT NULL DEFAULT -1 COMMENT '库存,-1表示不限',
sort_order INT NOT NULL DEFAULT 0 COMMENT '排序,越大越靠前',
status VARCHAR(16) NOT NULL DEFAULT 'draft' COMMENT 'draft草稿 on_sale上架 off_sale下架',
qrcode_image_url VARCHAR(512) NOT NULL DEFAULT '' COMMENT '专属固定二维码,空则用全局默认',
created_by BIGINT UNSIGNED NULL COMMENT '创建管理员',
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
KEY idx_mohong_products_status_sort (status, sort_order, id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='摸大红商品';
-- 摸大红订单表(支付后展示固定二维码 + 可复制文案,不建群)
CREATE TABLE IF NOT EXISTS mohong_orders (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
order_no VARCHAR(64) NOT NULL COMMENT '订单号',
user_id BIGINT UNSIGNED NOT NULL COMMENT '下单用户',
product_id BIGINT UNSIGNED NOT NULL COMMENT '商品ID',
quantity INT NOT NULL DEFAULT 1 COMMENT '数量',
unit_price_cent BIGINT NOT NULL DEFAULT 0 COMMENT '下单单价快照(分)',
amount_cent BIGINT NOT NULL DEFAULT 0 COMMENT '应付总额(分)',
status VARCHAR(32) NOT NULL DEFAULT 'pending_payment' COMMENT 'pending_payment/paid/completed/cancelled/refunded',
product_snapshot JSON NULL COMMENT '商品快照',
qrcode_url_snapshot VARCHAR(512) NOT NULL DEFAULT '' COMMENT '支付时解析的二维码快照',
copy_text TEXT NOT NULL COMMENT '可复制订单文案',
paid_at DATETIME NULL COMMENT '支付时间',
completed_at DATETIME NULL COMMENT '完成时间',
cancelled_at DATETIME NULL COMMENT '取消时间',
cancel_reason VARCHAR(255) NOT NULL DEFAULT '' COMMENT '取消原因',
admin_remark VARCHAR(255) NOT NULL DEFAULT '' COMMENT '后台备注',
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_mohong_orders_order_no (order_no),
KEY idx_mohong_orders_user_status (user_id, status, id),
KEY idx_mohong_orders_product (product_id),
KEY idx_mohong_orders_status_created (status, created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='摸大红订单';
-- 业务配置
INSERT INTO system_configs (`key`, `value`, description) VALUES
('mohong.default_qrcode_url', '', '摸大红全局默认固定二维码图片URL'),
('mohong.order_copy_template', '【摸大红订单】\n订单号:{{order_no}}\n下单时间:{{created_at}}\n商品:{{product_title}}\n数量:{{quantity}}\n金额:{{amount}}\n下单人:{{buyer_name}}{{buyer_phone}}', '摸大红订单一键复制文案模板')
ON DUPLICATE KEY UPDATE description = VALUES(description);
-- 权限
INSERT INTO permissions (code, name, resource, action) VALUES
('mohong:product_view', '查看摸大红商品', 'mohong', 'product_view'),
('mohong:product_manage', '管理摸大红商品', 'mohong', 'product_manage'),
('mohong:order_view', '查看摸大红订单', 'mohong', 'order_view'),
('mohong:order_manage', '管理摸大红订单', 'mohong', 'order_manage'),
('mohong:config', '摸大红业务配置', 'mohong', 'config')
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 IN (
'mohong:product_view', 'mohong:product_manage',
'mohong:order_view', 'mohong:order_manage',
'mohong:config'
)
WHERE r.code = 'super_admin';
INSERT IGNORE INTO role_permissions (role_id, permission_id)
SELECT r.id, p.id
FROM roles r
JOIN permissions p ON p.code IN (
'mohong:product_view', 'mohong:order_view', 'mohong:order_manage'
)
WHERE r.code = 'cs';
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
DELETE rp FROM role_permissions rp
JOIN permissions p ON p.id = rp.permission_id
WHERE p.code IN (
'mohong:product_view', 'mohong:product_manage',
'mohong:order_view', 'mohong:order_manage',
'mohong:config'
);
DELETE FROM permissions WHERE code IN (
'mohong:product_view', 'mohong:product_manage',
'mohong:order_view', 'mohong:order_manage',
'mohong:config'
);
DELETE FROM system_configs WHERE `key` IN (
'mohong.default_qrcode_url',
'mohong.order_copy_template'
);
DROP TABLE IF EXISTS mohong_orders;
DROP TABLE IF EXISTS mohong_products;
-- +goose StatementEnd