Files
ZYZ/shared/db/BattleCheatRec.ts
2023-04-11 18:52:16 +08:00

57 lines
1.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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>;