Files
ZYZ/shared/db/UserGiftCodeDetail.ts

50 lines
1.6 KiB
TypeScript

import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType, modelOptions } from '@typegoose/typegoose';
/**
* 领取记录
**/
@modelOptions({ schemaOptions: { id: false } })
@index({ roleId: 1, giftId: 1 })
@index({ orderId: 1, giftId: 1 })
export default class UserGiftCodeDetail extends BaseModel {
@prop({ required: true, default: '' })
roleId: string;
@prop({ required: true, default: '' })
roleName: string;
@prop({ required: true, default: 0 })
serverId: number;
@prop({ required: false, default: '' })
orderId?: string;
@prop({ required: true, default: '' })
giftId: number; // giftCode表的id
@prop({ required: true, default: '' })
code: string; // 兑换码
public static async record(roleId: string, roleName: string, serverId: number, giftId: number, code: string, orderId?: string) {
await UserGiftCodeDetailModel.insertMany([{ roleId, roleName, serverId, giftId, code, orderId }]);
}
public static async checkHasUsed(roleId: string, id: number) {
let result = await UserGiftCodeDetailModel.exists({ giftId: id, roleId });
return result;
}
public static async checkOrderHasUsed(id: number, orderId: string) {
let result = await UserGiftCodeDetailModel.exists({ giftId: id, orderId });
return result;
}
}
export const UserGiftCodeDetailModel = getModelForClass(UserGiftCodeDetail);
export interface UserGiftCodeDetailType extends Pick<DocumentType<UserGiftCodeDetail>, keyof UserGiftCodeDetail> { }
export type UserGiftCodeDetailParam = Partial<UserGiftCodeDetailType>;