chore(db): 全面升级 partner_v2.sql 数据库迁移脚本支持幂等执行与全量配置

这个提交包含在:
chen
2026-09-17 17:09:13 +08:00
父节点 d6fcd7cd82
当前提交 6865b268fd

查看文件

@@ -1,145 +1,309 @@
-- 合伙股东收益体系 V2
-- 表前缀以站点 database.prefix 为准(本仓库 .env 为 hla_)
-- 手工执行:将 __PREFIX__ 替换为实际前缀后导入
-- ==============================================================================
-- 恒联数通 · 收益中心 / 合伙股东收益体系数据库升级脚本 (V2)
-- 表前缀以站点 database.prefix 为准(本系统 .env 默认表前缀为 hla_ 或 fa_)
-- 手工执行时:请将 __PREFIX__ 替换为实际表前缀(如 hla_)后导入
-- ==============================================================================
-- 1. 分销商扩展字段
SET @dbname = DATABASE();
SET @prefix = (
SELECT TABLE_PREFIX FROM information_schema.TABLES
WHERE TABLE_SCHEMA = @dbname AND TABLE_NAME LIKE '%shopro_commission_agent'
ORDER BY CASE WHEN TABLE_NAME LIKE 'hla_%' THEN 0 ELSE 1 END
LIMIT 1
);
SET NAMES utf8mb4;
-- 直接按常见前缀改;执行脚本时请替换 __PREFIX__
-- ------------------------------------------------------------------------------
-- 1. 分销商成员扩展字段(幂等性存储过程安全添加:已存在则自动跳过,支持重复导入)
-- ------------------------------------------------------------------------------
DROP PROCEDURE IF EXISTS `__PREFIX__tmp_add_partner_agent_columns`;
DELIMITER $$
CREATE PROCEDURE `__PREFIX__tmp_add_partner_agent_columns`()
BEGIN
DECLARE target_table VARCHAR(64);
SET target_table = '__PREFIX__shopro_commission_agent';
ALTER TABLE `__PREFIX__shopro_commission_agent`
ADD COLUMN `is_venue` tinyint(1) NOT NULL DEFAULT 0 COMMENT '酒道馆' AFTER `level`,
ADD COLUMN `is_county` tinyint(1) NOT NULL DEFAULT 0 COMMENT '区县代理' AFTER `is_venue`,
ADD COLUMN `is_partner` tinyint(1) NOT NULL DEFAULT 0 COMMENT '合伙股东' AFTER `is_county`,
ADD COLUMN `county_code` varchar(20) NOT NULL DEFAULT '' COMMENT '区县编码' AFTER `is_partner`,
ADD COLUMN `direct_order_seq` int(11) NOT NULL DEFAULT 0 COMMENT '直推合格单累计(推三返一)' AFTER `county_code`,
ADD COLUMN `madow` decimal(20,8) NOT NULL DEFAULT 0.00000000 COMMENT '马豆' AFTER `direct_order_seq`,
ADD COLUMN `voucher_total` decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '兑换券总额' AFTER `madow`,
ADD COLUMN `voucher_released` decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '兑换券已释放' AFTER `voucher_total`,
ADD COLUMN `voucher_used` decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '兑换券已使用' AFTER `voucher_released`,
ADD COLUMN `last_self_order_time` bigint(16) DEFAULT NULL COMMENT '本人最近合格订单时间' AFTER `voucher_used`,
ADD KEY `idx_venue` (`is_venue`),
ADD KEY `idx_county` (`is_county`),
ADD KEY `idx_partner` (`is_partner`),
ADD KEY `idx_last_self_order` (`last_self_order_time`);
-- 1. is_venue (酒道馆标识)
IF NOT EXISTS (
SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = target_table AND COLUMN_NAME = 'is_venue'
) THEN
ALTER TABLE `__PREFIX__shopro_commission_agent`
ADD COLUMN `is_venue` tinyint(1) NOT NULL DEFAULT 0 COMMENT '酒道馆' AFTER `level`;
END IF;
-- 2. 收益流水
-- 2. is_county (区县代理标识)
IF NOT EXISTS (
SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = target_table AND COLUMN_NAME = 'is_county'
) THEN
ALTER TABLE `__PREFIX__shopro_commission_agent`
ADD COLUMN `is_county` tinyint(1) NOT NULL DEFAULT 0 COMMENT '区县代理' AFTER `is_venue`;
END IF;
-- 3. is_partner (合伙股东标识)
IF NOT EXISTS (
SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = target_table AND COLUMN_NAME = 'is_partner'
) THEN
ALTER TABLE `__PREFIX__shopro_commission_agent`
ADD COLUMN `is_partner` tinyint(1) NOT NULL DEFAULT 0 COMMENT '合伙股东' AFTER `is_county`;
END IF;
-- 4. county_code (代理区县编码)
IF NOT EXISTS (
SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = target_table AND COLUMN_NAME = 'county_code'
) THEN
ALTER TABLE `__PREFIX__shopro_commission_agent`
ADD COLUMN `county_code` varchar(20) NOT NULL DEFAULT '' COMMENT '区县编码' AFTER `is_partner`;
END IF;
-- 5. direct_order_seq (推三返一循环单数)
IF NOT EXISTS (
SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = target_table AND COLUMN_NAME = 'direct_order_seq'
) THEN
ALTER TABLE `__PREFIX__shopro_commission_agent`
ADD COLUMN `direct_order_seq` int(11) NOT NULL DEFAULT 0 COMMENT '直推合格单累计(推三返一)' AFTER `county_code`;
END IF;
-- 6. madow (马豆资产持有量)
IF NOT EXISTS (
SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = target_table AND COLUMN_NAME = 'madow'
) THEN
ALTER TABLE `__PREFIX__shopro_commission_agent`
ADD COLUMN `madow` decimal(20,8) NOT NULL DEFAULT 0.00000000 COMMENT '马豆' AFTER `direct_order_seq`;
END IF;
-- 7. voucher_total (兑换券总额度)
IF NOT EXISTS (
SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = target_table AND COLUMN_NAME = 'voucher_total'
) THEN
ALTER TABLE `__PREFIX__shopro_commission_agent`
ADD COLUMN `voucher_total` decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '兑换券总额' AFTER `madow`;
END IF;
-- 8. voucher_released (兑换券已释放额度)
IF NOT EXISTS (
SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = target_table AND COLUMN_NAME = 'voucher_released'
) THEN
ALTER TABLE `__PREFIX__shopro_commission_agent`
ADD COLUMN `voucher_released` decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '兑换券已释放' AFTER `voucher_total`;
END IF;
-- 9. voucher_used (兑换券已核销额度)
IF NOT EXISTS (
SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = target_table AND COLUMN_NAME = 'voucher_used'
) THEN
ALTER TABLE `__PREFIX__shopro_commission_agent`
ADD COLUMN `voucher_used` decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '兑换券已使用' AFTER `voucher_released`;
END IF;
-- 10. last_self_order_time (最近合格自购时间,用于30天自购活跃窗口考核)
IF NOT EXISTS (
SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = target_table AND COLUMN_NAME = 'last_self_order_time'
) THEN
ALTER TABLE `__PREFIX__shopro_commission_agent`
ADD COLUMN `last_self_order_time` bigint(16) DEFAULT NULL COMMENT '本人最近合格订单时间' AFTER `voucher_used`;
END IF;
-- 索引幂等检查与创建
IF NOT EXISTS (
SELECT 1 FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = target_table AND INDEX_NAME = 'idx_venue'
) THEN
ALTER TABLE `__PREFIX__shopro_commission_agent` ADD KEY `idx_venue` (`is_venue`);
END IF;
IF NOT EXISTS (
SELECT 1 FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = target_table AND INDEX_NAME = 'idx_county'
) THEN
ALTER TABLE `__PREFIX__shopro_commission_agent` ADD KEY `idx_county` (`is_county`);
END IF;
IF NOT EXISTS (
SELECT 1 FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = target_table AND INDEX_NAME = 'idx_partner'
) THEN
ALTER TABLE `__PREFIX__shopro_commission_agent` ADD KEY `idx_partner` (`is_partner`);
END IF;
IF NOT EXISTS (
SELECT 1 FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = target_table AND INDEX_NAME = 'idx_last_self_order'
) THEN
ALTER TABLE `__PREFIX__shopro_commission_agent` ADD KEY `idx_last_self_order` (`last_self_order_time`);
END IF;
END$$
DELIMITER ;
CALL `__PREFIX__tmp_add_partner_agent_columns`();
DROP PROCEDURE IF EXISTS `__PREFIX__tmp_add_partner_agent_columns`;
-- ------------------------------------------------------------------------------
-- 2. 收益中心核心流水表 (shopro_partner_reward)
-- ------------------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `__PREFIX__shopro_partner_reward` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`order_id` int(11) NOT NULL DEFAULT 0,
`buyer_id` int(11) NOT NULL DEFAULT 0,
`user_id` int(11) NOT NULL COMMENT '受益人',
`role` varchar(20) NOT NULL DEFAULT '' COMMENT 'taster/maker/venue/county/system',
`reward_type` varchar(32) NOT NULL,
`amount` decimal(12,2) NOT NULL DEFAULT 0.00,
`madow` decimal(20,8) NOT NULL DEFAULT 0.00000000,
`base_amount` decimal(12,2) NOT NULL DEFAULT 0.00,
`rate` decimal(16,10) NOT NULL DEFAULT 0.0000000000,
`ext` text,
`settle_date` date DEFAULT NULL,
`status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '0待入账 1已入账 -1取消 -2退回',
`createtime` bigint(16) DEFAULT NULL,
`updatetime` bigint(16) DEFAULT NULL,
`order_id` int(11) NOT NULL DEFAULT 0 COMMENT '关联合格订单ID (日结为日期虚单)',
`buyer_id` int(11) NOT NULL DEFAULT 0 COMMENT '下单买家会员ID',
`user_id` int(11) NOT NULL COMMENT '收益接收会员ID',
`role` varchar(20) NOT NULL DEFAULT '' COMMENT '业务角色: taster/maker/venue/county/partner/system',
`reward_type` varchar(32) NOT NULL COMMENT '收益类型标识 (push3, maker_diff, team_venue, madow_share, voucher_release 等)',
`amount` decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '现金变动金额 (元)',
`madow` decimal(20,8) NOT NULL DEFAULT 0.00000000 COMMENT '马豆变动数量',
`base_amount` decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '计奖基数 (元)',
`rate` decimal(16,10) NOT NULL DEFAULT 0.0000000000 COMMENT '结算时刻对应汇率或比例',
`ext` text COMMENT '扩展信息与计算公式 JSON',
`settle_date` date DEFAULT NULL COMMENT '日结归属日期',
`status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '状态: 0待入账 1已入账 -1取消 -2退回',
`createtime` bigint(16) DEFAULT NULL COMMENT '创建时间戳',
`updatetime` bigint(16) DEFAULT NULL COMMENT '更新时间戳',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_order_user_type` (`order_id`,`user_id`,`reward_type`),
UNIQUE KEY `uk_daily_user_type` (`settle_date`,`user_id`,`reward_type`),
KEY `idx_user` (`user_id`,`reward_type`,`status`),
KEY `idx_order` (`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='合伙股东收益';
KEY `idx_order` (`order_id`),
KEY `idx_createtime` (`createtime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='收益中心业务流水明细';
-- 3. 兑换券释放计划
-- ------------------------------------------------------------------------------
-- 3. 兑换券365天线性释放计划表 (shopro_partner_voucher_plan)
-- ------------------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `__PREFIX__shopro_partner_voucher_plan` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`order_id` int(11) NOT NULL,
`total_amount` decimal(12,2) NOT NULL,
`daily_amount` decimal(12,2) NOT NULL,
`released_amount` decimal(12,2) NOT NULL DEFAULT 0.00,
`released_days` int(11) NOT NULL DEFAULT 0,
`total_days` int(11) NOT NULL DEFAULT 365,
`start_date` date NOT NULL,
`status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '1释放中 2完成 0关闭',
`createtime` bigint(16) DEFAULT NULL,
`user_id` int(11) NOT NULL COMMENT '持有会员ID',
`order_id` int(11) NOT NULL COMMENT '来源订单ID',
`total_amount` decimal(12,2) NOT NULL COMMENT '获赠兑换券总额度',
`daily_amount` decimal(12,2) NOT NULL COMMENT '每日释放标准金额',
`released_amount` decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '累计已释放额度',
`released_days` int(11) NOT NULL DEFAULT 0 COMMENT '已释放天数',
`total_days` int(11) NOT NULL DEFAULT 365 COMMENT '计划释放总天数',
`start_date` date NOT NULL COMMENT '开始释放日期 (通常为下单次日)',
`status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '状态: 1释放中 2已履约完毕 0已关闭/退款终止',
`createtime` bigint(16) DEFAULT NULL COMMENT '创建时间戳',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_order` (`order_id`),
KEY `idx_user_status` (`user_id`,`status`,`start_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='兑换券释放计划';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='兑换券365天线性释放计划';
-- 4. 汇率快照
-- ------------------------------------------------------------------------------
-- 4. 马豆大盘汇率历史快照表 (shopro_partner_rate_log)
-- ------------------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `__PREFIX__shopro_partner_rate_log` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`settle_date` date NOT NULL,
`settle_date` date NOT NULL COMMENT '结算对账日期',
`order_count_n` int(11) NOT NULL DEFAULT 0 COMMENT '历史合格单累计N',
`rate` decimal(16,10) NOT NULL DEFAULT 0.0000000000,
`gmv` decimal(14,2) NOT NULL DEFAULT 0.00,
`madow_pool` decimal(20,8) NOT NULL DEFAULT 0.00000000,
`share_user_count` int(11) NOT NULL DEFAULT 0,
`venue_pool` decimal(12,2) NOT NULL DEFAULT 0.00,
`county_pool` decimal(12,2) NOT NULL DEFAULT 0.00,
`createtime` bigint(16) DEFAULT NULL,
`rate` decimal(16,10) NOT NULL DEFAULT 0.0000000000 COMMENT '当日核算汇率 (元/马豆)',
`gmv` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '当日全平台计奖订单GMV',
`madow_pool` decimal(20,8) NOT NULL DEFAULT 0.00000000 COMMENT '当日产出总马豆池',
`share_user_count` int(11) NOT NULL DEFAULT 0 COMMENT '参与马豆分润人数',
`venue_pool` decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '酒道馆分红池总额',
`county_pool` decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '区县代理分红池总额',
`createtime` bigint(16) DEFAULT NULL COMMENT '生成时间戳',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_date` (`settle_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='马豆汇率日志';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='马豆汇率与大盘指标日志';
-- 5. 日结对账
-- ------------------------------------------------------------------------------
-- 5. 日结对账审计汇总表 (shopro_partner_daily_report)
-- ------------------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `__PREFIX__shopro_partner_daily_report` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`settle_date` date NOT NULL,
`order_count` int(11) NOT NULL DEFAULT 0,
`order_count_n` int(11) NOT NULL DEFAULT 0,
`gmv` decimal(14,2) NOT NULL DEFAULT 0.00,
`rate` decimal(16,10) NOT NULL DEFAULT 0.0000000000,
`madow_pool` decimal(20,8) NOT NULL DEFAULT 0.00000000,
`share_user_count` int(11) NOT NULL DEFAULT 0,
`venue_pool` decimal(12,2) NOT NULL DEFAULT 0.00,
`venue_user_count` int(11) NOT NULL DEFAULT 0,
`county_pool` decimal(12,2) NOT NULL DEFAULT 0.00,
`county_user_count` int(11) NOT NULL DEFAULT 0,
`voucher_release_total` decimal(12,2) NOT NULL DEFAULT 0.00,
`status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '1成功 0失败 2重跑中',
`error_msg` varchar(500) NOT NULL DEFAULT '',
`createtime` bigint(16) DEFAULT NULL,
`updatetime` bigint(16) DEFAULT NULL,
`settle_date` date NOT NULL COMMENT '结算归属日期',
`order_count` int(11) NOT NULL DEFAULT 0 COMMENT '当日计奖订单数',
`order_count_n` int(11) NOT NULL DEFAULT 0 COMMENT '截至当日历史累计合格订单数N',
`gmv` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '当日合格GMV现金流水',
`rate` decimal(16,10) NOT NULL DEFAULT 0.0000000000 COMMENT '执行汇率',
`madow_pool` decimal(20,8) NOT NULL DEFAULT 0.00000000 COMMENT '马豆奖池',
`share_user_count` int(11) NOT NULL DEFAULT 0 COMMENT '马豆分润受益人数',
`venue_pool` decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '酒道馆均分现金池',
`venue_user_count` int(11) NOT NULL DEFAULT 0 COMMENT '符合条件的酒道馆数',
`county_pool` decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '区县均分现金池',
`county_user_count` int(11) NOT NULL DEFAULT 0 COMMENT '符合条件的区县数',
`voucher_release_total` decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '当日全网释放兑换券总额',
`status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '日结执行状态: 1成功 0失败 2重跑中',
`error_msg` varchar(500) NOT NULL DEFAULT '' COMMENT '异常日志摘要',
`createtime` bigint(16) DEFAULT NULL COMMENT '创建时间戳',
`updatetime` bigint(16) DEFAULT NULL COMMENT '更新时间戳',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_date` (`settle_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='合伙股东日结对账';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='收益中心日结对账审计汇总';
-- 6. 配置(挂在 shop.commission 下,sheep_config('shop.commission.partner_mode') 可读)
INSERT IGNORE INTO `__PREFIX__shopro_config` (`code`, `parent_code`, `name`, `description`, `type`, `value`, `store_range`, `rule`, `weigh`) VALUES
('shop.commission.partner_mode', 'shop.commission', '关闭旧百分比分佣', '1=跳过三级百分比', 'boolean', '1', NULL, NULL, 80),
('shop.commission.partner_enable', 'shop.commission', '启用合伙股东结算', '1=新单记即时奖', 'boolean', '1', NULL, NULL, 81),
('shop.commission.partner_count_type', 'shop.commission', '合格订单口径', 'order=订单头 item=商品件数', 'string', 'order', NULL, NULL, 82),
('shop.commission.partner_active_days', 'shop.commission', '领取窗口天数', NULL, 'int', '30', NULL, NULL, 83),
('shop.commission.partner_chain_max_depth', 'shop.commission', '关系链最大深度', NULL, 'int', '50', NULL, NULL, 84),
('shop.commission.partner_push3_amounts', 'shop.commission', '推三返一循环金额', NULL, 'array', '[398,400,600]', NULL, NULL, 85),
('shop.commission.partner_madow_mode', 'shop.commission', '马豆发放模式', 'madow=马豆 cash=现金', 'string', 'madow', NULL, NULL, 86),
('shop.commission.partner_madow_base_rate', 'shop.commission', '马豆基础汇率', NULL, 'string', '0.00000075', NULL, NULL, 87),
('shop.commission.partner_madow_step_orders', 'shop.commission', '马豆步进订单数', NULL, 'int', '1', NULL, NULL, 88),
('shop.commission.partner_voucher_times', 'shop.commission', '兑换券倍数', NULL, 'float', '1.5', NULL, NULL, 89),
('shop.commission.partner_voucher_days', 'shop.commission', '兑换券释放天数', NULL, 'int', '365', NULL, NULL, 90),
('shop.commission.partner_maker_bonus', 'shop.commission', '创客级差基数', NULL, 'array', '{\"2\":20,\"3\":40,\"4\":60,\"5\":80,\"6\":100,\"7\":120}', NULL, NULL, 91),
('shop.commission.partner_maker_peer_rate', 'shop.commission', '创客平级比例', NULL, 'float', '0.10', NULL, NULL, 92),
('shop.commission.partner_maker_overtaken_rate', 'shop.commission', '创客被超越比例', NULL, 'float', '0.05', NULL, NULL, 93),
('shop.commission.partner_team_total', 'shop.commission', '团队拆分总额', NULL, 'float', '100', NULL, NULL, 94),
('shop.commission.partner_venue_split', 'shop.commission', '酒道馆拆分份额', NULL, 'float', '50', NULL, NULL, 95),
('shop.commission.partner_county_full', 'shop.commission', '无馆区县全额', NULL, 'float', '100', NULL, NULL, 96),
('shop.commission.partner_venue_share_per_order', 'shop.commission', '酒道馆每单奖池', NULL, 'float', '100', NULL, NULL, 97),
('shop.commission.partner_county_share_per_order', 'shop.commission', '区县每单奖池', NULL, 'float', '50', NULL, NULL, 98),
('shop.commission.partner_venue_peer_rate', 'shop.commission', '酒道馆平级比例', NULL, 'float', '0.10', NULL, NULL, 99),
('shop.commission.partner_county_peer_rate', 'shop.commission', '区县平级比例', NULL, 'float', '0.10', NULL, NULL, 100);
-- 7. 初始化 7 条等级(已存在则忽略)
INSERT IGNORE INTO `__PREFIX__shopro_commission_level` (`level`, `name`, `image`, `commission_rules`, `upgrade_type`, `upgrade_rules`) VALUES
-- ------------------------------------------------------------------------------
-- 6. 收益体系全局业务参数配置 (shopro_config)
-- ------------------------------------------------------------------------------
INSERT INTO `__PREFIX__shopro_config` (`code`, `parent_code`, `name`, `description`, `type`, `value`, `store_range`, `rule`, `weigh`) VALUES
('shop.commission.partner_mode', 'shop.commission', '关闭旧百分比分佣', '1=跳过旧版三级分销百分比分佣,完全执行新收益中心', 'boolean', '1', NULL, NULL, 80),
('shop.commission.partner_enable', 'shop.commission', '启用收益中心结算', '1=新单实时写入推三返一/创客极差/团队奖等即时收益', 'boolean', '1', NULL, NULL, 81),
('shop.commission.partner_count_type', 'shop.commission', '合格订单计单口径', 'order=按订单头计1单 item=按商品件数累计单数', 'string', 'order', NULL, NULL, 82),
('shop.commission.partner_active_days', 'shop.commission', '自购活跃考核窗口', '进阶角色需在指定天数内有自购合格订单才可享受分润', 'int', '30', NULL, NULL, 83),
('shop.commission.partner_chain_max_depth', 'shop.commission', '关系链最大追溯层级', '向上寻找创客/酒道馆/区县时的最大关系链深度', 'int', '50', NULL, NULL, 84),
('shop.commission.partner_push3_amounts', 'shop.commission', '推三返一循环金额配置', '品酒师推荐直推合格单获得的阶梯奖励金额循环数组', 'array', '[398,400,600]', NULL, NULL, 85),
('shop.commission.partner_madow_mode', 'shop.commission', '每日GMV分润模式', 'madow=以马豆形式发放 cash=直接以佣金现金发放', 'string', 'madow', NULL, NULL, 86),
('shop.commission.partner_madow_base_rate', 'shop.commission', '马豆基准汇率', '大盘初始起步汇率 (元/马豆)', 'string', '0.00000075', NULL, NULL, 87),
('shop.commission.partner_madow_step_orders', 'shop.commission', '马豆汇率步进单数', '每达成指定合格订单数,马豆大盘汇率递增1个基数', 'int', '1', NULL, NULL, 88),
('shop.commission.partner_voucher_times', 'shop.commission', '买酒赠送兑换券倍数', '符合条件的订单实付金额倍数,默认1.5倍', 'float', '1.5', NULL, NULL, 89),
('shop.commission.partner_voucher_days', 'shop.commission', '兑换券线性释放天数', '兑换券按日分期释放的总周期,默认365天', 'int', '365', NULL, NULL, 90),
('shop.commission.partner_maker_bonus', 'shop.commission', '创客各级级差基数', '各创客等级(level 2~7)对应的级差佣金基准金额(元)', 'array', '{\"2\":20,\"3\":40,\"4\":60,\"5\":80,\"6\":100,\"7\":120}', NULL, NULL, 91),
('shop.commission.partner_maker_peer_rate', 'shop.commission', '创客平级协同比例', '创客直属平级上级获得的协同奖励比例', 'float', '0.10', NULL, NULL, 92),
('shop.commission.partner_maker_overtaken_rate', 'shop.commission', '创客超越奖励比例', '下级等级超越上级时,上级获得的超越关怀比例', 'float', '0.05', NULL, NULL, 93),
('shop.commission.partner_maker_peer_max_generations', 'shop.commission', '创客协同最大代数', '创客平级协同奖向上追溯的最大代数', 'int', '50', NULL, NULL, 94),
('shop.commission.partner_team_total', 'shop.commission', '团队拆分奖总预算', '单笔订单团队奖最高切分金额(元)', 'float', '100', NULL, NULL, 95),
('shop.commission.partner_venue_split', 'shop.commission', '酒道馆运营奖基准', '有馆有县时酒道馆应得团队奖金额(元)', 'float', '50', NULL, NULL, 96),
('shop.commission.partner_county_full', 'shop.commission', '无馆区县统筹全额', '伞下无酒道馆时间区县代理独享团队奖金额(元)', 'float', '100', NULL, NULL, 97),
('shop.commission.partner_venue_share_per_order', 'shop.commission', '酒道馆日结每单奖池', '日结时每单注入全网酒道馆均分池的金额(元)', 'float', '100', NULL, NULL, 98),
('shop.commission.partner_county_share_per_order', 'shop.commission', '区县日结每单奖池', '日结时每单注入全网区县代理均分池的金额(元)', 'float', '50', NULL, NULL, 99),
('shop.commission.partner_venue_peer_rate', 'shop.commission', '酒道馆平级协同比例', '直属酒道馆平级上级获得的平级奖励比例', 'float', '0.10', NULL, NULL, 100),
('shop.commission.partner_county_peer_rate', 'shop.commission', '区县代理平级协同比例', '直属区县代理平级上级获得的平级奖励比例', 'float', '0.10', NULL, NULL, 101),
('shop.commission.partner_peer_min_amount', 'shop.commission', '协同奖励最低门槛', '协同/平级计算结果小于该值时不入账', 'float', '0.10', NULL, NULL, 102),
('shop.commission.partner_order_min_amount', 'shop.commission', '计奖合格订单最低金额', '单笔订单计奖实付金额低于此门槛时不参与计奖', 'float', '0', NULL, NULL, 103),
('shop.commission.partner_role_name_taster', 'shop.commission', '品酒师自定义名称', '系统与用户端展示的基础品酒师别名', 'string', '品酒师', NULL, NULL, 104),
('shop.commission.partner_role_name_maker', 'shop.commission', '创客自定义名称', '系统与用户端展示的创客骨干别名', 'string', '创客', NULL, NULL, 105),
('shop.commission.partner_role_name_venue', 'shop.commission', '酒道馆自定义名称', '系统与用户端展示的酒道馆别名', 'string', '酒道馆', NULL, NULL, 106),
('shop.commission.partner_role_name_county', 'shop.commission', '区县代理自定义名称', '系统与用户端展示的区县代理别名', 'string', '区县代理', NULL, NULL, 107),
('shop.commission.partner_role_name_partner', 'shop.commission', '合伙股东自定义名称', '系统与用户端展示的合伙股东别名', 'string', '合伙股东', NULL, NULL, 108)
ON DUPLICATE KEY UPDATE `name`=VALUES(`name`), `description`=VALUES(`description`), `weigh`=VALUES(`weigh`);
-- ------------------------------------------------------------------------------
-- 7. 初始化 7 档业务身份等级 (shopro_commission_level)
-- ------------------------------------------------------------------------------
INSERT INTO `__PREFIX__shopro_commission_level` (`level`, `name`, `image`, `commission_rules`, `upgrade_type`, `upgrade_rules`) VALUES
(1, '品酒师', '', '{\"commission_1\":0,\"commission_2\":0,\"commission_3\":0}', 0, '{}'),
(2, '创客V1', '', '{\"commission_1\":0,\"commission_2\":0,\"commission_3\":0}', 0, '{}'),
(3, '创客V2', '', '{\"commission_1\":0,\"commission_2\":0,\"commission_3\":0}', 0, '{}'),
(4, '创客V3', '', '{\"commission_1\":0,\"commission_2\":0,\"commission_3\":0}', 0, '{}'),
(5, '创客V4', '', '{\"commission_1\":0,\"commission_2\":0,\"commission_3\":0}', 0, '{}'),
(6, '创客V5', '', '{\"commission_1\":0,\"commission_2\":0,\"commission_3\":0}', 0, '{}'),
(7, '创客V6', '', '{\"commission_1\":0,\"commission_2\":0,\"commission_3\":0}', 0, '{}');
(7, '创客V6', '', '{\"commission_1\":0,\"commission_2\":0,\"commission_3\":0}', 0, '{}')
ON DUPLICATE KEY UPDATE `name`=VALUES(`name`);
-- ------------------------------------------------------------------------------
-- 8. 后台权限规则与菜单动线规范化 (auth_rule)
-- ------------------------------------------------------------------------------
UPDATE `__PREFIX__auth_rule` SET `title`='收益中心', `icon`='fa fa-users fa-fw', `weigh`=90 WHERE `name`='shopro/commission';
UPDATE `__PREFIX__auth_rule` SET `title`='成员档案', `icon`='fa fa-user', `weigh`=100 WHERE `name`='shopro/commission/agent';
UPDATE `__PREFIX__auth_rule` SET `title`='身份等级', `icon`='fa fa-list-ol', `weigh`=90 WHERE `name`='shopro/commission/level';
UPDATE `__PREFIX__auth_rule` SET `title`='计奖商品', `icon`='fa fa-briefcase', `weigh`=80 WHERE `name`='shopro/commission/goods';
UPDATE `__PREFIX__auth_rule` SET `title`='收益流水', `icon`='fa fa-rmb', `weigh`=70 WHERE `name`='shopro/partner/reward';
UPDATE `__PREFIX__auth_rule` SET `title`='日结对账', `icon`='fa fa-calendar-check-o', `weigh`=60 WHERE `name`='shopro/partner/daily';
UPDATE `__PREFIX__auth_rule` SET `title`='兑换券', `icon`='fa fa-ticket', `weigh`=50 WHERE `name`='shopro/partner/voucher';
UPDATE `__PREFIX__auth_rule` SET `title`='业绩订单', `icon`='fa fa-file-text', `weigh`=40 WHERE `name`='shopro/commission/order';
UPDATE `__PREFIX__auth_rule` SET `title`='历史佣金', `icon`='fa fa-usd', `weigh`=30 WHERE `name`='shopro/commission/reward';
UPDATE `__PREFIX__auth_rule` SET `title`='动态日志', `icon`='fa fa-address-card', `weigh`=20 WHERE `name`='shopro/commission/log';
-- 三级节点动词对齐
UPDATE `__PREFIX__auth_rule` SET `title`='更换上级' WHERE `name`='shopro/commission/agent/changeparentuser';
UPDATE `__PREFIX__auth_rule` SET `title`='设置计奖' WHERE `name`='shopro/commission/goods/edit';
UPDATE `__PREFIX__auth_rule` SET `title`='退回收益' WHERE `name`='shopro/partner/reward/back';
UPDATE `__PREFIX__auth_rule` SET `title`='重跑日结' WHERE `name`='shopro/partner/daily/rerun';
UPDATE `__PREFIX__auth_rule` SET `title`='关闭计划' WHERE `name`='shopro/partner/voucher/close';
UPDATE `__PREFIX__auth_rule` SET `title`='分销基础' WHERE `name`='shopro/config/commission';