zjk
7 小时以前 8ea6a7dd1fcdbd4e22c564ed63a5a8023510161a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
-- ----------------------------
-- 企业/个体工商户认证:认证资料表扩充
--
-- 目标库 hugray-account(库名含连字符,任何引用都必须用反引号)。
-- 本脚本为扩充脚本,两张认证表已有数据,一律用 ALTER,绝不 DROP。
--
-- 背景:原型「企业/个体认证」四步向导(企业信息 / 法人信息 / 收款信息 / 提交审核)
-- 所需字段中,营业执照有效期类型、法人身份证正反面、法人身份证有效期、法人身份证详细地址、
-- 负责人姓名/电话/邮箱、收款类型、银行卡照片、银行卡号、开户城市共 13 列缺失,本次补齐。
--
-- 涉及表:
--   account_certification_apply  存"每次提交的申请",提交企业认证时 subject_type 取 2/3
--   account_certification        存"当前生效"的认证资料,审核通过时落一份
--   account_user                 新增 company_auth_status,企业/个体认证状态独立于 auth_status
--
-- 【枚举取值】
--   主体类型 subject_type            :1个人 2个体工商户 3企业
--   有效期类型 license_valid_type     :1长期 2短期
--   有效期类型 legal_id_valid_type    :1长期 2短期
--   企业认证状态 company_auth_status  :0未认证 1审核中 2已认证 3认证失败
--
-- 【幂等说明】复用 hugray_add_column 临时存储过程做存在性判断,脚本可安全重复执行。
--
-- 【回滚语句】(如需回滚,在 hugray-account 库执行)
--   ALTER TABLE `account_certification_apply` DROP COLUMN `license_valid_type`,
--     DROP COLUMN `legal_id_card_front`, DROP COLUMN `legal_id_card_back`,
--     DROP COLUMN `legal_id_valid_type`, DROP COLUMN `legal_id_valid_period`,
--     DROP COLUMN `legal_id_address`, DROP COLUMN `contact_name`, DROP COLUMN `contact_phone`,
--     DROP COLUMN `contact_email`, DROP COLUMN `payee_type`, DROP COLUMN `bank_card_image`,
--     DROP COLUMN `bank_card_no`, DROP COLUMN `bank_city`;
--   ALTER TABLE `account_certification` DROP COLUMN `license_valid_type`,
--     DROP COLUMN `legal_id_card_front`, DROP COLUMN `legal_id_card_back`,
--     DROP COLUMN `legal_id_valid_type`, DROP COLUMN `legal_id_valid_period`,
--     DROP COLUMN `legal_id_address`, DROP COLUMN `contact_name`, DROP COLUMN `contact_phone`,
--     DROP COLUMN `contact_email`, DROP COLUMN `payee_type`, DROP COLUMN `bank_card_image`,
--     DROP COLUMN `bank_card_no`, DROP COLUMN `bank_city`;
--   ALTER TABLE `account_user` DROP COLUMN `company_auth_status`;
-- ----------------------------
 
USE `hugray-account`;
 
-- ---------- 幂等辅助过程 ----------
DROP PROCEDURE IF EXISTS `hugray_add_column`;
DROP PROCEDURE IF EXISTS `hugray_add_index`;
 
DELIMITER $$
CREATE PROCEDURE `hugray_add_column`(IN p_table VARCHAR(64), IN p_column VARCHAR(64), IN p_definition TEXT)
BEGIN
  IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
                 WHERE TABLE_SCHEMA = DATABASE()
                   AND TABLE_NAME   = p_table
                   AND COLUMN_NAME  = p_column) THEN
    SET @ddl = CONCAT('ALTER TABLE `', p_table, '` ADD COLUMN `', p_column, '` ', p_definition);
    PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  END IF;
END$$
 
CREATE PROCEDURE `hugray_add_index`(IN p_table VARCHAR(64), IN p_index VARCHAR(64), IN p_columns TEXT)
BEGIN
  IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
                 WHERE TABLE_SCHEMA = DATABASE()
                   AND TABLE_NAME   = p_table
                   AND INDEX_NAME   = p_index) THEN
    SET @ddl = CONCAT('ALTER TABLE `', p_table, '` ADD INDEX `', p_index, '` (', p_columns, ')');
    PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  END IF;
END$$
DELIMITER ;
 
