import BaseModel from './BaseModel'; import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose'; class ReceiveRecord { @prop({ required: true }) day: number; // 领取的玩家id @prop({ required: true }) receiveRoleId: string; // 领取的玩家id @prop({ required: true }) time: Date; // 领取时间 } /** * 返利 */ @index({ channelId: 1 }) export default class HistoryOrder extends BaseModel { @prop({ required: false }) serverId: number; // 区号 @prop({ required: true }) channelId: string; // 37账号id @prop({ required: false }) roleId: string; // 当时的玩家id @prop({ required: false }) roleName: string; // 当时的玩家名 @prop({ required: true }) totalPay: number; // 总支付金额 @prop({ required: false, type: ReceiveRecord, _id: false }) receiveRecords: ReceiveRecord[]; // 是否领取 public static async findByChannelId(channelId: string) { let result: HistoryOrderModelType[] = await HistoryOrderModel.find({ channelId }).lean(); return result; } public static async receive(channelId: string, roleId: string, day: number) { await HistoryOrderModel.updateMany({ channelId }, { $push: { receiveRecords: { day, receiveRoleId: roleId, time: new Date() } } }, { new: true }); } } export const HistoryOrderModel = getModelForClass(HistoryOrder); export interface HistoryOrderModelType extends Pick, keyof HistoryOrder> { } export type HistoryOrderModelTypeParam = Partial; // 将所有字段变成可选项