57 lines
1.9 KiB
TypeScript
57 lines
1.9 KiB
TypeScript
import BaseModel from './BaseModel';
|
|
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
|
|
import { genCode } from '../pubUtils/util';
|
|
|
|
/**
|
|
* 战场作弊信息记录
|
|
**/
|
|
@index({ roleId: 1, dataId: 1 })
|
|
export default class BattleCheatRec extends BaseModel {
|
|
|
|
@prop({ required: true })
|
|
dataId: number; // 武将 ID
|
|
|
|
@prop({ required: true })
|
|
type: number; // 数据类型
|
|
|
|
@prop({ required: true })
|
|
iKey: number; // iKey,异或密钥
|
|
|
|
@prop({ required: true })
|
|
value: number; // value,原始值备份
|
|
|
|
@prop({ required: true })
|
|
secV: number; // secV,异或后的值
|
|
|
|
@prop({ required: true })
|
|
roleId: string; // 角色ID
|
|
|
|
@prop({ required: true })
|
|
roleName: string; // 角色名
|
|
|
|
@prop({ required: true })
|
|
code: string; // 唯一标识
|
|
|
|
// 创建记录
|
|
public static async createRecord(dataId: number, type: number, iKey: number, value: number, secV: number, roleId: string, roleName: string) {
|
|
const code = genCode(6);
|
|
const rec: BattleCheatRecType = await BattleCheatRecModel.insertMany({ code, dataId, type, iKey, value, secV, roleId, roleName });
|
|
return rec;
|
|
}
|
|
|
|
// 获取某个玩家某个武将的记录
|
|
public static async getRecord(roleId: string, dataId: number) {
|
|
const query = { roleId };
|
|
if (dataId) {
|
|
query['dataId'] = dataId;
|
|
}
|
|
const recs: BattleCheatRecType[] = await BattleCheatRecModel.find(query).limit(100).lean();
|
|
return recs;
|
|
}
|
|
}
|
|
|
|
export const BattleCheatRecModel = getModelForClass(BattleCheatRec);
|
|
|
|
export interface BattleCheatRecType extends Pick<DocumentType<BattleCheatRec>, keyof BattleCheatRec> { };
|
|
export type BattleCheatRecParam = Partial<BattleCheatRecType>;
|