秘境保存首通武将
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user