35 lines
2.0 KiB
SQL
35 lines
2.0 KiB
SQL
SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||
|
||
SET @now_ms = CAST(UNIX_TIMESTAMP(UTC_TIMESTAMP(3)) * 1000 AS UNSIGNED);
|
||
|
||
CREATE TABLE IF NOT EXISTS admin_databi_kpi_targets (
|
||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||
user_id BIGINT UNSIGNED NOT NULL COMMENT '后台用户 ID(运营人员)',
|
||
app_code VARCHAR(32) NOT NULL COMMENT '应用编码',
|
||
region_id BIGINT NOT NULL DEFAULT 0 COMMENT '区域 ID,0 表示整个 app',
|
||
period_month CHAR(7) NOT NULL COMMENT '目标月份,格式 YYYY-MM',
|
||
target_usd_minor BIGINT NOT NULL DEFAULT 0 COMMENT '当月充值目标,USD 分',
|
||
daily_target_usd_minor BIGINT NOT NULL DEFAULT 0 COMMENT '当日充值目标,USD 分;0 表示按月目标/自然天数折算',
|
||
created_at_ms BIGINT NOT NULL COMMENT '创建时间,UTC epoch ms',
|
||
updated_at_ms BIGINT NOT NULL COMMENT '更新时间,UTC epoch ms',
|
||
UNIQUE KEY uk_admin_databi_kpi_target (user_id, app_code, region_id, period_month),
|
||
KEY idx_admin_databi_kpi_targets_period (period_month, app_code, region_id),
|
||
CONSTRAINT fk_admin_databi_kpi_targets_user FOREIGN KEY (user_id) REFERENCES admin_users(id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='社交 BI 运营人员充值 KPI 月度目标';
|
||
|
||
INSERT INTO admin_permissions (name, code, kind, description, created_at_ms, updated_at_ms) VALUES
|
||
('BI KPI 目标配置', 'databi-kpi:manage', 'button', '允许配置社交 BI 运营人员的充值 KPI 目标', @now_ms, @now_ms),
|
||
('BI 全员绩效查看', 'databi-kpi:view-all', 'button', '允许查看所有运营人员的 KPI 绩效;无此权限时只能查看自己', @now_ms, @now_ms)
|
||
ON DUPLICATE KEY UPDATE
|
||
name = VALUES(name),
|
||
kind = VALUES(kind),
|
||
description = VALUES(description),
|
||
updated_at_ms = @now_ms;
|
||
|
||
INSERT IGNORE INTO admin_role_permissions (role_id, permission_id)
|
||
SELECT admin_role.id, admin_permission.id
|
||
FROM admin_roles admin_role
|
||
JOIN admin_permissions admin_permission
|
||
WHERE admin_role.code = 'platform-admin'
|
||
AND admin_permission.code IN ('databi-kpi:manage', 'databi-kpi:view-all');
|