后台:礼包码
This commit is contained in:
@@ -3,7 +3,8 @@ import { index, getModelForClass, prop, DocumentType, modelOptions } from '@type
|
||||
import { GIFT_GENERATE_TYPE } from '../consts';
|
||||
import { GiftCodeModel, GiftCodeType } from './GiftCode';
|
||||
import { nowSeconds } from '../pubUtils/timeUtil';
|
||||
import { genCode } from '@pubUtils/util';
|
||||
import { genCode } from '../pubUtils/util';
|
||||
import { SearchGiftCodeDetailParam } from '../domain/backEndField/search';
|
||||
|
||||
class RoleRecord {
|
||||
@prop({ required: true, default: '' })
|
||||
@@ -50,7 +51,12 @@ export default class GiftCodeDetail extends BaseModel {
|
||||
|
||||
// 根据code
|
||||
public static async findByCode(code: string) {
|
||||
let result: GiftCodeDetailType = await GiftCodeDetailModel.findOne({ code }).populate('giftCode').lean(true);
|
||||
let result: GiftCodeDetailType = await GiftCodeDetailModel.findOne({ code }).lean(true);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async checkHasUsed(roleId: string, id: number) {
|
||||
let result = await GiftCodeDetailModel.exists({ giftId: id, 'record.roleId': roleId });
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -84,6 +90,40 @@ export default class GiftCodeDetail extends BaseModel {
|
||||
return result;
|
||||
}
|
||||
|
||||
private static getSearchObj(form: SearchGiftCodeDetailParam) {
|
||||
let searchObj = {};
|
||||
if(form.giftId) searchObj['giftId'] = form.giftId;
|
||||
if (form.giftName != undefined) searchObj['giftName'] = { $regex: new RegExp(form.giftName.toString(), 'i') };
|
||||
if(form.generateType) searchObj['generateType'] = form.generateType;
|
||||
if(form.code) searchObj['code'] = form.code;
|
||||
if(form.roleId) searchObj['record.roleId'] = form.roleId;
|
||||
if (form.roleName != undefined) searchObj['record.roleName'] = { $regex: new RegExp(form.roleName.toString(), 'i') };
|
||||
return searchObj
|
||||
}
|
||||
|
||||
public static async findByCondition(page: number, pageSize: number, sortField: string, sortOrder: string, form:SearchGiftCodeDetailParam = {}) {
|
||||
|
||||
let searchObj = this.getSearchObj(form);
|
||||
let sort = {};
|
||||
if (sortField && sortOrder) {
|
||||
if (sortOrder == 'ascend') {
|
||||
sort[sortField] = 1;
|
||||
} else if (sortOrder == 'descend') {
|
||||
sort[sortField] = -1;
|
||||
}
|
||||
}
|
||||
const result: GiftCodeDetailType[] = await GiftCodeDetailModel.find(searchObj, { _id: 0 }).limit(pageSize).skip((page - 1) * pageSize).sort(sort).lean({ getters: true, virtuals: true });
|
||||
return result;
|
||||
|
||||
}
|
||||
|
||||
public static async countByCondition(form: SearchGiftCodeDetailParam = {}) {
|
||||
|
||||
let searchObj = this.getSearchObj(form);
|
||||
const result = await GiftCodeDetailModel.count(searchObj);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export const GiftCodeDetailModel = getModelForClass(GiftCodeDetail);
|
||||
|
||||
Reference in New Issue
Block a user