军团fix:领取活跃宝箱记录

This commit is contained in:
luying
2021-01-25 16:37:33 +08:00
parent 90e78bd967
commit d4d4ba825b
6 changed files with 34 additions and 20 deletions

View File

@@ -126,8 +126,8 @@ export default class Guild extends BaseModel {
return result;
}
public static async addGuild(code: string, roleId: string, maxMemberCnt: number, serverId: number) {
let result: GuildType = await GuildModel.findOneAndUpdate({ code, memberCnt: {$lt: maxMemberCnt }, serverId }, { $inc: { memberCnt: 1 }, $push: { members: roleId } }, { new: true }).lean();
public static async addGuild(code: string, roleId: string, maxMemberCnt: number, serverId: number, ce: number) {
let result: GuildType = await GuildModel.findOneAndUpdate({ code, memberCnt: {$lt: maxMemberCnt }, serverId }, { $inc: { memberCnt: 1, guildCe: ce }, $push: { members: roleId } }, { new: true }).lean();
if(result && result.memberCnt >= maxMemberCnt) {
result = await GuildModel.findOneAndUpdate({ code }, { $set: { isMemberMax: true } }).lean();
}
@@ -166,7 +166,12 @@ export default class Guild extends BaseModel {
}
public static async findGuild(code: string, serverId: number, select?: string, lean = true) {
const result = await GuildModel.findOne({ code, status: GUILD_STATUS.RUNNING, serverId }).select(select).lean(lean);
const result: GuildType = await GuildModel.findOne({ code, status: GUILD_STATUS.RUNNING, serverId }).select(select).lean(lean);
return result;
}
public static async updateCe(roleId: string, inc: number ) {
const result = await GuildModel.findOneAndUpdate({ $elemMatch: {members: roleId}, status: GUILD_STATUS.RUNNING}, {$inc: {guildCe: inc}}, {new: true}).lean();
return result;
}
}

View File

@@ -42,8 +42,8 @@ export default class UserGuild extends BaseModel {
@prop({ required: true, type: ActiveRecord, default: [], _id: false })
activeRecord: ActiveRecord[];
@prop({ required: true, default: 0 })
receivedActive: number;
@prop({ required: true, type: Number, default: [] })
receivedActive: number[];
@prop({ required: true, default: new Date(), select: false })
refTimeDaily: Date;

View File

@@ -19,6 +19,7 @@ import { getTeraphAttr, HEROTARIN } from '../consts/constModules/abilityConst'
import { PvpDefenseModel } from '../db/PvpDefense';
const HERO_CE_RATIO = 100;
import { findIndex } from 'underscore';
import { GuildModel } from '../db/Guild';
//战力计算TODO
export function calPlayerCe(globalCeAttr: CeAttrRole, hero: HeroType, type: number, args: Array<number> = []) {
let heroCe = 0;
@@ -118,6 +119,7 @@ export async function calPlayerCeAndSave(roleId: string, heros: Array<HeroType>,
role.ce += incPlayerCe;
let { topFive, topFiveCe } = role;
await RoleModel.updateRoleInfo(roleId, { globalCeAttr: role.globalCeAttr, ce: role.ce, topFive, topFiveCe });
await GuildModel.updateCe(roleId, incPlayerCe);
return { pushHeros, role, topFiveCe }
}

View File

@@ -138,5 +138,10 @@
"id": 28,
"name": "被弹劾",
"authority": "1&"
},
{
"id": 29,
"name": "领取活跃宝箱",
"authority": "1&2&3"
}
]