寻宝:信息边窗

This commit is contained in:
luying
2022-07-07 13:27:43 +08:00
parent b1dc091453
commit 460d0d6955
15 changed files with 153 additions and 38 deletions
+24 -1
View File
@@ -2,6 +2,7 @@ import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
import { EXTERIOR } from '../pubUtils/dicParam';
import { ItemReward } from '../domain/dbGeneral';
import { nowSeconds } from '../pubUtils/timeUtil';
export class ComRoleStatusHero {
@prop({ required: true })
@@ -187,10 +188,22 @@ export default class ComBattleTeam extends BaseModel {
// 黑名单
blacklist: string[] = [];
// 黑名单
// 结束时间
@prop({ required: true, default: 0 })
endTime: number = 0;
// 是否发出邀请了
@prop({ required: true, default: false })
isInviting: boolean = false;
// 邀请时间
@prop({ required: true, default: 0 })
inviteTime: number = 0;
// 邀请对象
@prop({ required: true, default: [], type: String, _id: false })
inviteTarget: string[] = [];
public static async createTeam(teamData: ComBattleTeamParam, lean = true) {
const team: ComBattleTeamType = await ComBattleTeamModel.findOneAndUpdate({ teamCode: teamData.teamCode }, {$set :{...teamData, roleCnt: teamData.roleIds.length}}, {upsert: true, new: true}).lean(lean);
return team;
@@ -341,6 +354,16 @@ export default class ComBattleTeam extends BaseModel {
const team: ComBattleTeamType = await ComBattleTeamModel.findOne({teamCode}).lean(lean);
return team;
}
public static async invite(teamCode: string, target: string) {
const team: ComBattleTeamType = await ComBattleTeamModel.findOneAndUpdate({teamCode}, { $set: { isInviting: true, inviteTime: nowSeconds()}, $push: { inviteTarget: target }}, {new: true}).lean();
return team;
}
public static async findInvitations(roleId: string, minLv: number, maxLv: number, ce: number, refreshTime: number, limit: number) {
const invitations: ComBattleTeamType[] = await ComBattleTeamModel.find({ status: 0, isInviting: true, lv: { $gte: minLv, $lte: maxLv }, ceLimit: { $lte: ce }, inviteTime: { $gte: refreshTime } }).sort({ inviteTime: -1 }).limit(limit).lean();
return invitations;
}
}
export const ComBattleTeamModel = getModelForClass(ComBattleTeam);