任务:埋点30/70

This commit is contained in:
luying
2021-04-18 11:21:04 +08:00
parent bc07e1ea31
commit 9f4f346447
38 changed files with 1088 additions and 692 deletions

52
shared/db/UserTaskRec.ts Normal file
View File

@@ -0,0 +1,52 @@
import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType, modelOptions } from '@typegoose/typegoose';
import { TASK_FUN_TYPE } from '../consts';
import { genCode } from '../pubUtils/util';
/**
* 玩家购买商店记录表,每个商品一条,每次刷新新建一条
**/
@modelOptions({ schemaOptions: { id: false } })
@index({ roleId: 1, itemId: 1 })
export default class UserTaskRec extends BaseModel {
@prop({ required: true })
code: string; // 该记录唯一标识
@prop({ required: true })
roleId: string; // 玩家id
@prop({ required: true, enum: TASK_FUN_TYPE })
type: number; // 任务类型
@prop({ required: true })
id: number; // 任务id任务表内id
@prop({ required: true })
taskType: number; // 行为类型
@prop({ required: true })
group: number; // 行为类型下的分组
@prop({ required: true })
count: number; // 达成次数
@prop({ required: true, default: false })
received: boolean; // 是否已领取
public static async setTaskRec(roleId: string, type: number, taskType: number, group: number, count: number) {
let rec: UserTaskRecType = await UserTaskRecModel.findOneAndUpdate({ roleId, type, group }, { $setOnInsert: { code: genCode(8), taskType, received: false }, $set: { count } }, { new: true, upsert: true }).lean();
return rec;
}
public static async incTaskRec(roleId: string, type: number, taskType: number, group: number, count: number) {
let rec: UserTaskRecType = await UserTaskRecModel.findOneAndUpdate({ roleId, type, group }, { $setOnInsert: { code: genCode(8), taskType, received: false }, $inc: { count } }, { new: true, upsert: true }).lean();
return rec;
}
}
export const UserTaskRecModel = getModelForClass(UserTaskRec);
export interface UserTaskRecType extends Pick<DocumentType<UserTaskRec>, keyof UserTaskRec> { }
export type UserTaskRecParam = Partial<UserTaskRecType>;