🐞 fix(后台): 礼包码查询优化
This commit is contained in:
@@ -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[] = [];
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user