puzhibing
2026-09-28 ac5dac6c7c45e4c2ecf3cc7ccebac78d65ca9141
sql/20260928_company_account_role.sql
@@ -3,47 +3,20 @@
-- 创建日期: 2026-09-28
-- 说明:
--   1. t_group_company 新增 account/password(存储前端 HMAC-MD5 加密后的登录密码)
--      注意:Mycat 2.0 不支持 SET @变量/PREPARE 条件化 DDL(会静默失效),故此处直接 ALTER;
--      执行前请先只读确认列不存在(information_schema.COLUMNS),重复执行报 Duplicate column name 属预期
--   2. sys_role 幂等补充内置角色 role_key=company(所有公司账号共享,菜单在角色管理配置)
--   3. sys_user.roleType 注释统一为 1=平台 2=合作商 3=门店 4=修理厂 5=公司
-- 库: charging_pile_other
-- ------------------------------------------
USE `charging_pile_other`;
-- 1. t_group_company 增加登录账号/密码字段(幂等)
SET @gc_account_exists := (
    SELECT COUNT(1)
    FROM information_schema.COLUMNS
    WHERE TABLE_SCHEMA = DATABASE()
      AND TABLE_NAME = 't_group_company'
      AND COLUMN_NAME = 'account'
);
-- 1. t_group_company 增加登录账号/密码字段(已只读确认当前库缺列;Mycat 2.0 不支持条件化 DDL)
ALTER TABLE `t_group_company`
    ADD COLUMN `account` varchar(255) NULL DEFAULT NULL COMMENT '登录账号' AFTER `contact_phone`;
SET @gc_account_ddl := IF(
    @gc_account_exists = 0,
    'ALTER TABLE `t_group_company` ADD COLUMN `account` varchar(255) NULL DEFAULT NULL COMMENT ''登录账号'' AFTER `contact_phone`',
    'SELECT 1'
);
PREPARE gc_account_stmt FROM @gc_account_ddl;
EXECUTE gc_account_stmt;
DEALLOCATE PREPARE gc_account_stmt;
SET @gc_password_exists := (
    SELECT COUNT(1)
    FROM information_schema.COLUMNS
    WHERE TABLE_SCHEMA = DATABASE()
      AND TABLE_NAME = 't_group_company'
      AND COLUMN_NAME = 'password'
);
SET @gc_password_ddl := IF(
    @gc_password_exists = 0,
    'ALTER TABLE `t_group_company` ADD COLUMN `password` varchar(255) NULL DEFAULT NULL COMMENT ''登录密码(前端HMAC-MD5加密值)'' AFTER `account`',
    'SELECT 1'
);
PREPARE gc_password_stmt FROM @gc_password_ddl;
EXECUTE gc_password_stmt;
DEALLOCATE PREPARE gc_password_stmt;
ALTER TABLE `t_group_company`
    ADD COLUMN `password` varchar(255) NULL DEFAULT NULL COMMENT '登录密码(前端HMAC-MD5加密值)' AFTER `account`;
-- 2. 内置公司角色(幂等)
INSERT INTO sys_role (role_name, role_key, data_scope, status, del_flag, create_by, create_time, remark)