好友:添加区服信息
This commit is contained in:
@@ -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 } from "../../../services/redisService";
|
||||
import { isRoleOnline, getServerName } from "../../../services/redisService";
|
||||
import { increaseFrdCnt, getRecommendType, sortByBeSentHeart } from "../../../services/friendService";
|
||||
import { FriendPointModel } from "../../../db/FriendPoint";
|
||||
import { gameData } from "../../../pubUtils/data";
|
||||
@@ -46,6 +46,11 @@ export class FriendHandler {
|
||||
if(type == FRIEND_RELATION_TYPE.NORMAL) {
|
||||
let param = new FriendRecommendParams(role);
|
||||
param.setType(type);
|
||||
|
||||
let { serverId, userInfo: { serverType }} = role;
|
||||
let serverName = await getServerName(serverType, serverId);
|
||||
param.setServerName(serverId, serverName);
|
||||
|
||||
paramAllList.push(param);
|
||||
}
|
||||
}
|
||||
@@ -70,6 +75,11 @@ export class FriendHandler {
|
||||
let type = getRecommendType(myFriendRelation, roleId, role.roleId);
|
||||
let param = new FriendRecommendParams(role);
|
||||
param.setType(type);
|
||||
|
||||
let { serverId, userInfo: { serverType }} = role;
|
||||
let serverName = await getServerName(serverType, serverId);
|
||||
param.setServerName(serverId, serverName);
|
||||
|
||||
list.push(param);
|
||||
}
|
||||
|
||||
@@ -122,6 +132,11 @@ export class FriendHandler {
|
||||
for(let apply of list) {
|
||||
let friend = <RoleType>apply.friend;
|
||||
let param = new FriendApplyParams(apply.applyCode, friend);
|
||||
|
||||
let { serverId, userInfo: { serverType }} = friend;
|
||||
let serverName = await getServerName(serverType, serverId);
|
||||
param.setServerName(serverId, serverName);
|
||||
|
||||
result.push(param);
|
||||
}
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
@@ -173,6 +188,10 @@ export class FriendHandler {
|
||||
let isOnline = await isRoleOnline(friend.roleId);
|
||||
param.setOnline(isOnline);
|
||||
|
||||
let { serverId, userInfo: { serverType }} = friend;
|
||||
let serverName = await getServerName(serverType, serverId);
|
||||
param.setServerName(serverId, serverName);
|
||||
|
||||
list.push(param);
|
||||
resultApplyCodeList.push(apply.applyCode);
|
||||
}
|
||||
@@ -200,18 +219,22 @@ export class FriendHandler {
|
||||
let myRelation = await FriendRelationModel.findFriendByRole(roleId, POPULATE_TYPE.FRIEND);
|
||||
let friendList = myRelation?myRelation.friends: [];
|
||||
for(let friend of friendList) {
|
||||
let role = <RoleType>friend.role;
|
||||
let friendRole = <RoleType>friend.role;
|
||||
let friendShip = <FriendShipType>friend.friendShip;
|
||||
if(!role || !friendShip) continue;
|
||||
if(!friendRole || !friendShip) continue;
|
||||
|
||||
let fs = <FriendShipType>friend.friendShip;
|
||||
let ref = shouldRefresh(fs.refTime, new Date(), 0);
|
||||
if(ref) {
|
||||
friendShip = await FriendShipModel.refreshSendAndReceive(roleId, role.roleId);
|
||||
friendShip = await FriendShipModel.refreshSendAndReceive(roleId, friendRole.roleId);
|
||||
}
|
||||
|
||||
let param = new FriendListParam(role, roleId, friendShip);
|
||||
let isOnline = await isRoleOnline(role.roleId);
|
||||
let param = new FriendListParam(friendRole, roleId, friendShip);
|
||||
let { serverId, userInfo: { serverType }} = friendRole;
|
||||
let serverName = await getServerName(serverType, serverId);
|
||||
param.setServerName(serverId, serverName);
|
||||
|
||||
let isOnline = await isRoleOnline(friendRole.roleId);
|
||||
param.setOnline(isOnline);
|
||||
|
||||
list.push(param);
|
||||
@@ -238,11 +261,15 @@ export class FriendHandler {
|
||||
let myRelation = await FriendRelationModel.findFriendByRole(roleId, POPULATE_TYPE.BLACKLIST);
|
||||
let blacklist = myRelation?myRelation.blacklist: [];
|
||||
for(let bl of blacklist) {
|
||||
let role = <RoleType>bl.role;
|
||||
if(!role) continue;
|
||||
let param = new BlackListParam(role);
|
||||
let isOnline = await isRoleOnline(role.roleId);
|
||||
let friendRole = <RoleType>bl.role;
|
||||
if(!friendRole) continue;
|
||||
let param = new BlackListParam(friendRole);
|
||||
let isOnline = await isRoleOnline(friendRole.roleId);
|
||||
param.setOnline(isOnline);
|
||||
|
||||
let { serverId, userInfo: { serverType }} = friendRole;
|
||||
let serverName = await getServerName(serverType, serverId);
|
||||
param.setServerName(serverId, serverName);
|
||||
|
||||
list.push(param);
|
||||
|
||||
@@ -264,8 +291,8 @@ export class FriendHandler {
|
||||
|
||||
let role = await RoleModel.findByRoleId(roleId);
|
||||
|
||||
let str = '', list = new Array<BlackListParam>();
|
||||
if(type == BLOCK_OPEATE.ADD) {
|
||||
let str = '', list = new Array<BlackListParam>(), frdRoleIds = new Array<string>(), blackRoleIds = new Array<string>();
|
||||
if(type == BLOCK_OPEATE.ADD) { // 拉黑
|
||||
let myRelation = await FriendRelationModel.findFriendByRole(roleId, POPULATE_TYPE.FRIEND);
|
||||
let friends = myRelation?myRelation.friends: [];
|
||||
let blacklist = myRelation?myRelation.blacklist: [];
|
||||
@@ -294,11 +321,42 @@ export class FriendHandler {
|
||||
await FriendRelationModel.moveFromFriend(roleId, friend, friendShip, true); // 删除好友关系并拉黑
|
||||
|
||||
let param = new BlackListParam(friend);
|
||||
let isOnline = await isRoleOnline(role.roleId);
|
||||
let isOnline = await isRoleOnline(friend.roleId);
|
||||
param.setOnline(isOnline);
|
||||
list.push(param);
|
||||
|
||||
} else if(type == BLOCK_OPEATE.REMOVE || type == BLOCK_OPEATE.REMOVE_AND_APPLY){
|
||||
let { serverId, userInfo: { serverType }} = friend;
|
||||
let serverName = await getServerName(serverType, serverId);
|
||||
param.setServerName(serverId, serverName);
|
||||
|
||||
list.push(param);
|
||||
frdRoleIds.push(roleId);
|
||||
} else if (type == BLOCK_OPEATE.REMOVE_FRIEND) { // 仅移除
|
||||
|
||||
let myRelation = await FriendRelationModel.findFriendByRole(roleId, POPULATE_TYPE.FRIEND);
|
||||
let friends = myRelation?myRelation.friends: [];
|
||||
let curFriend = friends.find(cur => cur.roleId == hisRoleId);
|
||||
if(!curFriend) {
|
||||
return resResult(STATUS.FRIEND_NOT_FOUND);
|
||||
}
|
||||
|
||||
role = await RoleModel.increaseFriendCnt(roleId, -1); // 减少好友
|
||||
if(!role) {
|
||||
return resResult(STATUS.FRIEND_NOT_FOUND)
|
||||
}
|
||||
await RoleModel.increaseFriendCnt(hisRoleId, -1); // 对方好友减少
|
||||
|
||||
let friend: RoleType, friendShip: FriendShipType;
|
||||
|
||||
await FriendShipModel.clearValue([roleId, hisRoleId]);
|
||||
friend = <RoleType>curFriend.role;
|
||||
friendShip = <FriendShipType>curFriend.friendShip;
|
||||
|
||||
await FriendRelationModel.moveFromFriend(hisRoleId, role, friendShip, false); //从对方好友删除
|
||||
await FriendRelationModel.moveFromFriend(roleId, friend, friendShip, false); // 删除好友关系并拉黑
|
||||
|
||||
frdRoleIds.push(roleId);
|
||||
|
||||
} else if(type == BLOCK_OPEATE.REMOVE_BLACK || type == BLOCK_OPEATE.REMOVE_AND_APPLY){
|
||||
let myRelation = await FriendRelationModel.findFriendByRole(roleId, POPULATE_TYPE.BLACKLIST);
|
||||
let blacklist = myRelation?myRelation.blacklist: [];
|
||||
|
||||
@@ -322,6 +380,7 @@ export class FriendHandler {
|
||||
await FriendApplyModel.createApply(hisRoleId, role);
|
||||
}
|
||||
}
|
||||
blackRoleIds.push(roleId);
|
||||
|
||||
} else {
|
||||
return resResult(STATUS.WRONG_PARMS);
|
||||
@@ -330,6 +389,7 @@ export class FriendHandler {
|
||||
let { friendCnt = 0, blockCnt = 0 } = role;
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
frdRoleIds, blackRoleIds,
|
||||
isSuccess: str == '',
|
||||
msg: str,
|
||||
list,
|
||||
|
||||
Reference in New Issue
Block a user