任务:group读取方式修改
This commit is contained in:
@@ -25,7 +25,7 @@ export default class UserTaskRec extends BaseModel {
|
||||
taskType: number; // 行为类型
|
||||
|
||||
@prop({ required: true })
|
||||
group: number; // 行为类型下的分组
|
||||
group: string; // 行为类型下的分组
|
||||
|
||||
@prop({ required: true })
|
||||
count: number; // 达成次数
|
||||
@@ -43,20 +43,20 @@ export default class UserTaskRec extends BaseModel {
|
||||
}
|
||||
}
|
||||
|
||||
public static async setTaskRec(roleId: string, type: number, taskType: number, group: number, count: number) {
|
||||
public static async setTaskRec(roleId: string, type: number, taskType: number, group: string, count: number) {
|
||||
let condition = this.getRefreshCondition(type);
|
||||
let rec: UserTaskRecType = await UserTaskRecModel.findOneAndUpdate({ roleId, group, taskType, ...condition }, { $setOnInsert: { code: genCode(8), received: [] }, $set: { count } }, { new: true, upsert: true }).lean();
|
||||
return rec;
|
||||
}
|
||||
|
||||
public static async incTaskRec(roleId: string, type: number, taskType: number, group: number, count: number) {
|
||||
public static async incTaskRec(roleId: string, type: number, taskType: number, group: string, count: number) {
|
||||
let condition = this.getRefreshCondition(type);
|
||||
let rec: UserTaskRecType = await UserTaskRecModel.findOneAndUpdate({ roleId, group, taskType, ...condition }, { $setOnInsert: { code: genCode(8), received: [] }, $inc: { count } }, { new: true, upsert: true }).lean();
|
||||
return rec;
|
||||
}
|
||||
|
||||
public static async checkHistoryAndSetTaskRec(roleId: string, type: number, taskType: number, group: number, count: number) {
|
||||
let rec: UserTaskRecType = await UserTaskRecModel.findByRoleAndGroup(roleId, type, group, taskType);
|
||||
public static async checkHistoryAndSetTaskRec(roleId: string, type: number, taskType: number, group: string, count: number) {
|
||||
let rec: UserTaskRecType = await UserTaskRecModel.findByRoleAndGroup(roleId, type, taskType, group);
|
||||
if(rec) {
|
||||
if(rec.count < count) {
|
||||
rec = await UserTaskRecModel.setTaskRec(roleId, type, taskType, group, count);
|
||||
@@ -70,24 +70,24 @@ export default class UserTaskRec extends BaseModel {
|
||||
public static async findByRoleAndType(roleId: string, type: number) {
|
||||
let condition = this.getRefreshCondition(type);
|
||||
let rec: UserTaskRecType[] = await UserTaskRecModel.find({ roleId, ...condition }).lean();
|
||||
let map = new Map<number, Map<number, UserTaskRecType>>(); // taskType => group => userTask
|
||||
let map = new Map<number, Map<string, UserTaskRecType>>(); // taskType => group => userTask
|
||||
for(let userTaskRec of rec) {
|
||||
let { taskType, group } = userTaskRec;
|
||||
if(!map.has(taskType)) {
|
||||
map.set(taskType, new Map<number, UserTaskRecType>());
|
||||
map.set(taskType, new Map<string, UserTaskRecType>());
|
||||
}
|
||||
map.get(taskType).set(group, userTaskRec);
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
public static async findByRoleAndGroup(roleId: string, type: number, taskType: number, group: number) {
|
||||
public static async findByRoleAndGroup(roleId: string, type: number, taskType: number, group: string) {
|
||||
let condition = this.getRefreshCondition(type);
|
||||
let rec: UserTaskRecType = await UserTaskRecModel.findOne({ roleId, taskType, group, ...condition }).lean();
|
||||
return rec;
|
||||
}
|
||||
|
||||
public static async receiveTask(roleId: string, type: number, taskType: number, group: number, id: number) {
|
||||
public static async receiveTask(roleId: string, type: number, taskType: number, group: string, id: number) {
|
||||
let condition = this.getRefreshCondition(type);
|
||||
let rec: UserTaskRecType = await UserTaskRecModel.findOneAndUpdate({ roleId, taskType, group, ...condition }, { $push: { received: id } }, { new: true }).lean();
|
||||
return rec;
|
||||
|
||||
Reference in New Issue
Block a user