admin的数据库文件补全,修复uvue中的数据库接入bug

This commit is contained in:
comlibmb
2026-02-25 10:02:50 +08:00
parent 5d00e3d74e
commit dc8f899610
40 changed files with 1629 additions and 625 deletions

View File

@@ -3,7 +3,7 @@
-- 位置docs/sql/30_rpc/kefu/
-- 对象类型RPC 函数 (SECURITY DEFINER)
-- 版本v1
-- 说明:管理端删除客服账号
-- 说明:管理端删除客服账号(使用通用权限校验)
-- =====================================================================================
CREATE OR REPLACE FUNCTION public.rpc_admin_kefu_account_delete(
@@ -16,17 +16,21 @@ LANGUAGE plpgsql
AS $$
DECLARE
v_ok BOOLEAN;
v_user_id UUID;
BEGIN
-- 1. 权限检查
IF NOT EXISTS (
SELECT 1 FROM public.ak_users
WHERE id = auth.uid() AND role IN ('admin', 'analytics')
) THEN
RAISE EXCEPTION 'Permission denied';
IF NOT public.check_admin_permission('kefu:account:delete') THEN
RAISE EXCEPTION 'Permission denied: kefu:account:delete';
END IF;
-- 2. 执行删除
DELETE FROM public.ml_kefu_accounts WHERE id = p_id;
-- 2. 获取当前操作用户 ID
SELECT id INTO v_user_id FROM public.ak_users WHERE auth_id = auth.uid();
-- 3. 执行软删除:标记 deleted_at
UPDATE public.ml_kefu_accounts
SET deleted_at = now(),
deleted_by = v_user_id
WHERE id = p_id AND deleted_at IS NULL;
GET DIAGNOSTICS v_ok = ROW_COUNT;
RETURN v_ok;

View File

@@ -3,7 +3,7 @@
-- 位置docs/sql/30_rpc/kefu/
-- 对象类型RPC 函数 (SECURITY DEFINER)
-- 版本v1
-- 说明:管理端删除客服自动回复配置
-- 说明:管理端删除客服自动回复配置(使用通用权限校验)
-- =====================================================================================
CREATE OR REPLACE FUNCTION public.rpc_admin_kefu_auto_reply_delete(
@@ -16,17 +16,21 @@ LANGUAGE plpgsql
AS $$
DECLARE
v_ok BOOLEAN;
v_user_id UUID;
BEGIN
-- 1. 权限检查
IF NOT EXISTS (
SELECT 1 FROM public.ak_users
WHERE id = auth.uid() AND role IN ('admin', 'analytics')
) THEN
RAISE EXCEPTION 'Permission denied';
IF NOT public.check_admin_permission('kefu:auto_reply:delete') THEN
RAISE EXCEPTION 'Permission denied: kefu:auto_reply:delete';
END IF;
-- 2. 执行删除
DELETE FROM public.ml_kefu_auto_replies WHERE id = p_id;
-- 2. 获取当前操作用户 ID
SELECT id INTO v_user_id FROM public.ak_users WHERE auth_id = auth.uid();
-- 3. 执行软删除:标记 deleted_at
UPDATE public.ml_kefu_auto_replies
SET deleted_at = now(),
deleted_by = v_user_id
WHERE id = p_id AND deleted_at IS NULL;
GET DIAGNOSTICS v_ok = ROW_COUNT;
RETURN v_ok;

View File

@@ -3,7 +3,7 @@
-- 位置docs/sql/30_rpc/kefu/
-- 对象类型RPC 函数 (SECURITY DEFINER)
-- 版本v1
-- 说明:管理端删除话术分类
-- 说明:管理端删除话术分类(支持级联软删除话术)
-- =====================================================================================
CREATE OR REPLACE FUNCTION public.rpc_admin_kefu_word_category_delete(
@@ -16,17 +16,27 @@ LANGUAGE plpgsql
AS $$
DECLARE
v_ok BOOLEAN;
v_user_id UUID;
BEGIN
-- 1. 权限检查
IF NOT EXISTS (
SELECT 1 FROM public.ak_users
WHERE id = auth.uid() AND role IN ('admin', 'analytics')
) THEN
RAISE EXCEPTION 'Permission denied';
IF NOT public.check_admin_permission('kefu:word:category:delete') THEN
RAISE EXCEPTION 'Permission denied: kefu:word:category:delete';
END IF;
-- 2. 执行删除 (ml_kefu_words 已设置 ON DELETE CASCADE)
DELETE FROM public.ml_kefu_word_categories WHERE id = p_id;
-- 2. 获取当前操作用户 ID
SELECT id INTO v_user_id FROM public.ak_users WHERE auth_id = auth.uid();
-- 3. 级联软删除:先标记该分类下的话术为删除
UPDATE public.ml_kefu_words
SET deleted_at = now(),
deleted_by = v_user_id
WHERE category_id = p_id AND deleted_at IS NULL;
-- 4. 执行软删除分类本身:标记 deleted_at
UPDATE public.ml_kefu_word_categories
SET deleted_at = now(),
deleted_by = v_user_id
WHERE id = p_id AND deleted_at IS NULL;
GET DIAGNOSTICS v_ok = ROW_COUNT;
RETURN v_ok;

View File

@@ -3,7 +3,7 @@
-- 位置docs/sql/30_rpc/kefu/
-- 对象类型RPC 函数 (SECURITY DEFINER)
-- 版本v1
-- 说明:管理端删除快捷话术
-- 说明:管理端删除快捷话术(使用通用权限校验)
-- =====================================================================================
CREATE OR REPLACE FUNCTION public.rpc_admin_kefu_word_delete(
@@ -16,17 +16,21 @@ LANGUAGE plpgsql
AS $$
DECLARE
v_ok BOOLEAN;
v_user_id UUID;
BEGIN
-- 1. 权限检查
IF NOT EXISTS (
SELECT 1 FROM public.ak_users
WHERE id = auth.uid() AND role IN ('admin', 'analytics')
) THEN
RAISE EXCEPTION 'Permission denied';
IF NOT public.check_admin_permission('kefu:word:delete') THEN
RAISE EXCEPTION 'Permission denied: kefu:word:delete';
END IF;
-- 2. 执行删除
DELETE FROM public.ml_kefu_words WHERE id = p_id;
-- 2. 获取当前操作用户 ID
SELECT id INTO v_user_id FROM public.ak_users WHERE auth_id = auth.uid();
-- 3. 执行软删除:标记 deleted_at
UPDATE public.ml_kefu_words
SET deleted_at = now(),
deleted_by = v_user_id
WHERE id = p_id AND deleted_at IS NULL;
GET DIAGNOSTICS v_ok = ROW_COUNT;
RETURN v_ok;