任务:埋点30/70
This commit is contained in:
@@ -295,9 +295,16 @@ export default class Role extends BaseModel {
|
||||
return role;
|
||||
}
|
||||
|
||||
public static async findByUid(uid: number, serverId: number, select?: string, getters = false) {
|
||||
public static async findByUidAndSetTime(uid: number, serverId: number, select?: string, getters = false) {
|
||||
const curSec = nowSeconds();
|
||||
const role: RoleType = await RoleModel.findOneAndUpdate({ 'userInfo.uid': uid, serverId }, { loginTime: curSec, quitTime: curSec }, { new: true }).select(select).lean({ getters, virtuals: true });
|
||||
// 为了计算累计登录,此处查询new为false
|
||||
const role: RoleType = await RoleModel.findOneAndUpdate({ 'userInfo.uid': uid, serverId }, { loginTime: curSec, quitTime: curSec }, { new: false }).select(select).lean({ getters, virtuals: true });
|
||||
return role;
|
||||
}
|
||||
|
||||
public static async findByUid(uid: number, serverId: number, select?: string, getters = false) {
|
||||
const role: RoleType = await RoleModel.findOne({ 'userInfo.uid': uid, serverId }).select(select).lean({ getters, virtuals: true });
|
||||
|
||||
return role;
|
||||
}
|
||||
|
||||
|
||||
52
shared/db/UserTaskRec.ts
Normal file
52
shared/db/UserTaskRec.ts
Normal 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>;
|
||||
Reference in New Issue
Block a user