-- 会员代理业务 user_id 兼容升级脚本 -- 说明: -- 1. 当前代理业务表最初按 sys_user 体系设计,user_id 为 NOT NULL。 -- 2. 会员体系接入后,会员侧业务主要依赖 member_user_id,很多写入场景不会再写 user_id。 -- 3. 因此需要将相关表的 user_id 调整为可空,避免会员新增、会员下单、钱包、静态/动态资源落库时报错。 ALTER TABLE `xxk_wallet_account` MODIFY COLUMN `user_id` BIGINT NULL COMMENT '用户ID'; ALTER TABLE `xxk_wallet_flow` MODIFY COLUMN `user_id` BIGINT NULL COMMENT '用户ID'; ALTER TABLE `xxk_proxy_order` MODIFY COLUMN `user_id` BIGINT NULL COMMENT '用户ID'; ALTER TABLE `xxk_proxy_order_item` MODIFY COLUMN `user_id` BIGINT NULL COMMENT '用户ID'; ALTER TABLE `xxk_static_proxy_asset` MODIFY COLUMN `user_id` BIGINT NULL COMMENT '用户ID'; ALTER TABLE `xxk_static_proxy_whitelist` MODIFY COLUMN `user_id` BIGINT NULL COMMENT '用户ID'; ALTER TABLE `xxk_dynamic_channel` MODIFY COLUMN `user_id` BIGINT NULL COMMENT '用户ID'; ALTER TABLE `xxk_dynamic_channel_traffic_log` MODIFY COLUMN `user_id` BIGINT NULL COMMENT '用户ID'; ALTER TABLE `xxk_dynamic_proxy_generate_log` MODIFY COLUMN `user_id` BIGINT NULL COMMENT '用户ID'; -- 会员钱包账户应保持 member_user_id 唯一,避免同一会员生成多条钱包账户 ALTER TABLE `xxk_wallet_account` DROP INDEX `idx_xxk_wallet_account_member_user_id`, ADD UNIQUE INDEX `uk_xxk_wallet_account_member_user_id` (`member_user_id`); -- 会员白名单也应按 member_user_id + whitelist_ip 去重 ALTER TABLE `xxk_static_proxy_whitelist` ADD UNIQUE INDEX `uk_member_whitelist_ip` (`member_user_id`, `whitelist_ip`);