-- ---------- 1. account_certification_apply:企业/个体认证字段 ----------
CALL `hugray_add_column`('account_certification_apply', 'license_valid_type',   "varchar(16)  DEFAULT NULL COMMENT '营业执照有效期类型(1长期 2短期)'");
CALL `hugray_add_column`('account_certification_apply', 'legal_id_card_front',  "varchar(500) DEFAULT NULL COMMENT '法人身份证人像面图片'");
CALL `hugray_add_column`('account_certification_apply', 'legal_id_card_back',   "varchar(500) DEFAULT NULL COMMENT '法人身份证国徽面图片'");
CALL `hugray_add_column`('account_certification_apply', 'legal_id_valid_type',  "varchar(16)  DEFAULT NULL COMMENT '法人身份证有效期类型(1长期 2短期)'");
CALL `hugray_add_column`('account_certification_apply', 'legal_id_valid_period',"varchar(32)  DEFAULT NULL COMMENT '法人身份证有效期(存文本,如 2024-01-01~2034-01-01)'");
CALL `hugray_add_column`('account_certification_apply', 'legal_id_address',     "varchar(255) DEFAULT NULL COMMENT '法人身份证详细地址'");
CALL `hugray_add_column`('account_certification_apply', 'contact_name',         "varchar(64)  DEFAULT NULL COMMENT '负责人姓名'");
CALL `hugray_add_column`('account_certification_apply', 'contact_phone',        "varchar(20)  DEFAULT NULL COMMENT '负责人联系电话'");
CALL `hugray_add_column`('account_certification_apply', 'contact_email',        "varchar(128) DEFAULT NULL COMMENT '负责人邮箱'");
CALL `hugray_add_column`('account_certification_apply', 'payee_type',           "varchar(16)  DEFAULT NULL COMMENT '收款类型'");
CALL `hugray_add_column`('account_certification_apply', 'bank_card_image',      "varchar(500) DEFAULT NULL COMMENT '银行卡号码面照片'");
CALL `hugray_add_column`('account_certification_apply', 'bank_card_no',         "varchar(32)  DEFAULT NULL COMMENT '银行卡号'");
CALL `hugray_add_column`('account_certification_apply', 'bank_city',            "varchar(128) DEFAULT NULL COMMENT '开户城市'");
 
-- ---------- 2. account_certification:企业/个体认证字段(与申请表同构) ----------
CALL `hugray_add_column`('account_certification', 'license_valid_type',   "varchar(16)  DEFAULT NULL COMMENT '营业执照有效期类型(1长期 2短期)'");
CALL `hugray_add_column`('account_certification', 'legal_id_card_front',  "varchar(500) DEFAULT NULL COMMENT '法人身份证人像面图片'");
CALL `hugray_add_column`('account_certification', 'legal_id_card_back',   "varchar(500) DEFAULT NULL COMMENT '法人身份证国徽面图片'");
CALL `hugray_add_column`('account_certification', 'legal_id_valid_type',  "varchar(16)  DEFAULT NULL COMMENT '法人身份证有效期类型(1长期 2短期)'");
CALL `hugray_add_column`('account_certification', 'legal_id_valid_period',"varchar(32)  DEFAULT NULL COMMENT '法人身份证有效期(存文本,如 2024-01-01~2034-01-01)'");
CALL `hugray_add_column`('account_certification', 'legal_id_address',     "varchar(255) DEFAULT NULL COMMENT '法人身份证详细地址'");
CALL `hugray_add_column`('account_certification', 'contact_name',         "varchar(64)  DEFAULT NULL COMMENT '负责人姓名'");
CALL `hugray_add_column`('account_certification', 'contact_phone',        "varchar(20)  DEFAULT NULL COMMENT '负责人联系电话'");
CALL `hugray_add_column`('account_certification', 'contact_email',        "varchar(128) DEFAULT NULL COMMENT '负责人邮箱'");
CALL `hugray_add_column`('account_certification', 'payee_type',           "varchar(16)  DEFAULT NULL COMMENT '收款类型'");
CALL `hugray_add_column`('account_certification', 'bank_card_image',      "varchar(500) DEFAULT NULL COMMENT '银行卡号码面照片'");
CALL `hugray_add_column`('account_certification', 'bank_card_no',         "varchar(32)  DEFAULT NULL COMMENT '银行卡号'");
CALL `hugray_add_column`('account_certification', 'bank_city',            "varchar(128) DEFAULT NULL COMMENT '开户城市'");
 
-- ---------- 3. account_user:企业/个体认证状态(独立于 auth_status) ----------
-- 个人中心需两行独立徽标(实名认证 / 企业个体户认证),故企业状态单独一列,互不覆盖。
CALL `hugray_add_column`('account_user', 'company_auth_status', "char(1) DEFAULT '0' COMMENT '企业/个体认证状态(0未认证 1审核中 2已认证 3认证失败)'");
CALL `hugray_add_index`('account_user', 'idx_account_user_company_auth', '`company_auth_status`');
 
-- ---------- 4. 清理辅助过程 ----------
DROP PROCEDURE IF EXISTS `hugray_add_column`;
DROP PROCEDURE IF EXISTS `hugray_add_index`;
 
-- ---------- 5. 结果核对 ----------
SELECT `COLUMN_NAME`, `COLUMN_TYPE`, `COLUMN_DEFAULT`, `COLUMN_COMMENT`
FROM INFORMATION_SCHEMA.COLUMNS
WHERE `TABLE_SCHEMA` = DATABASE() AND `TABLE_NAME` = 'account_certification_apply'
ORDER BY `ORDINAL_POSITION`;