admin的数据库文件补全,修复uvue中的数据库接入bug
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
-- RPC: rpc_admin_delete_delivery_staff
|
||||
-- 管理端删除配送员
|
||||
-- 管理端删除配送员(支持权限检查)
|
||||
|
||||
CREATE OR REPLACE FUNCTION public.rpc_admin_delete_delivery_staff(
|
||||
p_id UUID
|
||||
@@ -11,17 +11,21 @@ SET search_path = public
|
||||
AS $$
|
||||
DECLARE
|
||||
v_ok BOOLEAN;
|
||||
v_user_id UUID;
|
||||
BEGIN
|
||||
-- 1. 权限检查 (仅管理员)
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM public.ak_users
|
||||
WHERE auth_id = auth.uid() AND role = 'admin'
|
||||
) THEN
|
||||
RAISE EXCEPTION 'Permission denied';
|
||||
-- 1. 权限检查 (使用通用权限校验函数)
|
||||
IF NOT public.check_admin_permission('delivery:staff:delete') THEN
|
||||
RAISE EXCEPTION 'Permission denied: delivery:staff:delete';
|
||||
END IF;
|
||||
|
||||
-- 2. 执行删除
|
||||
DELETE FROM public.ml_delivery_staff 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_delivery_staff
|
||||
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;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
-- RPC: rpc_admin_delete_delivery_station
|
||||
-- 管理端删除提货点/核销点
|
||||
-- 管理端删除提货点/核销点(支持级联软删除配送员关联)
|
||||
|
||||
CREATE OR REPLACE FUNCTION public.rpc_admin_delete_delivery_station(
|
||||
p_id UUID
|
||||
@@ -11,17 +11,27 @@ SET search_path = public
|
||||
AS $$
|
||||
DECLARE
|
||||
v_ok BOOLEAN;
|
||||
v_user_id UUID;
|
||||
BEGIN
|
||||
-- 1. 权限检查 (仅管理员)
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM public.ak_users
|
||||
WHERE auth_id = auth.uid() AND role = 'admin'
|
||||
) THEN
|
||||
RAISE EXCEPTION 'Permission denied';
|
||||
-- 1. 权限检查
|
||||
IF NOT public.check_admin_permission('delivery:station:delete') THEN
|
||||
RAISE EXCEPTION 'Permission denied: delivery:station:delete';
|
||||
END IF;
|
||||
|
||||
-- 2. 执行删除
|
||||
DELETE FROM public.ml_delivery_stations 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_delivery_staff
|
||||
SET deleted_at = now(),
|
||||
deleted_by = v_user_id
|
||||
WHERE station_id = p_id AND deleted_at IS NULL;
|
||||
|
||||
-- 4. 执行软删除站点本身
|
||||
UPDATE public.ml_delivery_stations
|
||||
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;
|
||||
|
||||
Reference in New Issue
Block a user