好友:一键申请提示

This commit is contained in:
luying
2021-02-02 19:47:57 +08:00
parent 5da98956b9
commit 1fb4e7b9be
12 changed files with 245 additions and 37 deletions

View File

@@ -222,6 +222,8 @@ export default class Role extends BaseModel {
friendCnt: number; // 好友人数
@prop({ required: true, default: 0 })
blockCnt: number; // 黑名单人数
@prop({ required: true, default: 0 })
recFrdApplyCnt: number; // 玩家收取好友申请数量
public static async findAllByUid(uid: number, lean = true) {
const role: RoleType[] = await RoleModel.find({ 'userInfo.uid': uid }).select('roleId roleName serverId').lean(lean);
@@ -445,11 +447,25 @@ export default class Role extends BaseModel {
}
// 获取好友推荐列表
public static async getRecommedList(roleId: string, minLv: number, maxLv: number, time: number) {
const result = await RoleModel.find({ loginTime: { $gt: time }, lv: { $gte: minLv, $lte: maxLv }, roleId: { $ne: roleId } }, { _id: 0 })
.select(ROLE.SHOW_SIMPLE)
public static async getRecommedList(minLv: number, maxLv: number, time: number) {
const result = await RoleModel.find({ loginTime: { $gt: time }, lv: { $gte: minLv, $lte: maxLv } }, { _id: 0 })
.select(ROLE.SHOW_FRIEND_APPLY_LIST)
.sort({quitTime: -1, lv: -1, ce: -1})
.limit(100).lean({ getters: true });
.limit(200).lean({ getters: true });
return result;
}
// 查询玩家
public static async searchByNameOrId(value: string) {
const result = await RoleModel.find({
$or: [
{ roleName: { $regex: new RegExp(value.toString(), 'i') } },
{ roleId: value }
]
}, { _id: 0 })
.select(ROLE.SHOW_FRIEND_APPLY_LIST)
.sort({quitTime: -1, lv: -1, ce: -1})
.limit(200).lean({ getters: true });
return result;
}
@@ -467,7 +483,13 @@ export default class Role extends BaseModel {
// 增加好友数量
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();
const result = await RoleModel.findOneAndUpdate({ roleId, friendCnt: {$lte: max - inc}}, {$inc: { friendCnt: inc }}, {new: true}).lean();
return result;
}
// 增加好友申请数量
public static async increaseFriendApplyCnt(roleId: string, inc: number, max: number) {
const result = await RoleModel.findOneAndUpdate({ roleId, recFrdApplyCnt: {$lte: max - inc}}, {$inc: { recFrdApplyCnt: inc }}, {new: true}).lean();
return result;
}
}