-- ============================================================
|
-- Shiro 权限初始化 —— 抖音商品(同步 / 查询 / 绑定套餐)
|
-- 数据库: PostgreSQL (park_bike, system_* 系列表)
|
-- 作者 : rk
|
-- 日期 : 2026-06-25
|
-- 说明 :
|
-- 1) 本脚本【幂等】,可重复执行,不产生重复权限或重复授权。
|
-- 2) Shiro 的 @RequiresPermissions 匹配 system_permission.code。
|
-- 3) 抖音【验券】类接口为 web 端使用(JWT 鉴权),不走 Shiro,
|
-- 故不在此处登记权限。
|
-- 4) 默认授权给超管角色 id = 1;若不同请替换。菜单(system_menu)另行配置。
|
-- ============================================================
|
|
|
-- ------------------------------------------------------------
|
-- 一、抖音商品权限定义(system_permission)
|
-- ------------------------------------------------------------
|
|
INSERT INTO system_permission (code, name, remark, fixed, deleted, create_time, update_time)
|
SELECT 'business:douyinProduct:sync', '抖音商品-同步', '从抖音同步团购商品到本地', 0, 0, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
|
WHERE NOT EXISTS (SELECT 1 FROM system_permission WHERE code = 'business:douyinProduct:sync' AND deleted = 0);
|
|
INSERT INTO system_permission (code, name, remark, fixed, deleted, create_time, update_time)
|
SELECT 'business:douyinProduct:query', '抖音商品-查询', '抖音商品分页/详情/联调测试查询', 0, 0, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
|
WHERE NOT EXISTS (SELECT 1 FROM system_permission WHERE code = 'business:douyinProduct:query' AND deleted = 0);
|
|
INSERT INTO system_permission (code, name, remark, fixed, deleted, create_time, update_time)
|
SELECT 'business:douyinProduct:bind', '抖音商品-绑定套餐', '将抖音商品 out_id 绑定本地套餐(discount.id),空值解绑', 0, 0, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
|
WHERE NOT EXISTS (SELECT 1 FROM system_permission WHERE code = 'business:douyinProduct:bind' AND deleted = 0);
|
|
|
-- ------------------------------------------------------------
|
-- 二、授权给超级管理员角色(system_role_permission,默认 id = 1)
|
-- ------------------------------------------------------------
|
|
INSERT INTO system_role_permission (role_id, permission_id, deleted, create_time, update_time)
|
SELECT 1 AS role_id, p.id AS permission_id, 0, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
|
FROM system_permission p
|
WHERE p.deleted = 0
|
AND p.code IN (
|
'business:douyinProduct:sync',
|
'business:douyinProduct:query',
|
'business:douyinProduct:bind'
|
)
|
AND NOT EXISTS (
|
SELECT 1 FROM system_role_permission rp
|
WHERE rp.role_id = 1 AND rp.permission_id = p.id AND rp.deleted = 0
|
);
|
|
|
-- ============================================================
|
-- 附:给【其它角色】授权的模板(按需取消注释使用)
|
-- ------------------------------------------------------------
|
-- INSERT INTO system_role_permission (role_id, permission_id, deleted, create_time, update_time)
|
-- SELECT r.id, p.id, 0, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
|
-- FROM system_permission p
|
-- CROSS JOIN system_role r
|
-- WHERE p.deleted = 0
|
-- AND r.deleted = 0
|
-- AND r.name LIKE '%运营%' -- ← 改成目标角色名关键字
|
-- AND p.code LIKE 'business:douyinProduct%'
|
-- AND NOT EXISTS (
|
-- SELECT 1 FROM system_role_permission rp
|
-- WHERE rp.role_id = r.id AND rp.permission_id = p.id AND rp.deleted = 0
|
-- );
|
-- ============================================================
|
|
|
-- ============================================================
|
-- 数据报表(概览 / 收入车型分析 / 收入统计)—— 不登记权限点
|
-- 作者 : rk
|
-- 日期 : 2026-06-26
|
-- 说明 :
|
-- 1) 数据报表接口由 web 端(JWT)迁移至 platform 端(/business/report/*)。
|
-- 2) 【配置约定】报表类为只读统计,不做菜单/按钮级权限限制:
|
-- Controller 上不挂 @RequiresPermissions,仅受 Shiro authc 登录校验保护,
|
-- 任何登录后台的账号均可访问;故不登记 system_permission 权限点,
|
-- 也不写 system_role_permission 授权。
|
-- 3) 如日后需要细粒度权限,再于此追加 business:report:query 定义并授权。
|
-- ============================================================
|
|
|
-- ============================================================
|
-- 抖音券核销(管理端:核销记录分页 / 撤销核销)
|
-- 作者 : rk
|
-- 日期 : 2026-06-26
|
-- 说明 :
|
-- 1) 撤销核销由 web 端(/web/douyin/cancel,JWT)迁移至 platform 端(/business/douyinVerify/cancel,Shiro)。
|
-- 2) 核销记录对外分页 /business/douyinVerify/page 亦在 platform 端。
|
-- 3) 幂等登记 query/cancel 两个权限点,默认授权超管 role_id = 1。
|
-- ============================================================
|
|
INSERT INTO system_permission (code, name, remark, fixed, deleted, create_time, update_time)
|
SELECT 'business:douyinVerify:query', '抖音核销-查询', '抖音券核销记录对外分页查询', 0, 0, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
|
WHERE NOT EXISTS (SELECT 1 FROM system_permission WHERE code = 'business:douyinVerify:query' AND deleted = 0);
|
|
INSERT INTO system_permission (code, name, remark, fixed, deleted, create_time, update_time)
|
SELECT 'business:douyinVerify:cancel', '抖音核销-撤销', '撤销抖音券核销(管理端,作废本地套餐卡)', 0, 0, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
|
WHERE NOT EXISTS (SELECT 1 FROM system_permission WHERE code = 'business:douyinVerify:cancel' AND deleted = 0);
|
|
INSERT INTO system_role_permission (role_id, permission_id, deleted, create_time, update_time)
|
SELECT 1 AS role_id, p.id AS permission_id, 0, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
|
FROM system_permission p
|
WHERE p.deleted = 0
|
AND p.code IN (
|
'business:douyinVerify:query',
|
'business:douyinVerify:cancel'
|
)
|
AND NOT EXISTS (
|
SELECT 1 FROM system_role_permission rp
|
WHERE rp.role_id = 1 AND rp.permission_id = p.id AND rp.deleted = 0
|
);
|