feat(assoc): v4.0.1 合伙人关联码、分佣账单与 H5 用户管理

订单佣金只认关联用户;合伙人备注写入独立表;H5 增加用户管理与首页统计。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-30 14:35:39 +08:00
parent 3b669f7e38
commit 9c8d5f2cad
125 changed files with 6355 additions and 1436 deletions
+48 -2
View File
@@ -201,6 +201,7 @@ CREATE TABLE common_city (
UNIQUE KEY uk_common_city_code (code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='开城配置';
DROP TABLE IF EXISTS partner_user_note;
DROP TABLE IF EXISTS partner_account;
CREATE TABLE partner_account (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
@@ -231,11 +232,14 @@ CREATE TABLE partner_account (
bank_branch VARCHAR(128) DEFAULT NULL,
weekly_store_target INT DEFAULT 20,
managed_warehouse_id BIGINT UNSIGNED DEFAULT NULL,
assoc_qrcode_id VARCHAR(64) DEFAULT NULL,
assoc_qrcode_resource_id BIGINT UNSIGNED DEFAULT NULL,
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
PRIMARY KEY (id),
UNIQUE KEY uk_partner_account_phone (phone),
UNIQUE KEY uk_partner_account_managed_warehouse (managed_warehouse_id),
UNIQUE KEY uk_partner_account_assoc_qrcode (assoc_qrcode_id),
KEY idx_partner_account_city_scope (city_id, scope_type),
KEY idx_partner_account_city_primary (city_id, is_primary),
KEY idx_partner_account_parent (parent_account_id),
@@ -287,6 +291,26 @@ CREATE TABLE partner_bill (
CONSTRAINT fk_partner_bill_account FOREIGN KEY (partner_account_id) REFERENCES partner_account(id) ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='合伙人T+30账单';
DROP TABLE IF EXISTS partner_bill_item;
CREATE TABLE partner_bill_item (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
partner_bill_id BIGINT UNSIGNED NOT NULL,
kind VARCHAR(16) NOT NULL COMMENT 'ORDER|REDEEM',
ref_id BIGINT UNSIGNED NOT NULL,
ref_no VARCHAR(32) NOT NULL,
title VARCHAR(128) DEFAULT NULL,
extra VARCHAR(128) DEFAULT NULL,
base_amount DECIMAL(10,2) NOT NULL,
rate DECIMAL(5,4) NOT NULL,
commission DECIMAL(10,2) NOT NULL,
occurred_at DATETIME(3) NOT NULL,
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
PRIMARY KEY (id),
UNIQUE KEY uk_partner_bill_item_kind_ref (kind, ref_id),
KEY idx_partner_bill_item_bill (partner_bill_id),
CONSTRAINT fk_partner_bill_item_bill FOREIGN KEY (partner_bill_id) REFERENCES partner_bill(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='合伙人账单明细';
-- ===================== HQ =============================
DROP TABLE IF EXISTS hq_account;
@@ -307,6 +331,7 @@ CREATE TABLE hq_account (
-- ===================== USER =============================
DROP TABLE IF EXISTS partner_user_note;
DROP TABLE IF EXISTS user_user;
CREATE TABLE user_user (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
@@ -320,10 +345,12 @@ CREATE TABLE user_user (
nickname VARCHAR(64) DEFAULT NULL,
avatar_resource_id BIGINT UNSIGNED DEFAULT NULL COMMENT '头像 common_resource.id',
status TINYINT NOT NULL DEFAULT 1,
source_type VARCHAR(32) NOT NULL DEFAULT 'ORGANIC' COMMENT 'ORGANIC|PROMO_CODE|SHARE_LINK|FRIEND_REFERRAL|OFFLINE_EVENT|OTHER',
source_type VARCHAR(32) NOT NULL DEFAULT 'ORGANIC' COMMENT 'ORGANIC|PROMO_CODE|SHARE_LINK|FRIEND_REFERRAL|OFFLINE_EVENT|PARTNER_PROXY|PARTNER_ASSOC|OTHER',
source_ref_id BIGINT UNSIGNED DEFAULT NULL COMMENT 'promo_code_id 或 referrer_user_id',
source_label VARCHAR(128) DEFAULT NULL COMMENT '渠道名称快照',
referrer_user_id BIGINT UNSIGNED DEFAULT NULL COMMENT '好友推荐人 user_user.id',
assoc_partner_account_id BIGINT UNSIGNED DEFAULT NULL,
assoc_bound_at DATETIME(3) DEFAULT NULL,
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
PRIMARY KEY (id),
@@ -332,10 +359,26 @@ CREATE TABLE user_user (
UNIQUE KEY uk_user_user_device_key (device_key),
KEY idx_user_user_source (source_type, source_ref_id),
KEY idx_user_user_referrer (referrer_user_id),
KEY idx_user_user_assoc_partner (assoc_partner_account_id),
KEY idx_user_user_merged (merged_into_user_id),
KEY idx_user_user_wx_open (wx_open_id)
KEY idx_user_user_wx_open (wx_open_id),
CONSTRAINT fk_user_user_assoc_partner FOREIGN KEY (assoc_partner_account_id) REFERENCES partner_account(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='C端用户';
CREATE TABLE partner_user_note (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
partner_account_id BIGINT UNSIGNED NOT NULL,
user_id BIGINT UNSIGNED NOT NULL,
remark VARCHAR(128) NOT NULL,
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
PRIMARY KEY (id),
UNIQUE KEY uk_partner_user_note_partner_user (partner_account_id, user_id),
KEY idx_partner_user_note_user (user_id),
CONSTRAINT fk_partner_user_note_partner FOREIGN KEY (partner_account_id) REFERENCES partner_account(id) ON DELETE CASCADE,
CONSTRAINT fk_partner_user_note_user FOREIGN KEY (user_id) REFERENCES user_user(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='主合伙人对关联用户的备注';
DROP TABLE IF EXISTS user_address;
CREATE TABLE user_address (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
@@ -579,6 +622,9 @@ CREATE TABLE user_store_rating (
store_id BIGINT UNSIGNED NOT NULL,
service_score TINYINT NOT NULL,
env_score TINYINT NOT NULL,
comment VARCHAR(200) NULL,
tags JSON NULL,
image_urls JSON NULL,
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
PRIMARY KEY (id),
UNIQUE KEY uk_user_store_rating_redeem (redeem_record_id),