抽象计算函数,添加计算被删除内容的接口
This commit is contained in:
parent
1f67a2e22d
commit
55e5412f5e
|
@ -62,5 +62,9 @@ export class ShareCodeRouter {
|
||||||
.query(async ({ input }) => {
|
.query(async ({ input }) => {
|
||||||
return this.shareCodeService.findShareCodes(input);
|
return this.shareCodeService.findShareCodes(input);
|
||||||
}),
|
}),
|
||||||
|
getAllreadlyDeletedShareCodes:this.trpc.procedure
|
||||||
|
.query(async () => {
|
||||||
|
return this.shareCodeService.getAllreadlyDeletedShareCodes();
|
||||||
|
})
|
||||||
});
|
});
|
||||||
}
|
}
|
|
@ -403,38 +403,7 @@ export class ShareCodeService extends BaseService<Prisma.ShareCodeDelegate> {
|
||||||
},
|
},
|
||||||
select: { ...ShareCodeSelect }
|
select: { ...ShareCodeSelect }
|
||||||
});
|
});
|
||||||
|
const {totalSize, resourceCount} = this.calculateTotalSize(shareCodes);
|
||||||
// 计算总大小和资源数量
|
|
||||||
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++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
this.logger.log(`资源总大小: ${totalSize}, 资源数量: ${resourceCount}`);
|
this.logger.log(`资源总大小: ${totalSize}, 资源数量: ${resourceCount}`);
|
||||||
return { totalSize, resourceCount };
|
return { totalSize, resourceCount };
|
||||||
|
@ -477,38 +446,7 @@ export class ShareCodeService extends BaseService<Prisma.ShareCodeDelegate> {
|
||||||
...ShareCodeSelect
|
...ShareCodeSelect
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
const {totalSize, resourceCount} = this.calculateTotalSize(shareCodes);
|
||||||
// 计算总大小和资源数量
|
|
||||||
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++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
this.logger.log(`${dateType}资源总大小: ${totalSize}, 资源数量: ${resourceCount}`);
|
this.logger.log(`${dateType}资源总大小: ${totalSize}, 资源数量: ${resourceCount}`);
|
||||||
return { totalSize, resourceCount };
|
return { totalSize, resourceCount };
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
@ -614,4 +552,56 @@ export class ShareCodeService extends BaseService<Prisma.ShareCodeDelegate> {
|
||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
async getAllreadlyDeletedShareCodes(args?: Omit<Prisma.ShareCodeFindManyArgs, 'select' | 'orderBy'>):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 }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue