军团相关战力使用get方法

This commit is contained in:
luying
2021-02-02 12:36:55 +08:00
parent 830836b809
commit a9e2b79c79
7 changed files with 53 additions and 39 deletions

View File

@@ -4,6 +4,7 @@ import Role, { RoleType } from './Role';
import { genCode } from '../pubUtils/util';
import { GUILD_STRUCTURE, GUILD_STATUS, GUILD_PER_PAGE } from '../consts';
import { getCurWeekTime, nowSeconds } from '../pubUtils/timeUtil';
import { reduceCe } from '../pubUtils/util';
class Structure {
@prop({ required: true })
@@ -66,7 +67,7 @@ export default class Guild extends BaseModel {
@prop({ required: true, default: new Date(), select: false })
refTimeDaily: Date;
@prop({ required: true, default: 0 })
@prop({ required: true, default: 0, get: (val:number) => reduceCe(val), set: (val: number) => val })
guildCe: number; // 总战力
@prop({ required: true, type: String, default: [], select: false })
@@ -98,7 +99,7 @@ export default class Guild extends BaseModel {
const result: GuildType = await GuildModel.findOneAndUpdate({ code }, update, { upsert: true, new: true })
.select({ _id: 0, __v: 0, createdAt: 0, updatedAt: 0 })
.populate('leader', { roleId: 1, roleName: 1, sHid: 1, headHid: 1, lv: 1, quitTime: 1, ce: 1, title: 1, _id: 0 }, 'Role')
.lean();
.lean({ getters: true });
return result;
}
@@ -146,14 +147,14 @@ export default class Guild extends BaseModel {
const result: GuildType = await GuildModel.findOne({ code, status: GUILD_STATUS.RUNNING, serverId })
.select(select)
.populate('leader', {roleId: 1, roleName: 1, sHid: 1, headHid: 1, lv: 1, quitTime: 1, ce: 1, title: 1, _id: 0}, 'Role')
.lean();
.lean({ getter: false });
return result;
}
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();
let result: GuildType = await GuildModel.findOneAndUpdate({ code, memberCnt: {$lt: maxMemberCnt }, serverId }, { $inc: { memberCnt: 1, guildCe: ce }, $push: { members: roleId } }, { new: true }).lean({getters: true});
if(result && result.memberCnt >= maxMemberCnt) {
result = await GuildModel.findOneAndUpdate({ code }, { $set: { isMemberMax: true } }).lean();
result = await GuildModel.findOneAndUpdate({ code }, { $set: { isMemberMax: true } }).lean({getters: true});
}
return result;
}
@@ -195,7 +196,7 @@ export default class Guild extends BaseModel {
}
public static async updateCe(roleId: string, inc: number ) {
const result = await GuildModel.findOneAndUpdate({ members: { $elemMatch: { $eq: roleId } }, status: GUILD_STATUS.RUNNING}, {$inc: {guildCe: inc}}, {new: true}).lean();
const result = await GuildModel.findOneAndUpdate({ members: { $elemMatch: { $eq: roleId } }, status: GUILD_STATUS.RUNNING}, {$inc: {guildCe: inc}}, {new: true}).lean({getters: true});
return result;
}