All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m26s
37 lines
1.8 KiB
SQL
37 lines
1.8 KiB
SQL
-- 增加系统账号企微身份绑定,并保存应用可见成员选择快照。
|
||
ALTER TABLE tb_account
|
||
ADD COLUMN IF NOT EXISTS wecom_corp_id varchar(64) NOT NULL DEFAULT '',
|
||
ADD COLUMN IF NOT EXISTS wecom_userid varchar(64) NOT NULL DEFAULT '',
|
||
ADD COLUMN IF NOT EXISTS wecom_name varchar(100) NOT NULL DEFAULT '';
|
||
|
||
CREATE UNIQUE INDEX IF NOT EXISTS uq_account_wecom_identity
|
||
ON tb_account (wecom_corp_id, wecom_userid)
|
||
WHERE deleted_at IS NULL AND wecom_corp_id <> '' AND wecom_userid <> '';
|
||
|
||
CREATE TABLE IF NOT EXISTS tb_wecom_member (
|
||
id bigserial PRIMARY KEY,
|
||
application_id bigint NOT NULL,
|
||
corp_id varchar(64) NOT NULL,
|
||
userid varchar(64) NOT NULL,
|
||
name varchar(100) NOT NULL,
|
||
department_ids jsonb NOT NULL DEFAULT '[]'::jsonb,
|
||
visible boolean NOT NULL DEFAULT true,
|
||
synced_at timestamptz NOT NULL,
|
||
created_at timestamptz NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
updated_at timestamptz NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
CONSTRAINT chk_wecom_member_application_id CHECK (application_id > 0),
|
||
CONSTRAINT chk_wecom_member_userid CHECK (length(btrim(userid)) > 0)
|
||
);
|
||
|
||
CREATE UNIQUE INDEX IF NOT EXISTS uq_wecom_member_identity
|
||
ON tb_wecom_member (application_id, userid);
|
||
|
||
CREATE INDEX IF NOT EXISTS idx_wecom_member_visible_name
|
||
ON tb_wecom_member (application_id, visible, name, userid);
|
||
|
||
COMMENT ON TABLE tb_wecom_member IS '企业微信应用可见成员的本地选择快照,不作为组织模型';
|
||
COMMENT ON COLUMN tb_wecom_member.department_ids IS '企微部门 ID 列表,仅用于管理员辨认成员';
|
||
COMMENT ON COLUMN tb_account.wecom_corp_id IS '绑定的企业微信企业 ID';
|
||
COMMENT ON COLUMN tb_account.wecom_userid IS '绑定的企业微信成员 userid,入库前统一转为小写';
|
||
COMMENT ON COLUMN tb_account.wecom_name IS '绑定时的企业微信成员姓名快照';
|