From 13e800f4731f51cac9bc35520d3000a8ccfb8327 Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Mon, 14 Sep 2026 15:38:07 +0800 Subject: [PATCH] =?UTF-8?q?feat(sdk):=20TenantManager=20=E8=A1=A5=20ListAl?= =?UTF-8?q?lTenants=EF=BC=8CAuditManager=20=E8=A1=A5=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E4=B8=8E=E6=B8=85=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ListAllTenants:供种子/运维命令遍历全部租户(不分状态),替代命令层直接 Tenant.objects.all()。 AuditManager.QueryBefore / PurgeBefore:清理任务所需的按时间阈值查询与删除,替代命令层直接持有 AuditLog ORM。 --- auth/managers.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/auth/managers.py b/auth/managers.py index 1cb356c..6a190ab 100644 --- a/auth/managers.py +++ b/auth/managers.py @@ -2364,6 +2364,15 @@ class TenantManager: """ return [UUIDObj(t.TenantUUID).bytes for t in Tenant.objects.filter(TenantStatus=1)] + @staticmethod + def ListAllTenants(): + """获取全部租户(不分状态,供种子/运维命令遍历使用) + + Returns: + QuerySet[Tenant] + """ + return Tenant.objects.all() + @staticmethod def ApproveTenant(TenantUUID, ReviewerUUID): """批准租户入驻(状态 0→1,记录审核人与时间) @@ -3538,6 +3547,28 @@ class AuditManager: pass return True + @staticmethod + def QueryBefore(Threshold): + """查询早于指定时间的审计日志(供清理任务统计与删除) + + Args: + Threshold: 时间阈值(datetime),CreateTime 早于该值即命中 + + Returns: + QuerySet[AuditLog] + """ + return AuditLog.objects.filter(CreateTime__lt=Threshold) + + @staticmethod + def PurgeBefore(Threshold): + """删除早于指定时间的审计日志 + + Returns: + 实际删除条数 + """ + deleted, _ = AuditManager.QueryBefore(Threshold).delete() + return deleted + class InventoryManager: """物品/背包管理器——物品模板与用户物品栏的统一服务层"""