军团相关战力使用get方法

This commit is contained in:
luying
2021-02-02 12:38:55 +08:00
parent 830836b809
commit a9e2b79c79
7 changed files with 53 additions and 39 deletions
+27 -11
View File
@@ -212,6 +212,16 @@ export default class Role extends BaseModel {
hasGuild: boolean; // 是否加入过公会
@prop({ required: true, default: 0 })
quitGuildTime: number; // 上次退出公会的时间
@prop({ required: true, default: "" })
guildCode: string; // 加入的军团code
@prop({ required: true, default: "" })
guildName: string; // 加入的军团名
// 好友
@prop({ required: true, default: 0 })
friendCnt: number; // 好友人数
@prop({ required: true, default: 0 })
blockCnt: number; // 黑名单人数
public static async findAllByUid(uid: number, lean = true) {
const role: RoleType[] = await RoleModel.find({ 'userInfo.uid': uid }).select('roleId roleName serverId').lean(lean);
@@ -245,15 +255,15 @@ export default class Role extends BaseModel {
return role;
}
public static async findRoleByField(field: string, value?: Array<number|string>, lean = true) {
public static async findRoleByField(field: string, value?: Array<number|string>, select?: string, getters = false) {
let searchObj = {};
if(field != 'all') {
searchObj[field] = {
$in: value
};
searchObj[field] = {
$in: value
};
}
//.select('uid tel username')
const user: RoleType[] = await RoleModel.find(searchObj).lean(lean);
const user: RoleType[] = await RoleModel.find(searchObj).select(select).lean({ getters });
return user;
}
@@ -420,8 +430,8 @@ export default class Role extends BaseModel {
}
// 记录加入公会
public static async joinGuild(roleId: string) {
const result = await RoleModel.findOneAndUpdate({ roleId, hasGuild: false }, { hasGuild: true }, { new: true }).lean();
public static async joinGuild(roleId: string, guildCode: string, guildName: string) {
const result = await RoleModel.findOneAndUpdate({ roleId, hasGuild: false }, { hasGuild: true, guildCode, guildName }, { new: true }).lean();
return result;
}
@@ -430,7 +440,7 @@ export default class Role extends BaseModel {
const result = await RoleModel.find({ quitTime: { $gt: time }, hasGuild: false, serverId })
.select('roleId roleName ce headHid sHid lv title job quitTime')
.sort({quitTime: -1, lv: -1, ce: -1})
.limit(100).lean();
.limit(100).lean({getters: true});
return result;
}
@@ -445,13 +455,19 @@ export default class Role extends BaseModel {
// 公会解散
public static async dissmissGuild(members: string[]) {
const result = await RoleModel.updateMany({ roleId: { $in: members } }, { hasGuild: false }).lean();
const result = await RoleModel.updateMany({ roleId: { $in: members } }, { hasGuild: false, guildCode: "", guildName: "" }).lean();
return result;
}
// 退出公会
public static async quitGuild(roleId: string, now: number) {
const result = await RoleModel.findOneAndUpdate({ roleId, hasGuild: true }, { hasGuild: false, quitGuildTime: now }, { new: true }).lean();
const result = await RoleModel.findOneAndUpdate({ roleId, hasGuild: true }, { hasGuild: false, guildCode: "", guildName: "", quitGuildTime: now }, { new: true }).lean();
return result;
}
// 增加好友数量
public static async increaseFriendCnt(roleId: string, inc: number, max: number) {
const result = await RoleModel.findOneAndUpdate({ roleId, friendCnt: {$lt: max}}, {$inc: { friendCnt: inc }}, {new: true}).lean();
return result;
}
}