军团fix:领取活跃宝箱记录
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
|
||||
|
||||
@@ -138,5 +138,10 @@
|
||||
"id": 28,
|
||||
"name": "被弹劾",
|
||||
"authority": "1&"
|
||||
},
|
||||
{
|
||||
"id": 29,
|
||||
"name": "领取活跃宝箱",
|
||||
"authority": "1&2&3"
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user