秘境保存首通武将

This commit is contained in:
luying
2020-11-20 18:00:02 +08:00
parent 90a3c9f7d4
commit f30d4858e4
3 changed files with 24 additions and 1 deletions
+21
View File
@@ -12,6 +12,13 @@ class TopHero {
ce: number; // 战力
}
class DungeonHero {
@prop({ required: true })
battleId: number; // 关卡id
@prop({ required: true, type: Number, default:[] })
heroes: Array<number>; // 武将id
}
/**
* 角色字段接口
*/
@@ -152,6 +159,8 @@ export default class Role extends BaseModel {
dungeonBuyCnt: number; // 秘境购买次数
@prop({ required: true, default: new Date() })
dungeonRefTime: Date; // 秘境刷新时间
@prop({ required: true, type: DungeonHero, default: [] })
dungeonHeroes: Array<DungeonHero>; // 秘境首通使用的武将
public static async findByUid(uid: number, serverId: number, lean = true) {
const role = await RoleModel.findOne({ 'userInfo.uid': uid, serverId }).lean(lean);
@@ -373,6 +382,18 @@ export default class Role extends BaseModel {
}, 0);
await RoleModel.findOneAndUpdate({roleId}, { topFive, topFiveCe, $inc: {ce: distance} }).lean(lean);
}
// 保存秘境首通队伍
public static async saveDungeonHero(roleId: string, battleId: number, heroes: Array<number>, isSuccess: boolean) {
if(isSuccess) {
const role = await Role.findByRoleId(roleId);
let {dungeonHeroes} = role;
let hasHero = dungeonHeroes&&dungeonHeroes.find(cur => cur.battleId == battleId);
if(!dungeonHeroes || !hasHero) {
await RoleModel.findOneAndUpdate({roleId}, {$push:{dungeonHeroes: {battleId, heroes}}})
}
}
}
}
export const RoleModel = getModelForClass(Role);