-- ============================================================ -- 微信小程序多应用配置(yz_platform_wechat_mini_app) -- 支持配置多个小程序:认证端登录时按客户端传入 appid 精确匹配, -- 未传 appid 时回退第一条启用记录。 -- AppSecret 以 AES-256-GCM 加密存储(复用 wechatmp 的密钥)。 -- 幂等脚本:重复执行不会产生重复数据。 -- 执行:mysql -h -P -u -p < create_wechat_mini_app.sql -- ============================================================ CREATE TABLE IF NOT EXISTS yz_platform_wechat_mini_app ( id bigint unsigned NOT NULL AUTO_INCREMENT, name varchar(128) NOT NULL DEFAULT '' COMMENT '应用名称', app_id varchar(64) NOT NULL COMMENT '小程序 AppID', app_secret varchar(512) NOT NULL DEFAULT '' COMMENT 'AppSecret(AES-256-GCM 加密存储)', qrcode_url varchar(512) NOT NULL DEFAULT '' COMMENT '小程序码图片地址(供官网/H5等其他端调取)', enabled tinyint NOT NULL DEFAULT 0 COMMENT '1=启用 0=停用', auto_bind tinyint NOT NULL DEFAULT 1 COMMENT '1=手机号命中身份后自动绑定小程序', remark varchar(255) NOT NULL DEFAULT '' COMMENT '备注', create_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', update_time datetime NULL COMMENT '更新时间', delete_time datetime NULL COMMENT '软删时间', PRIMARY KEY (id), UNIQUE KEY uk_mini_app_appid (app_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='微信小程序多应用配置'; -- 迁移旧单行配置(yz_platform_wechat_mini_config)到新表;已存在同 appid 时跳过 INSERT INTO yz_platform_wechat_mini_app (name, app_id, app_secret, enabled, auto_bind, remark) SELECT COALESCE(NULLIF(c.remark, ''), '默认小程序'), c.app_id, c.app_secret, c.enabled, c.auto_bind, c.remark FROM yz_platform_wechat_mini_config c WHERE c.app_id <> '' AND NOT EXISTS ( SELECT 1 FROM (SELECT 1 FROM yz_platform_wechat_mini_app x WHERE x.app_id = c.app_id) t ); -- 结果校验 SELECT id, name, app_id, enabled, auto_bind, remark, qrcode_url FROM yz_platform_wechat_mini_app WHERE delete_time IS NULL;