添加寻宝数据库和简单的组队接口
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop } from '@typegoose/typegoose';
|
||||
|
||||
class RoleStatus {
|
||||
export class RoleStatus {
|
||||
@prop({ required: true })
|
||||
roleId: string;
|
||||
@prop({ required: true })
|
||||
@@ -15,8 +15,20 @@ class RoleStatus {
|
||||
@prop({ required: false, default: '' })
|
||||
battleCode: string;
|
||||
// 玩家所用阵容
|
||||
@prop({ required: false })
|
||||
@prop({ required: false, type: Number, default: [] })
|
||||
heroes: Array<number>;
|
||||
// 阵亡武将
|
||||
@prop({ required: false, default: [] })
|
||||
killed: Array<number>;
|
||||
// 是否情谊助阵
|
||||
@prop({ required: false, default: false })
|
||||
isFrd: boolean;
|
||||
// 头像
|
||||
@prop({ required: true, default: 1 })
|
||||
headHid: number;
|
||||
// 前五战力
|
||||
@prop({ required: true, default: 0 })
|
||||
topFiveCe: number;
|
||||
}
|
||||
|
||||
@index({ teamCode: 1 })
|
||||
@@ -28,7 +40,7 @@ export default class ComBattleTeam extends BaseModel {
|
||||
@prop({ required: true })
|
||||
teamCode: string;
|
||||
|
||||
@prop({ required: true, default: [] })
|
||||
@prop({ required: true, type: String, default: [] })
|
||||
roleIds: Array<string>
|
||||
|
||||
// 队伍是否开放加入
|
||||
@@ -43,12 +55,36 @@ export default class ComBattleTeam extends BaseModel {
|
||||
@prop({ required: true, default: 0 })
|
||||
status: number;
|
||||
|
||||
@prop({ required: true, default: [] })
|
||||
@prop({ required: true, type: RoleStatus, default: [] })
|
||||
roleStatus: Array<RoleStatus>;
|
||||
|
||||
// 队长 roleId
|
||||
@prop({ required: true })
|
||||
capId: string;
|
||||
|
||||
// 战力限制
|
||||
@prop({ required: true, default: 0 })
|
||||
ceLimit: number;
|
||||
|
||||
public static async createTeam(teamData: {teamCode: string, roleIds: Array<string>, pub: boolean, blueprtId: number, status: number, roleStatus: Array<RoleStatus>, capId: string}, lean = true) {
|
||||
const team = await ComBattleTeamModel.findOneAndUpdate({ teamCode: teamData.teamCode }, {$set :{...teamData}}, {upsert: true, new: true}).lean(lean);
|
||||
return team;
|
||||
}
|
||||
|
||||
public static async addRole(teamCode: string, roleStatus: RoleStatus, lean = true) {
|
||||
const team = await ComBattleTeamModel.findOneAndUpdate({ teamCode: teamCode }, {$push: {roleIds: roleStatus.roleId, roleStatus}}, {upsert: true, new: true}).lean(lean);
|
||||
return team;
|
||||
}
|
||||
|
||||
public static async findTeamByCapAndStatus(roleId: string, status: number, lean = true) {
|
||||
const teams = await ComBattleTeamModel.find({capId: roleId, status}).lean(lean);
|
||||
return teams;
|
||||
}
|
||||
|
||||
public static async getTeamByBlueprt(blueprtIds: Array<number>, status: number, pub = true, limit = 50, lean = true) {
|
||||
const teams = await ComBattleTeamModel.find({blueprtId: {$in: blueprtIds}, status, pub}).limit(limit).lean(lean);
|
||||
return teams;
|
||||
}
|
||||
}
|
||||
|
||||
export const ComBattleTeamModel = getModelForClass(ComBattleTeam);
|
||||
@@ -39,6 +39,8 @@ export default class Role extends BaseModel {
|
||||
blocked: boolean; // 是否屏蔽
|
||||
@prop({ required: true })
|
||||
code: string; // 邀请码
|
||||
@prop({ required: true, default: 1 })
|
||||
headHid: number; // 头像所用武将 Id
|
||||
|
||||
@prop({ required: true, default: 0 })
|
||||
exp: number; // 经验值
|
||||
|
||||
Reference in New Issue
Block a user