You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

154 lines
5.2 KiB

-- 确保 users 表包含立即入驻功能所需的所有字段
-- 此脚本用于修复或添加入驻流程可能需要的数据库字段
USE wechat_app;
-- 检查并添加缺失的字段(如果不存在)
-- 1. 入驻相关字段
-- 检查 collaborationid 字段(合作商身份)
IF NOT EXISTS (
SELECT * FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'wechat_app'
AND TABLE_NAME = 'users'
AND COLUMN_NAME = 'collaborationid'
) THEN
ALTER TABLE users ADD COLUMN collaborationid TEXT COMMENT '合作商身份' AFTER demand;
END IF;
-- 检查 cooperation 字段(合作模式)
IF NOT EXISTS (
SELECT * FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'wechat_app'
AND TABLE_NAME = 'users'
AND COLUMN_NAME = 'cooperation'
) THEN
ALTER TABLE users ADD COLUMN cooperation VARCHAR(255) COMMENT '合作模式' AFTER collaborationid;
END IF;
-- 检查 businesslicenseurl 字段(营业执照)
IF NOT EXISTS (
SELECT * FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'wechat_app'
AND TABLE_NAME = 'users'
AND COLUMN_NAME = 'businesslicenseurl'
) THEN
ALTER TABLE users ADD COLUMN businesslicenseurl TEXT COMMENT '营业执照URL' AFTER cooperation;
END IF;
-- 检查 proofurl 字段(证明材料)
IF NOT EXISTS (
SELECT * FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'wechat_app'
AND TABLE_NAME = 'users'
AND COLUMN_NAME = 'proofurl'
) THEN
ALTER TABLE users ADD COLUMN proofurl TEXT COMMENT '证明材料URL' AFTER businesslicenseurl;
END IF;
-- 检查 brandurl 字段(品牌授权链)
IF NOT EXISTS (
SELECT * FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'wechat_app'
AND TABLE_NAME = 'users'
AND COLUMN_NAME = 'brandurl'
) THEN
ALTER TABLE users ADD COLUMN brandurl TEXT COMMENT '品牌授权链文件URL' AFTER proofurl;
END IF;
-- 检查 partnerstatus 字段(合作商状态)
IF NOT EXISTS (
SELECT * FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'wechat_app'
AND TABLE_NAME = 'users'
AND COLUMN_NAME = 'partnerstatus'
) THEN
ALTER TABLE users ADD COLUMN partnerstatus VARCHAR(255) COMMENT '合作商状态' AFTER brandurl;
END IF;
-- 2. 详细地址相关字段
-- 检查 detailedaddress 字段
IF NOT EXISTS (
SELECT * FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'wechat_app'
AND TABLE_NAME = 'users'
AND COLUMN_NAME = 'detailedaddress'
) THEN
ALTER TABLE users ADD COLUMN detailedaddress VARCHAR(255) COMMENT '详细地址' AFTER district;
END IF;
-- 3. 其他可能需要的字段
-- 检查 reasonforfailure 字段(审核失败原因)
IF NOT EXISTS (
SELECT * FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'wechat_app'
AND TABLE_NAME = 'users'
AND COLUMN_NAME = 'reasonforfailure'
) THEN
ALTER TABLE users ADD COLUMN reasonforfailure TEXT COMMENT '审核失败原因' AFTER partnerstatus;
END IF;
-- 检查 idcardstatus 字段(身份证认证状态)
IF NOT EXISTS (
SELECT * FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'wechat_app'
AND TABLE_NAME = 'users'
AND COLUMN_NAME = 'idcardstatus'
) THEN
ALTER TABLE users ADD COLUMN idcardstatus INT DEFAULT 0 COMMENT '身份证认证状态(0:待审核,1:审核通过,2:审核失败)' AFTER reasonforfailure;
END IF;
-- 检查 audit_time 字段(审核时间)
IF NOT EXISTS (
SELECT * FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'wechat_app'
AND TABLE_NAME = 'users'
AND COLUMN_NAME = 'audit_time'
) THEN
ALTER TABLE users ADD COLUMN audit_time DATETIME COMMENT '审核时间' AFTER reasonforfailure;
END IF;
-- 4. 修改字段属性以允许空值(如果需要)
-- 修改 collaborationid 允许为空(入驻流程中可能未选择)
ALTER TABLE users MODIFY COLUMN collaborationid TEXT NULL COMMENT '合作商身份';
-- 修改 cooperation 允许为空
ALTER TABLE users MODIFY COLUMN cooperation VARCHAR(255) NULL COMMENT '合作模式';
-- 修改 province/city/district 允许为空(地址选择可能不完整)
ALTER TABLE users MODIFY COLUMN province VARCHAR(50) NULL COMMENT '省份';
ALTER TABLE users MODIFY COLUMN city VARCHAR(50) NULL COMMENT '城市';
ALTER TABLE users MODIFY COLUMN district VARCHAR(255) NULL COMMENT '区域';
-- 5. 添加索引以提高查询性能
-- 为 openid 添加唯一索引(如果尚未存在)
IF NOT EXISTS (
SELECT * FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = 'wechat_app'
AND TABLE_NAME = 'users'
AND INDEX_NAME = 'idx_openid'
) THEN
CREATE INDEX idx_openid ON users(openid);
END IF;
-- 为 partnerstatus 添加索引(用于查询审核状态)
IF NOT EXISTS (
SELECT * FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = 'wechat_app'
AND TABLE_NAME = 'users'
AND INDEX_NAME = 'idx_partnerstatus'
) THEN
CREATE INDEX idx_partnerstatus ON users(partnerstatus);
END IF;
-- 为 userId 添加索引(如果尚未存在唯一索引)
IF NOT EXISTS (
SELECT * FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = 'wechat_app'
AND TABLE_NAME = 'users'
AND INDEX_NAME = 'idx_userId'
) THEN
CREATE INDEX idx_userId ON users(userId);
END IF;
SELECT '数据库表结构修复完成!' AS status;