🐞 fix(后台): 礼包码查询优化

This commit is contained in:
luying
2023-05-04 19:18:03 +08:00
parent 4c3b65c5c1
commit 7c55a37a80
2 changed files with 8 additions and 9 deletions
+1 -1
View File
@@ -571,7 +571,7 @@ export default class GMUsers extends Service {
let giftCode = await GiftCodeModel.findByGiftId(id); let giftCode = await GiftCodeModel.findByGiftId(id);
if(!giftCode) return ctx.service.utils.resResult(STATUS.WRONG_PARMS); if(!giftCode) return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
let giftCodeDetails = await GiftCodeDetailModel.findAllCodeByGiftId(giftCode.id, giftCode.generateCnt); let giftCodeDetails = await GiftCodeDetailModel.findAllCodeByGiftId(giftCode.id);
if(fileType == 'txt') { if(fileType == 'txt') {
let codes: string[] = []; let codes: string[] = [];
+7 -8
View File
@@ -27,7 +27,8 @@ class RoleRecord {
* 领取记录 * 领取记录
**/ **/
@modelOptions({ schemaOptions: { id: false } }) @modelOptions({ schemaOptions: { id: false } })
@index({ code: 1, giftId: 1 }) @index({ code: 1 })
@index({ giftId: 1 })
export default class GiftCodeDetail extends BaseModel { export default class GiftCodeDetail extends BaseModel {
@prop({ required: true, default: '' }) @prop({ required: true, default: '' })
@@ -69,13 +70,11 @@ export default class GiftCodeDetail extends BaseModel {
} }
public static async findAllCodeByGiftId(id: number, cnt: number) { public static async findAllCodeByGiftId(id: number) {
let n = Math.ceil(cnt/1000); let result: GiftCodeDetailType[] = await GiftCodeDetailModel.aggregate([
let result: GiftCodeDetailType[] = []; { $match: { giftId: id } },
for(let i = 0; i < n; i++) { { $project: { code: 1 } }
let codes = await GiftCodeDetailModel.find({ giftId: id }).limit(1000).skip(i * 1000).sort({ _id: 1 }).lean(); ]);
result.push(...codes);
}
return result; return result;
} }