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

@@ -1,5 +1,5 @@
-- RPC: rpc_admin_delete_agent
-- 管理端删除代理商
-- 管理端删除代理商(支持级联软删除代理申请记录)
CREATE OR REPLACE FUNCTION public.rpc_admin_delete_agent(
p_uid uuid
@@ -11,16 +11,27 @@ SET search_path = public
AS $$
DECLARE
v_ok boolean;
v_user_id UUID;
BEGIN
-- 仅管理员可操作
IF NOT EXISTS (
SELECT 1 FROM public.ak_users u
WHERE u.id = auth.uid() AND u.role = 'admin'
) THEN
RAISE EXCEPTION 'permission denied';
-- 1. 权限检查
IF NOT public.check_admin_permission('distribution:agent:delete') THEN
RAISE EXCEPTION 'Permission denied: distribution:agent:delete';
END IF;
DELETE FROM public.ak_distribution_agents WHERE uid = p_uid;
-- 2. 获取当前操作用户 ID
SELECT id INTO v_user_id FROM public.ak_users WHERE auth_id = auth.uid();
-- 3. 级联软删除:该代理的所有申请记录
UPDATE public.ak_distribution_agent_applications
SET deleted_at = now(),
deleted_by = v_user_id
WHERE user_id = p_uid AND deleted_at IS NULL;
-- 4. 软删除代理商记录
UPDATE public.ak_distribution_agents
SET deleted_at = now(),
deleted_by = v_user_id
WHERE uid = p_uid AND deleted_at IS NULL;
GET DIAGNOSTICS v_ok = ROW_COUNT;
RETURN v_ok;

View File

@@ -1,5 +1,5 @@
-- RPC: rpc_admin_delete_division
-- 管理端删除事业部
-- 管理端删除事业部(支持级联软删除关联代理)
CREATE OR REPLACE FUNCTION public.rpc_admin_delete_division(
p_uid uuid
@@ -11,23 +11,33 @@ SET search_path = public
AS $$
DECLARE
v_ok boolean;
v_user_id UUID;
BEGIN
-- 仅管理员可操作
IF NOT EXISTS (
SELECT 1 FROM public.ak_users u
WHERE u.id = auth.uid() AND u.role = 'admin'
) THEN
RAISE EXCEPTION 'permission denied';
-- 1. 权限检查
IF NOT public.check_admin_permission('distribution:division:delete') THEN
RAISE EXCEPTION 'Permission denied: distribution:division:delete';
END IF;
-- 检查是否有关联代理商
IF EXISTS (
SELECT 1 FROM public.ak_distribution_agents WHERE division_uid = p_uid
) THEN
RAISE EXCEPTION 'cannot delete division with associated agents';
END IF;
-- 2. 获取当前操作用户 ID
SELECT id INTO v_user_id FROM public.ak_users WHERE auth_id = auth.uid();
DELETE FROM public.ak_distribution_divisions WHERE uid = p_uid;
-- 3. 级联软删除:该事业部下的所有代理商
UPDATE public.ak_distribution_agents
SET deleted_at = now(),
deleted_by = v_user_id
WHERE division_uid = p_uid AND deleted_at IS NULL;
-- 4. 级联软删除:该事业部的所有申请记录
UPDATE public.ak_distribution_division_applications
SET deleted_at = now(),
deleted_by = v_user_id
WHERE user_id = p_uid AND deleted_at IS NULL;
-- 5. 软删除事业部本身
UPDATE public.ak_distribution_divisions
SET deleted_at = now(),
deleted_by = v_user_id
WHERE uid = p_uid AND deleted_at IS NULL;
GET DIAGNOSTICS v_ok = ROW_COUNT;
RETURN v_ok;