好友:拉黑bug,添加申请等推送

This commit is contained in:
luying
2021-02-05 18:22:15 +08:00
parent e1e36275c0
commit 97d2bea767
4 changed files with 45 additions and 19 deletions

View File

@@ -1,4 +1,4 @@
import { Application, BackendSession } from "pinus";
import { Application, BackendSession, ChannelService } from "pinus";
import { resResult, getRandEelm, getResStr, shouldRefresh } from "../../../pubUtils/util";
import { STATUS, ROLE_SELECT, FRIEND_DROP_TYPE, FRIEND_RELATION_TYPE, POPULATE_TYPE, BLOCK_OPEATE, CONSUME_TYPE, ITID, HERO_SELECT, EQUIP_SELECT, REDIS_KEY } from "../../../consts";
import { RoleModel, RoleType } from "../../../db/Role";
@@ -7,7 +7,7 @@ import { FriendApplyModel } from "../../../db/FriendApply";
import { FriendApplyParams, FriendListParam, FriendRecommendParams, BlackListParam, FriendValueListParam } from "../../../domain/roleField/friend";
import { FriendShipModel, FriendShipType } from "../../../db/FriendShip";
import { FriendRelationModel, Relation } from "../../../db/FriendRelation";
import { isRoleOnline, getServerName, getMyRank } from "../../../services/redisService";
import { isRoleOnline, getServerName, getMyRank, getRedis } from "../../../services/redisService";
import { increaseFrdCnt, getRecommendType, sortByBeSentHeart } from "../../../services/friendService";
import { FriendPointModel } from "../../../db/FriendPoint";
import { gameData } from "../../../pubUtils/data";
@@ -28,8 +28,10 @@ export default function (app: Application) {
}
export class FriendHandler {
channelService: ChannelService;
constructor(private app: Application) {
this.channelService = this.app.get('channelService');
}
// 获取推荐好友列表
@@ -74,7 +76,6 @@ export class FriendHandler {
if(list2.length < FRIEND.FRIEND_RECONMMEND_NUM - myServerLen) {
list1 = getRandEelm(myServerList, FRIEND.FRIEND_RECONMMEND_NUM - list2.length);
}
console.log
let list = list1.concat(list2);
@@ -115,6 +116,7 @@ export class FriendHandler {
let myFriendRelation = await FriendRelationModel.findFriendByRole(roleId, POPULATE_TYPE.NOT);
let str = '', resultRoleIds = new Array<string>();
let uids = [];
for(let hisRoleId of roleIds) {
let type = getRecommendType(myFriendRelation, roleId, hisRoleId);
if(type == FRIEND_RELATION_TYPE.HAS_FRIEND) {
@@ -132,7 +134,11 @@ export class FriendHandler {
await FriendApplyModel.createApply(hisRoleId, role);
resultRoleIds.push(hisRoleId);
let hisSid = await getRedis(`login_roleId_${hisRoleId}`);
uids.push({ uid: hisRoleId, sid: hisSid });
}
console.log(JSON.stringify(uids))
this.channelService.pushMessageByUids('onFriendApply', resResult(STATUS.SUCCESS, { roleId }), uids);
return resResult(STATUS.SUCCESS, {
isSuccess: str == '',
@@ -336,8 +342,8 @@ export class FriendHandler {
friend = await RoleModel.findByRoleId(hisRoleId);
}
await FriendRelationModel.moveFromFriend(hisRoleId, role, friendShip, false); //从对方好友删除
await FriendRelationModel.moveFromFriend(roleId, friend, friendShip, true); // 删除好友关系并拉黑
await FriendRelationModel.moveFromFriend(hisRoleId, role, friendShip, false, !!curFriend); //从对方好友删除
await FriendRelationModel.moveFromFriend(roleId, friend, friendShip, true, !!curFriend); // 删除好友关系并拉黑
let param = new BlackListParam(friend);
let isOnline = await isRoleOnline(friend.roleId);
@@ -370,8 +376,8 @@ export class FriendHandler {
friend = <RoleType>curFriend.role;
friendShip = <FriendShipType>curFriend.friendShip;
await FriendRelationModel.moveFromFriend(hisRoleId, role, friendShip, false); //从对方好友删除
await FriendRelationModel.moveFromFriend(roleId, friend, friendShip, false); // 删除好友关系并拉黑
await FriendRelationModel.moveFromFriend(hisRoleId, role, friendShip, false, !!curFriend); //从对方好友删除
await FriendRelationModel.moveFromFriend(roleId, friend, friendShip, false, !!curFriend); // 删除好友关系并拉黑
frdRoleIds.push(roleId);
@@ -447,6 +453,8 @@ export class FriendHandler {
let todaySendInc = 0;
let list = new Array<FriendValueListParam>();
let uids = [];
for(let relation of canSendList) {
if(todaySendCnt + FRIEND.FRIEND_FRIENDPOINT_ADD > max) break;
@@ -460,7 +468,11 @@ export class FriendHandler {
todaySendCnt += FRIEND.FRIEND_FRIENDPOINT_ADD;
todaySendInc += FRIEND.FRIEND_FRIENDPOINT_ADD;
let hisSid = await getRedis(`login_roleId_${relation.roleId}`);
uids.push({ uid: relation.roleId, sid: hisSid })
}
this.channelService.pushMessageByUids('onFriendSendHeart', resResult(STATUS.SUCCESS, {roleId}), uids);
if(todaySendInc <= 0) return resResult(STATUS.FRIEND_HAS_SENT);
// 更新情谊值
@@ -583,7 +595,7 @@ export class FriendHandler {
let dbHeroes = await HeroModel.findByRole(oppoRoleId);
let role = await RoleModel.findByRoleId(oppoRoleId, null, true);
let { topFive } = role;
let { topFive, topFiveCe } = role;
let heroes = new Array<PlayerDetailHero>();
for(let {hid, lv, star, colorStar, quality } of dbHeroes) {
@@ -597,7 +609,7 @@ export class FriendHandler {
}
let rank = await getMyRank(REDIS_KEY.PVP_RANK, 0, oppoRoleId);//去redis中获取排名
result = new PlayerDetail({...role, heroes});
result = new PlayerDetail({...role, defCe: topFiveCe, heroes});
result.setWarStar(role.warStar, rank);
return resResult(STATUS.SUCCESS, result);