fix: simplify balance billing and govern operation logs
This commit is contained in:
@@ -17,11 +17,20 @@ export interface CreateOperationLogDto {
|
||||
export class AuditService {
|
||||
constructor(private readonly prisma: PrismaService) {}
|
||||
|
||||
list(tenantId?: string) {
|
||||
return this.prisma.operationLog.findMany({
|
||||
where: tenantId ? { tenantId } : undefined,
|
||||
orderBy: { createdAt: 'desc' },
|
||||
});
|
||||
async list(tenantId?: string, pageInput?: number, pageSizeInput?: number) {
|
||||
const page = positiveInteger(pageInput, 1);
|
||||
const pageSize = Math.min(100, positiveInteger(pageSizeInput, 20));
|
||||
const where = tenantId ? { tenantId } : undefined;
|
||||
const [items, total] = await Promise.all([
|
||||
this.prisma.operationLog.findMany({
|
||||
where,
|
||||
orderBy: [{ createdAt: 'desc' }, { id: 'desc' }],
|
||||
skip: (page - 1) * pageSize,
|
||||
take: pageSize,
|
||||
}),
|
||||
this.prisma.operationLog.count({ where }),
|
||||
]);
|
||||
return { items, total, page, pageSize };
|
||||
}
|
||||
|
||||
create(data: CreateOperationLogDto) {
|
||||
@@ -38,3 +47,8 @@ export class AuditService {
|
||||
return this.prisma.operationLog.create({ data: createData });
|
||||
}
|
||||
}
|
||||
|
||||
function positiveInteger(value: number | undefined, fallback: number) {
|
||||
const normalized = Number(value);
|
||||
return Number.isInteger(normalized) && normalized > 0 ? normalized : fallback;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user