From 55e5412f5e315d433d2810433da848279b0895f1 Mon Sep 17 00:00:00 2001 From: raohaotian <1227431568@qq.com> Date: Sat, 12 Apr 2025 12:13:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=BD=E8=B1=A1=E8=AE=A1=E7=AE=97=E5=87=BD?= =?UTF-8?q?=E6=95=B0=EF=BC=8C=E6=B7=BB=E5=8A=A0=E8=AE=A1=E7=AE=97=E8=A2=AB?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=86=85=E5=AE=B9=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../models/share-code/share-code.router.ts | 4 + .../models/share-code/share-code.service.ts | 120 ++++++++---------- 2 files changed, 59 insertions(+), 65 deletions(-) diff --git a/apps/server/src/models/share-code/share-code.router.ts b/apps/server/src/models/share-code/share-code.router.ts index ac82db8..1924d2d 100644 --- a/apps/server/src/models/share-code/share-code.router.ts +++ b/apps/server/src/models/share-code/share-code.router.ts @@ -62,5 +62,9 @@ export class ShareCodeRouter { .query(async ({ input }) => { return this.shareCodeService.findShareCodes(input); }), + getAllreadlyDeletedShareCodes:this.trpc.procedure + .query(async () => { + return this.shareCodeService.getAllreadlyDeletedShareCodes(); + }) }); } \ No newline at end of file diff --git a/apps/server/src/models/share-code/share-code.service.ts b/apps/server/src/models/share-code/share-code.service.ts index 3a5f2ca..092f8ec 100755 --- a/apps/server/src/models/share-code/share-code.service.ts +++ b/apps/server/src/models/share-code/share-code.service.ts @@ -250,7 +250,7 @@ export class ShareCodeService extends BaseService { in: shareCodes.map(code => code.fileId) } }, - data:{ + data: { deletedAt: new Date() } }) @@ -403,38 +403,7 @@ export class ShareCodeService extends BaseService { }, select: { ...ShareCodeSelect } }); - - // 计算总大小和资源数量 - let totalSize = 0; - let resourceCount = 0; - - shareCodes.forEach(shareCode => { - - if ((shareCode as any as GenerateShareCodeResponse).resource && (shareCode as any as GenerateShareCodeResponse).resource.meta) { - const meta = (shareCode as any as GenerateShareCodeResponse).resource.meta as any; - if (meta.size) { - // 如果size是字符串格式(如 "1024"或"1 MB"),需要转换 - let sizeValue: number; - if (typeof meta.size === 'string') { - // 尝试直接解析数字 - sizeValue = parseInt(meta.size, 10); - // 如果解析失败,可能需要更复杂的处理 - if (isNaN(sizeValue)) { - // 简单处理,实际应用中可能需要更复杂的单位转换 - this.logger.warn(`无法解析资源大小: ${meta.size}`); - sizeValue = 0; - } - } else if (typeof meta.size === 'number') { - sizeValue = meta.size; - } else { - sizeValue = 0; - } - - totalSize += sizeValue; - resourceCount++; - } - } - }); + const {totalSize, resourceCount} = this.calculateTotalSize(shareCodes); this.logger.log(`资源总大小: ${totalSize}, 资源数量: ${resourceCount}`); return { totalSize, resourceCount }; @@ -477,38 +446,7 @@ export class ShareCodeService extends BaseService { ...ShareCodeSelect } }); - - // 计算总大小和资源数量 - let totalSize = 0; - let resourceCount = 0; - - shareCodes.forEach(shareCode => { - if ((shareCode as any as GenerateShareCodeResponse).resource && (shareCode as any as GenerateShareCodeResponse).resource.meta) { - const meta = (shareCode as any as GenerateShareCodeResponse).resource.meta as any; - if (meta.size) { - // 如果size是字符串格式(如 "1024"或"1 MB"),需要转换 - let sizeValue: number; - if (typeof meta.size === 'string') { - // 尝试直接解析数字 - sizeValue = parseInt(meta.size, 10); - // 如果解析失败,可能需要更复杂的处理 - if (isNaN(sizeValue)) { - // 简单处理,实际应用中可能需要更复杂的单位转换 - this.logger.warn(`无法解析资源大小: ${meta.size}`); - sizeValue = 0; - } - } else if (typeof meta.size === 'number') { - sizeValue = meta.size; - } else { - sizeValue = 0; - } - - totalSize += sizeValue; - resourceCount++; - } - } - }); - + const {totalSize, resourceCount} = this.calculateTotalSize(shareCodes); this.logger.log(`${dateType}资源总大小: ${totalSize}, 资源数量: ${resourceCount}`); return { totalSize, resourceCount }; } catch (error) { @@ -614,4 +552,56 @@ export class ShareCodeService extends BaseService { throw error; } } + async getAllreadlyDeletedShareCodes(args?: Omit):Promise<{ totalSize: number; resourceCount: number; }> { + try { + const result = await super.findMany({ + ...args, + where: { + deletedAt: { + not: null + } + }, + select: ShareCodeSelect, + }); + // 计算总大小和资源数量 + const { totalSize, resourceCount } = this.calculateTotalSize(result as unknown as GenerateShareCodeResponse[]); + this.logger.log(`获取已删除分享码列表成功, 数量: ${resourceCount}, 总大小: ${totalSize}`); + return {totalSize,resourceCount} + } catch (err) { + this.logger.error('获取已删除分享码列表失败', err) + throw err + } + + } + calculateTotalSize(shareCodes: GenerateShareCodeResponse[]): { totalSize: number; resourceCount: number } { + let totalSize = 0; + let resourceCount = 0; + shareCodes.forEach(shareCode => { + if ((shareCode as any as GenerateShareCodeResponse).resource && (shareCode as any as GenerateShareCodeResponse).resource.meta) { + const meta = (shareCode as any as GenerateShareCodeResponse).resource.meta as any; + if (meta.size) { + // 如果size是字符串格式(如 "1024"或"1 MB"),需要转换 + let sizeValue: number; + if (typeof meta.size === 'string') { + // 尝试直接解析数字 + sizeValue = parseInt(meta.size, 10); + // 如果解析失败,可能需要更复杂的处理 + if (isNaN(sizeValue)) { + // 简单处理,实际应用中可能需要更复杂的单位转换 + this.logger.warn(`无法解析资源大小: ${meta.size}`); + sizeValue = 0; + } + } else if (typeof meta.size === 'number') { + sizeValue = meta.size; + } else { + sizeValue = 0; + } + + totalSize += sizeValue; + resourceCount++; + } + } + }) + return { totalSize, resourceCount } + } }