import BaseModel from './BaseModel'; import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose'; class Reward { @prop({ required: true }) id: number; @prop({ required: true }) count: number; } /** * 玩家充值订单 */ @index({ localOrderID: 1 }) export default class UserLog extends BaseModel { @prop({ required: true }) type: string; // 类型 LOG_TYPE @prop({ required: true }) uid: number; // uid @prop({ required: true }) serverId: number; // 小区id @prop({ required: true }) roleId: string; // 角色id @prop({ required: true }) roleName: string; // 角色名 @prop({ required: false }) ip: string; // ip // 战力相关 @prop({ required: false }) inc: number; // 改变值 战力改变/道具数量改变 @prop({ required: false }) count: number; // 变化后的值 战力改变/道具数量改变 @prop({ required: false }) ceChangeReason: number; // 战力变化原因 @prop({ required: false, type: Number }) ceChangeIds: number[]; // 战力变化原因信息,如武将id等 // 充值相关 @prop({ required: false }) productID: string; // 商品id @prop({ required: false }) productName: string; // 商品名字 @prop({ required: false }) price: number; // 充值金额 @prop({ required: false }) isYuanbao: boolean; // 是否为代币 @prop({ required: false }) orderID: string; // 平台订单id @prop({ required: false }) localOrderID: string; // 订单id @prop({ required: false }) totalPay: number; // 总充值金额 @prop({ required: false }) orderStatus: number; // 订单状态 // 道具相关 @prop({ required: false }) itemId: number; // 道具id @prop({ required: false }) itemName: string; // 道具名 @prop({ required: false }) itid: number; // 道具类型 @prop({ required: false }) itemChangeReason: number; // 道具变更来源 // 邮件日志 @prop({ required: false }) mailId: string; // 邮件id @prop({ required: false, type: Reward, _id: false }) goods: Reward[]; // 邮件附带道具 @prop({ required: false }) mailContent: string; // 邮件正文 @prop({ required: false }) mailTitle: string; // 邮件标题 @prop({ required: false }) mailSendName: string; // 邮件发件人 public static async createRecord(params: UserLogModelTypeParam) { const r = await UserLogModel.insertMany(params); return r; } } export let UserLogModel = getModelForClass(UserLog); export interface UserLogModelType extends Pick, keyof UserLog> { } export type UserLogModelTypeParam = Partial; // 将所有字段变成可选项