活动:任务接口添加serverId接口

This commit is contained in:
qiaoxin
2021-05-20 19:25:52 +08:00
parent d637e5701d
commit 718f19a42a
39 changed files with 481 additions and 465 deletions
@@ -92,6 +92,7 @@ export class EquipHandler {
public async strengthen(msg: { hid: number, ePlaceId: number, type: number }, session: BackendSession) {
let roleId: string = session.get('roleId');
// let roleName: string = session.get('roleName');
const serverId = session.get('serverId');
let sid: string = session.get('sid');
let funcs: number[] = session.get('funcs');
@@ -167,7 +168,7 @@ export class EquipHandler {
// 任务
await checkTaskWithHero(roleId, sid, funcs, TASK_TYPE.EQUIP_STRENGTHEN, hero, oldLvs);
//成长任务
await accomplishTask(roleId, TASK_TYPE.EQUIP_STRENGTHEN, 1, changeData)
await accomplishTask(serverId, roleId, TASK_TYPE.EQUIP_STRENGTHEN, 1, changeData)
const curHero = {
hid,
@@ -183,6 +184,7 @@ export class EquipHandler {
// let roleName: string = session.get('roleName');
let sid: string = session.get('sid');
let funcs: number[] = session.get('funcs');
const serverId = session.get('serverId');
let changeData = [];//变化的等级数据
let { hid, lv: maxLv } = msg; // lv: 升到哪一级
@@ -248,7 +250,7 @@ export class EquipHandler {
// 任务
await checkTaskWithHero(roleId, sid, funcs, TASK_TYPE.EQUIP_STRENGTHEN, hero, oldLvs);
//成长任务
await accomplishTask(roleId, TASK_TYPE.EQUIP_STRENGTHEN, 1, changeData)
await accomplishTask(serverId, roleId, TASK_TYPE.EQUIP_STRENGTHEN, 1, changeData)
const curHero = {
hid,
@@ -326,7 +328,7 @@ export class EquipHandler {
let curEquip = <EquipType>equip;
pushEquipRefineSucMsg(roleId, roleName, serverId, curEplace, curEquip ? curEquip.quality : 0);
await checkTask(roleId, sid, funcs, TASK_TYPE.EQUIP_REFINE, 1, true, {});
await accomplishTask(roleId, TASK_TYPE.EQUIP_REFINE_LV, 1, { lv: curEplace.refineLv });
await accomplishTask(serverId, roleId, TASK_TYPE.EQUIP_REFINE_LV, 1, { lv: curEplace.refineLv });
}
return resResult(STATUS.SUCCESS, { isSuccess, curHero });
}
@@ -479,6 +481,7 @@ export class EquipHandler {
public async putOnOrOff(msg: { eid: number, hid: number, type: number }, session: BackendSession) {
let { eid, hid, type } = msg;
let roleId: string = session.get('roleId');
const serverId = session.get('serverId');
let equip = await EquipModel.getEquip(eid);
let sid: string = session.get('sid');
let funcs: number[] = session.get('funcs');
@@ -503,10 +506,10 @@ export class EquipHandler {
if (index < 0)
return resResult(STATUS.WRONG_PARMS);
let equipOffInfo = <EquipType>hero.ePlace[index].equip;
let curEquip = await changeEquip(roleId, sid, equipOffInfo, equip.hid, id, equip, funcs);
let curEquip = await changeEquip(serverId, roleId, sid, equipOffInfo, equip.hid, id, equip, funcs);
if (!!curEquip)
curEquips.push(curEquip);
curEquip = await dressEquip(roleId, sid, hero, equip, funcs);
curEquip = await dressEquip(serverId, roleId, sid, hero, equip, funcs);
if (!!curEquip)
curEquips.push(curEquip);
@@ -514,7 +517,7 @@ export class EquipHandler {
//英雄满装备且都镶嵌相同阶数的宝石
let { isTask, jewelLevel } = await checkTaskConditionEquipSuitJewelStage(hero)
if (isTask) {
await accomplishTask(roleId, TASK_TYPE.EQUIP_SUIT_JEWEL_STAGE, 1, { stage: jewelLevel })
await accomplishTask(serverId, roleId, TASK_TYPE.EQUIP_SUIT_JEWEL_STAGE, 1, { stage: jewelLevel })
}
} else if (type == 2) {
if (!equip.hid)
@@ -557,6 +560,7 @@ export class EquipHandler {
public async fillHole(msg: { eid: number, id: number, jewel: number }, session: BackendSession) {
let { eid, id, jewel } = msg;
let roleId: string = session.get('roleId');
const serverId = session.get('serverId');
let sid: string = session.get('sid');
let funcs: number[] = session.get('funcs');
let consumes: Array<{ id: number, count: number }> = [];
@@ -593,7 +597,7 @@ export class EquipHandler {
//英雄满装备且都镶嵌相同阶数的宝石
let { isTask, jewelLevel } = await checkTaskConditionEquipSuitJewelStage(hero)
if (isTask) {
await accomplishTask(roleId, TASK_TYPE.EQUIP_SUIT_JEWEL_STAGE, 1, { stage: jewelLevel })
await accomplishTask(serverId, roleId, TASK_TYPE.EQUIP_SUIT_JEWEL_STAGE, 1, { stage: jewelLevel })
}
}
@@ -602,8 +606,8 @@ export class EquipHandler {
await checkTaskWithArgs(roleId, sid, funcs, TASK_TYPE.EQUIP_JEWEL_STAGE, [jewel, oldJewel]);
await checkTaskWithEquip(roleId, sid, funcs, TASK_TYPE.EQUIP_JEWEL_SUM, equip, [oldJewelCount]);
//成长任务
await accomplishTask(roleId, TASK_TYPE.EQUIP_JEWEL_SUM, 1)
await accomplishTask(roleId, TASK_TYPE.EQUIP_JEWEL_STAGE, 1)
await accomplishTask(serverId, roleId, TASK_TYPE.EQUIP_JEWEL_SUM, 1)
await accomplishTask(serverId, roleId, TASK_TYPE.EQUIP_JEWEL_STAGE, 1)
return resResult(STATUS.SUCCESS, { curEquip: { seqId: eid, holes: equip.holes } });
}
@@ -773,7 +777,7 @@ export class EquipHandler {
//英雄满装备且都镶嵌相同阶数的宝石
let { isTask, jewelLevel } = await checkTaskConditionEquipSuitJewelStage(hero)
if (isTask) {
await accomplishTask(roleId, TASK_TYPE.EQUIP_SUIT_JEWEL_STAGE, 1, { stage: jewelLevel })
await accomplishTask(serverId, roleId, TASK_TYPE.EQUIP_SUIT_JEWEL_STAGE, 1, { stage: jewelLevel })
}
}
@@ -782,7 +786,7 @@ export class EquipHandler {
await checkTaskWithArgs(roleId, sid, funcs, TASK_TYPE.EQUIP_JEWEL_STAGE, [jewel, oldJewel]);
await checkTaskWithEquip(roleId, sid, funcs, TASK_TYPE.EQUIP_JEWEL_SUM, equip, [oldJewelCount]);
//成长任务
await accomplishTask(roleId, TASK_TYPE.EQUIP_JEWEL_SUM, count)
await accomplishTask(serverId, roleId, TASK_TYPE.EQUIP_JEWEL_SUM, count)
return resResult(STATUS.SUCCESS, { curEquip: { seqId: eid, holes: equip.holes } });
} else {
@@ -37,12 +37,12 @@ export class FriendHandler {
}
// 获取推荐好友列表
public async getRecommend(msg: { }, session: BackendSession) {
public async getRecommend(msg: {}, session: BackendSession) {
let roleId: string = session.get('roleId');
const day = <number>getTimeFun().getBeforeHour(FRIEND.FRIEND_RECONMMEND_ACTIVETIME);
const { lv, serverId: myServerId, userInfo: { serverType: myServerType } } = await RoleModel.findByRoleId(roleId, ROLE_SELECT.GET_MY_SERVER);
const { lv, serverId: myServerId, userInfo: { serverType: myServerType } } = await RoleModel.findByRoleId(roleId, ROLE_SELECT.GET_MY_SERVER);
let allList = await RoleModel.getRecommedList(lv - FRIEND.FRIEND_RECONMMEND_LEVEL, lv + FRIEND.FRIEND_RECONMMEND_LEVEL, day);
// 筛掉自己今天申请过的人
@@ -55,17 +55,17 @@ export class FriendHandler {
let myServerList = new Array<FriendRecommendParams>();
let otherServerList = new Array<FriendRecommendParams>();
for(let role of allList) {
for (let role of allList) {
let type = getRecommendType(myFriendRelation, roleId, role.roleId);
if(type == FRIEND_RELATION_TYPE.NORMAL) {
if (type == FRIEND_RELATION_TYPE.NORMAL) {
let param = new FriendRecommendParams(role);
param.setType(type);
let { serverId, userInfo: { serverType }} = role;
let { serverId, userInfo: { serverType } } = role;
let serverName = await getServerName(serverType, serverId);
param.setServerName(serverId, serverName);
if(myServerId == serverId && myServerType == serverType ) {
if (myServerId == serverId && myServerType == serverType) {
myServerList.push(param);
} else {
otherServerList.push(param);
@@ -75,14 +75,14 @@ export class FriendHandler {
}
// 前4个是本服的,后4个随意,优先本服,其他补上
let myServerLen = myServerList.length > FRIEND.FRIEND_RECONMMEND_SERVICE? FRIEND.FRIEND_RECONMMEND_SERVICE: myServerList.length;
let list1:FriendRecommendParams[] = getRandEelm(myServerList, myServerLen);
let myServerLen = myServerList.length > FRIEND.FRIEND_RECONMMEND_SERVICE ? FRIEND.FRIEND_RECONMMEND_SERVICE : myServerList.length;
let list1: FriendRecommendParams[] = getRandEelm(myServerList, myServerLen);
let otherServerLen = otherServerList.length > FRIEND.FRIEND_RECONMMEND_NUM - myServerLen? FRIEND.FRIEND_RECONMMEND_NUM - myServerLen: otherServerList.length;
let list2:FriendRecommendParams[] = getRandEelm(otherServerList, otherServerLen);
let otherServerLen = otherServerList.length > FRIEND.FRIEND_RECONMMEND_NUM - myServerLen ? FRIEND.FRIEND_RECONMMEND_NUM - myServerLen : otherServerList.length;
let list2: FriendRecommendParams[] = getRandEelm(otherServerList, otherServerLen);
if(list2.length < FRIEND.FRIEND_RECONMMEND_NUM - myServerLen) {
if(myServerList.length <= FRIEND.FRIEND_RECONMMEND_NUM - list2.length) {
if (list2.length < FRIEND.FRIEND_RECONMMEND_NUM - myServerLen) {
if (myServerList.length <= FRIEND.FRIEND_RECONMMEND_NUM - list2.length) {
list1 = myServerList;
} else {
list1 = getRandEelm(myServerList, FRIEND.FRIEND_RECONMMEND_NUM - list2.length);
@@ -90,7 +90,7 @@ export class FriendHandler {
}
list1 = sortArrRandom(list1);
list2 = sortArrRandom(list2);
let list = list1.concat(list2);
return resResult(STATUS.SUCCESS, { list });
@@ -99,18 +99,18 @@ export class FriendHandler {
// 搜索好友
public async searchUser(msg: { value: string }, session: BackendSession) {
let roleId: string = session.get('roleId');
let { value } = msg;
let allList = await RoleModel.searchByNameOrId(value);
let myFriendRelation = await FriendRelationModel.findFriendByRole(roleId, POPULATE_TYPE.NOT);
let list = new Array<FriendRecommendParams>();
for(let role of allList) {
for (let role of allList) {
let type = getRecommendType(myFriendRelation, roleId, role.roleId);
let param = new FriendRecommendParams(role);
param.setType(type);
let { serverId, userInfo: { serverType }} = role;
let { serverId, userInfo: { serverType } } = role;
let serverName = await getServerName(serverType, serverId);
param.setServerName(serverId, serverName);
@@ -122,34 +122,34 @@ export class FriendHandler {
// 申请
public async applyFriend(msg: { roleIds: string[] }, session: BackendSession) {
let roleId: string = session.get('roleId');
let roleIds = msg.roleIds;
const role = await RoleModel.findByRoleId(roleId, ROLE_SELECT.GET_ROLE_ID);
const role = await RoleModel.findByRoleId(roleId, ROLE_SELECT.GET_ROLE_ID);
let myFriendRelation = await FriendRelationModel.findFriendByRole(roleId, POPULATE_TYPE.NOT);
let str = '', resultRoleIds = new Array<string>();
let uids = [];
for(let hisRoleId of roleIds) {
for (let hisRoleId of roleIds) {
let type = getRecommendType(myFriendRelation, roleId, hisRoleId);
if(type == FRIEND_RELATION_TYPE.HAS_FRIEND) {
if (type == FRIEND_RELATION_TYPE.HAS_FRIEND) {
str = getResStr(STATUS.FRIEND_HAS_ADD); continue;
} else if(type == FRIEND_RELATION_TYPE.HAS_BLOCKED) {
} else if (type == FRIEND_RELATION_TYPE.HAS_BLOCKED) {
str = getResStr(STATUS.FRIEND_HAS_BLOCKED); continue;
} else if (type == FRIEND_RELATION_TYPE.MYSELF) {
str = getResStr(STATUS.FRIEND_YOURSELF); continue;
}
let incResult = await RoleModel.increaseFriendApplyCnt(hisRoleId, 1, FRIEND.FRIEND_MANAGE_APPLICATION);
if(!incResult) {
if (!incResult) {
str = getResStr(STATUS.FRIEND_HIS_APPLY_MAX); continue;
}
await FriendApplyModel.createApply(hisRoleId, role);
resultRoleIds.push(hisRoleId);
let hisOnlineInfo = await getRoleOnlineInfo(hisRoleId);
if(hisOnlineInfo.isOnline) {
if (hisOnlineInfo.isOnline) {
uids.push({ uid: hisRoleId, sid: hisOnlineInfo.sid });
}
}
@@ -162,9 +162,9 @@ export class FriendHandler {
roleIds: resultRoleIds
});
}
// 获取申请列表
public async getApplyList(msg: { }, session: BackendSession) {
public async getApplyList(msg: {}, session: BackendSession) {
let roleId: string = session.get('roleId');
@@ -172,18 +172,18 @@ export class FriendHandler {
let list = await FriendApplyModel.getApplyList(roleId);
let result = new Array<FriendApplyParams>();
let delApplyCodeList = new Array<string>();
for(let apply of list) {
for (let apply of list) {
let friend = <RoleType>apply.friend;
let type = getRecommendType(myFriendRelation, roleId, friend.roleId);
let param = new FriendApplyParams(apply.applyCode, friend);
let { serverId, userInfo: { serverType }} = friend;
let { serverId, userInfo: { serverType } } = friend;
let serverName = await getServerName(serverType, serverId);
param.setServerName(serverId, serverName);
param.setType(type);
if(type != FRIEND_RELATION_TYPE.NORMAL) {
if (type != FRIEND_RELATION_TYPE.NORMAL) {
delApplyCodeList.push(apply.applyCode);
continue;
}
@@ -203,6 +203,7 @@ export class FriendHandler {
let roleId: string = session.get('roleId');
let sid: string = session.get('sid');
let funcs: number[] = session.get('funcs');
const serverId = session.get('serverId');
let { applyCodeList, isPass } = msg;
@@ -216,29 +217,29 @@ export class FriendHandler {
let list = new Array<FriendListParam>();
let str = '', resultApplyCodeList = new Array<string>();
if(isPass) {
for(let apply of applyList) {
if (isPass) {
for (let apply of applyList) {
let type = getRecommendType(myFriendRelation, roleId, apply.frdRoleId);
if(type == FRIEND_RELATION_TYPE.HAS_FRIEND) {
if (type == FRIEND_RELATION_TYPE.HAS_FRIEND) {
str = getResStr(STATUS.FRIEND_HAS_ADD);
resultApplyCodeList.push(apply.applyCode); continue;
} else if(type == FRIEND_RELATION_TYPE.HAS_BLOCKED) {
} else if (type == FRIEND_RELATION_TYPE.HAS_BLOCKED) {
resultApplyCodeList.push(apply.applyCode);
str = getResStr(STATUS.FRIEND_HAS_BLOCKED); continue;
} else if (type == FRIEND_RELATION_TYPE.MYSELF) {
resultApplyCodeList.push(apply.applyCode);
str = getResStr(STATUS.FRIEND_YOURSELF); continue;
}
// 好友数量校验
let friend = <RoleType>apply.friend;
str = await increaseFrdCnt(role, friend, friendCnt);
if(str != '') continue;
if (str != '') continue;
roles.push(friend);
// 创建friendShip
let friendShip = await FriendShipModel.createFriendShip([roleId, friend.roleId]);
if(!friendShip) {
if (!friendShip) {
str = getResStr(STATUS.FRIEND_SHIP_CREATE_ERROR); continue;
}
@@ -249,7 +250,7 @@ export class FriendHandler {
let isOnline = await isRoleOnline(friend.roleId);
param.setOnline(isOnline);
let { serverId, userInfo: { serverType }} = friend;
let { serverId, userInfo: { serverType } } = friend;
let serverName = await getServerName(serverType, serverId);
param.setServerName(serverId, serverName);
@@ -265,10 +266,10 @@ export class FriendHandler {
role = await RoleModel.increaseFriendApplyCnt(roleId, -1 * resultApplyCodeList.length, 50);
roles.push(role);
// 任务
await checkTaskWithRoles(roleId, sid, funcs, TASK_TYPE.FRIEND_NUM, roles);
await checkTaskWithRoles(serverId, roleId, sid, funcs, TASK_TYPE.FRIEND_NUM, roles);
// 特殊处理:如果他点一键同意,有很多人,这个单独的人就不做这个额外的提示,直接把他好友申请删掉就好
if(str == getResStr(STATUS.FRIEND_HAS_ADD) && resultApplyCodeList.length > 1) str = '';
if (str == getResStr(STATUS.FRIEND_HAS_ADD) && resultApplyCodeList.length > 1) str = '';
return resResult(STATUS.SUCCESS, {
isSuccess: str == '',
@@ -280,27 +281,27 @@ export class FriendHandler {
}
// 获取好友列表
public async getFriendList(msg: { }, session: BackendSession) {
public async getFriendList(msg: {}, session: BackendSession) {
let roleId: string = session.get('roleId');
let role = await RoleModel.findByRoleId(roleId);
let list = new Array<FriendListParam>();
let myRelation = await FriendRelationModel.findFriendByRole(roleId, POPULATE_TYPE.FRIEND);
let friendList = myRelation?myRelation.friends: [];
let friendList = myRelation ? myRelation.friends : [];
for(let friend of friendList) {
for (let friend of friendList) {
let friendRole = <RoleType>friend.role;
let friendShip = <FriendShipType>friend.friendShip;
if(!friendRole || !friendShip) continue;
if (!friendRole || !friendShip) continue;
let fs = <FriendShipType>friend.friendShip;
let ref = shouldRefresh(fs.refTime, new Date());
if(ref) {
if (ref) {
friendShip = await FriendShipModel.refreshSendAndReceive(roleId, friendRole.roleId);
}
let param = new FriendListParam(friendRole, roleId, friendShip);
let { serverId, userInfo: { serverType }} = friendRole;
let { serverId, userInfo: { serverType } } = friendRole;
let serverName = await getServerName(serverType, serverId);
param.setServerName(serverId, serverName);
@@ -308,15 +309,15 @@ export class FriendHandler {
param.setOnline(isOnline);
param.setType(FRIEND_RELATION_TYPE.HAS_FRIEND);
list.push(param);
}
list.sort((a, b) => {
if(a.isOnline != b.isOnline) {
return a.isOnline?1:-1
if (a.isOnline != b.isOnline) {
return a.isOnline ? 1 : -1
}
if(a.quitTime != b.quitTime) {
if (a.quitTime != b.quitTime) {
return b.quitTime - a.quitTime
}
return a.friendValue - b.friendValue;
@@ -324,7 +325,7 @@ export class FriendHandler {
let { friendCnt = 0, blockCnt = 0 } = role;
let frdPointRec = await FriendPointModel.getFrdPointRecToday(roleId, FRIEND_DROP_TYPE.SEND_GIFT);
let { cnt: todayReceiveCnt = 0, sendCnt: todaySendCnt = 0 } = frdPointRec||{};
let { cnt: todayReceiveCnt = 0, sendCnt: todaySendCnt = 0 } = frdPointRec || {};
return resResult(STATUS.SUCCESS, {
todayReceiveCnt,
@@ -335,26 +336,26 @@ export class FriendHandler {
}
// 获取黑名单
public async getBlackList(msg: { }, session: BackendSession) {
public async getBlackList(msg: {}, session: BackendSession) {
let roleId: string = session.get('roleId');
let role = await RoleModel.findByRoleId(roleId);
let list = new Array<BlackListParam>();
let myRelation = await FriendRelationModel.findFriendByRole(roleId, POPULATE_TYPE.BLACKLIST);
let blacklist = myRelation?myRelation.blacklist: [];
for(let bl of blacklist) {
let blacklist = myRelation ? myRelation.blacklist : [];
for (let bl of blacklist) {
let friendRole = <RoleType>bl.role;
if(!friendRole) continue;
if (!friendRole) continue;
let param = new BlackListParam(friendRole);
let isOnline = await isRoleOnline(friendRole.roleId);
param.setOnline(isOnline);
let { serverId, userInfo: { serverType }} = friendRole;
let { serverId, userInfo: { serverType } } = friendRole;
let serverName = await getServerName(serverType, serverId);
param.setServerName(serverId, serverName);
param.setType(FRIEND_RELATION_TYPE.HAS_BLOCKED);
list.push(param);
}
@@ -373,30 +374,31 @@ export class FriendHandler {
let roleId: string = session.get('roleId');
let sid: string = session.get('sid');
let funcs: number[] = session.get('funcs');
const serverId = session.get('serverId');
let { roleId: hisRoleId, type } = msg;
let role = await RoleModel.findByRoleId(roleId);
let friend: RoleType;
let str = '', list = new Array<BlackListParam>(), frdRoleIds = new Array<string>(), blackRoleIds = new Array<string>();
if(type == BLOCK_OPEATE.ADD) { // 拉黑
if (type == BLOCK_OPEATE.ADD) { // 拉黑
let myRelation = await FriendRelationModel.findFriendByRole(roleId, POPULATE_TYPE.FRIEND);
let friends = myRelation?myRelation.friends: [];
let blacklist = myRelation?myRelation.blacklist: [];
let friends = myRelation ? myRelation.friends : [];
let blacklist = myRelation ? myRelation.blacklist : [];
let curFriend = friends.find(cur => cur.roleId == hisRoleId);
let curBlack = blacklist.find(cur => cur.roleId == hisRoleId);
if(curBlack) {
if (curBlack) {
return resResult(STATUS.FRIEND_BLACK_HAS_ADD);
}
role = await RoleModel.increaseBlockCnt(roleId, 1, curFriend? -1: 0, FRIEND.FRIEND_BLACKLIST_MAX); // 增加黑名单人数
if(!role) {
role = await RoleModel.increaseBlockCnt(roleId, 1, curFriend ? -1 : 0, FRIEND.FRIEND_BLACKLIST_MAX); // 增加黑名单人数
if (!role) {
return resResult(STATUS.FRIEND_BLACK_MAX)
}
friend = await RoleModel.increaseFriendCnt(hisRoleId, curFriend? -1: 0); // 对方好友减少
friend = await RoleModel.increaseFriendCnt(hisRoleId, curFriend ? -1 : 0); // 对方好友减少
let friendShip: FriendShipType;
if(!!curFriend) {
if (!!curFriend) {
await FriendShipModel.clearValue([roleId, hisRoleId]);
friendShip = <FriendShipType>curFriend.friendShip;
}
@@ -410,7 +412,7 @@ export class FriendHandler {
let isOnline = await isRoleOnline(friend.roleId);
param.setOnline(isOnline);
let { serverId, userInfo: { serverType }} = friend;
let { serverId, userInfo: { serverType } } = friend;
let serverName = await getServerName(serverType, serverId);
param.setServerName(serverId, serverName);
@@ -420,14 +422,14 @@ export class FriendHandler {
} else if (type == BLOCK_OPEATE.REMOVE_FRIEND) { // 仅移除
let myRelation = await FriendRelationModel.findFriendByRole(roleId, POPULATE_TYPE.FRIEND);
let friends = myRelation?myRelation.friends: [];
let friends = myRelation ? myRelation.friends : [];
let curFriend = friends.find(cur => cur.roleId == hisRoleId);
if(!curFriend) {
if (!curFriend) {
return resResult(STATUS.FRIEND_NOT_FOUND);
}
role = await RoleModel.increaseFriendCnt(roleId, -1); // 减少好友
if(!role) {
if (!role) {
return resResult(STATUS.FRIEND_NOT_FOUND)
}
friend = await RoleModel.increaseFriendCnt(hisRoleId, -1); // 对方好友减少
@@ -442,26 +444,26 @@ export class FriendHandler {
frdRoleIds.push(roleId);
} else if(type == BLOCK_OPEATE.REMOVE_BLACK || type == BLOCK_OPEATE.REMOVE_AND_APPLY){
} 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: [];
let blacklist = myRelation ? myRelation.blacklist : [];
let curFriend = blacklist.find(cur => cur.roleId == hisRoleId);
if(!curFriend) {
if (!curFriend) {
return resResult(STATUS.FRIEND_BLACK_NOT_FOUND);
}
role = await RoleModel.increaseBlockCnt(roleId, -1, 0, 100); // 黑名单人数减
if(!role) {
if (!role) {
return resResult(STATUS.FRIEND_BLACK_MAX)
}
await FriendRelationModel.removeFromBlack(roleId, hisRoleId);
if(type == BLOCK_OPEATE.REMOVE_AND_APPLY) {
if (type == BLOCK_OPEATE.REMOVE_AND_APPLY) {
// 申请好友
friend = await RoleModel.increaseFriendApplyCnt(hisRoleId, 1, FRIEND.FRIEND_MANAGE_APPLICATION);
if(!friend) {
str = getResStr(STATUS.FRIEND_HIS_APPLY_MAX);
if (!friend) {
str = getResStr(STATUS.FRIEND_HIS_APPLY_MAX);
} else {
await FriendApplyModel.createApply(hisRoleId, role);
}
@@ -475,7 +477,7 @@ export class FriendHandler {
let { friendCnt = 0, blockCnt = 0 } = role;
// 任务
await checkTaskWithRoles(roleId, sid, funcs, TASK_TYPE.FRIEND_NUM, [role, friend]);
await checkTaskWithRoles(serverId, roleId, sid, funcs, TASK_TYPE.FRIEND_NUM, [role, friend]);
return resResult(STATUS.SUCCESS, {
frdRoleIds, blackRoleIds,
@@ -494,40 +496,40 @@ export class FriendHandler {
const funcs: number[] = session.get('funcs');
let { roleId: hisRoleId } = msg;
let myRelation = await FriendRelationModel.findFriendByRole(roleId, POPULATE_TYPE.FRIEND); // 好友关系,只有friendship被populate了
let friends = myRelation?myRelation.friends: [];
let friends = myRelation ? myRelation.friends : [];
let arr = new Array<Relation>();
if(hisRoleId != '') {
if (hisRoleId != '') {
let cur = friends.find(cur => cur.roleId == hisRoleId);
if(!cur) return resResult(STATUS.FRIEND_NOT_FOUND);
if (!cur) return resResult(STATUS.FRIEND_NOT_FOUND);
arr.push(cur);
} else {
arr = friends;
}
let canSendList = await sortByBeSentHeart(roleId, arr);
let {lv} = await RoleModel.findByRoleId(roleId, ROLE_SELECT.GET_LV);
let { lv } = await RoleModel.findByRoleId(roleId, ROLE_SELECT.GET_LV);
let dicFriendLv = getDicFriendByLv(lv);
if(!dicFriendLv) return resResult(STATUS.DIC_DATA_NOT_FOUND);
if (!dicFriendLv) return resResult(STATUS.DIC_DATA_NOT_FOUND);
// 情谊值有上限,送到上限为止
let max = dicFriendLv.sendMax;
let frdPointRec = await FriendPointModel.getFrdPointRecToday(roleId, FRIEND_DROP_TYPE.SEND_GIFT);
let { sendCnt: todaySendCnt = 0 } = frdPointRec||{};
let { sendCnt: todaySendCnt = 0 } = frdPointRec || {};
let todaySendInc = 0;
let list = new Array<FriendValueListParam>();
let uids = [];
for(let relation of canSendList) {
for (let relation of canSendList) {
if(todaySendCnt + FRIEND.FRIEND_FRIENDPOINT_ADD > max) break;
if (todaySendCnt + FRIEND.FRIEND_FRIENDPOINT_ADD > max) break;
let fs = <FriendShipType>relation.friendShip;
let ref = shouldRefresh(fs.refTime, new Date());
let sendHeartRec = await FriendShipModel.sendHeart(roleId, relation.roleId, 1, FRIEND.FRIEND_RECEIVE_SINGLE, ref);
if(!sendHeartRec) continue;
if (!sendHeartRec) continue;
let param = new FriendValueListParam(relation.roleId, roleId, sendHeartRec);
list.push(param);
@@ -536,15 +538,15 @@ export class FriendHandler {
todaySendInc += FRIEND.FRIEND_FRIENDPOINT_ADD;
let hisOnlineInfo = await getRoleOnlineInfo(relation.roleId);
if(hisOnlineInfo.isOnline) {
if (hisOnlineInfo.isOnline) {
uids.push({ uid: relation.roleId, sid: hisOnlineInfo.sid });
}
}
this.channelService.pushMessageByUids('onFriendSendHeart', resResult(STATUS.SUCCESS, {roleId}), uids);
if(todaySendInc <= 0) return resResult(STATUS.FRIEND_HAS_SENT);
this.channelService.pushMessageByUids('onFriendSendHeart', resResult(STATUS.SUCCESS, { roleId }), uids);
if (todaySendInc <= 0) return resResult(STATUS.FRIEND_HAS_SENT);
// 更新情谊值
frdPointRec = await FriendPointModel.updateSendCntToday(roleId, roleName, todaySendInc, max, FRIEND_DROP_TYPE.SEND_GIFT);
frdPointRec = await FriendPointModel.updateSendCntToday(roleId, roleName, todaySendInc, max, FRIEND_DROP_TYPE.SEND_GIFT);
// 任务
await checkTask(roleId, sid, funcs, TASK_TYPE.FRIEND_SEND_HEART, todaySendInc, true, {});
@@ -561,13 +563,13 @@ export class FriendHandler {
let sid: string = session.get('sid');
let { roleId: hisRoleId } = msg;
let myRelation = await FriendRelationModel.findFriendByRole(roleId, POPULATE_TYPE.FRIEND); // 好友关系,只有friendship被populate了
let friends = myRelation?myRelation.friends: [];
let friends = myRelation ? myRelation.friends : [];
let arr = new Array<Relation>();
if(hisRoleId != '') {
if (hisRoleId != '') {
let cur = friends.find(cur => cur.roleId == hisRoleId);
if(!cur) return resResult(STATUS.FRIEND_NOT_FOUND);
if (!cur) return resResult(STATUS.FRIEND_NOT_FOUND);
arr.push(cur);
} else {
@@ -575,39 +577,39 @@ export class FriendHandler {
}
let canReceiveList = await sortByBeSentHeart(roleId, arr);
let {lv} = await RoleModel.findByRoleId(roleId, ROLE_SELECT.GET_LV);
let { lv } = await RoleModel.findByRoleId(roleId, ROLE_SELECT.GET_LV);
let dicFriendLv = getDicFriendByLv(lv);
if(!dicFriendLv) return resResult(STATUS.DIC_DATA_NOT_FOUND);
if (!dicFriendLv) return resResult(STATUS.DIC_DATA_NOT_FOUND);
// 情谊值有上限,到上限为止
let max = dicFriendLv.receiveMax;
let frdPointRec = await FriendPointModel.getFrdPointRecToday(roleId, FRIEND_DROP_TYPE.SEND_GIFT);
let { cnt: todayReceiveCnt = 0 } = frdPointRec||{};
let { cnt: todayReceiveCnt = 0 } = frdPointRec || {};
let todayReceiveInc = 0;
let list = new Array<FriendValueListParam>();
for(let relation of canReceiveList) {
if(relation.beSentHeart > 0) {
if(todayReceiveCnt + FRIEND.FRIEND_FRIENDPOINT_ADD > max) break;
for (let relation of canReceiveList) {
if (relation.beSentHeart > 0) {
if (todayReceiveCnt + FRIEND.FRIEND_FRIENDPOINT_ADD > max) break;
// 收取爱心
let fs = <FriendShipType>relation.friendShip;
let ref = shouldRefresh(fs.refTime, new Date());
let receiveHeartRec = await FriendShipModel.receiveHeart(roleId, relation.roleId, 1, relation.beSentHeart, ref);
if(!receiveHeartRec) continue;
if (!receiveHeartRec) continue;
let param = new FriendValueListParam(relation.roleId, roleId, receiveHeartRec);
list.push(param);
todayReceiveCnt += FRIEND.FRIEND_FRIENDPOINT_ADD;
todayReceiveInc += FRIEND.FRIEND_FRIENDPOINT_ADD;
}
}
if(todayReceiveInc <= 0) return resResult(STATUS.FRIEND_HAS_RECEIVE);
if (todayReceiveInc <= 0) return resResult(STATUS.FRIEND_HAS_RECEIVE);
let fp = getFriendPointObject(todayReceiveCnt);
let goods = await addItems(roleId, roleName, sid, [fp])
frdPointRec = await FriendPointModel.updatePointToday(roleId, roleName, todayReceiveInc, max, FRIEND_DROP_TYPE.SEND_GIFT);
frdPointRec = await FriendPointModel.updatePointToday(roleId, roleName, todayReceiveInc, max, FRIEND_DROP_TYPE.SEND_GIFT);
return resResult(STATUS.SUCCESS, {
goods,
@@ -624,14 +626,14 @@ export class FriendHandler {
let { roleId: hisRoleId, items } = msg;
let myRelation = await FriendRelationModel.findFriendByRole(roleId, POPULATE_TYPE.FRIEND_NAME_ONLY);
let friends = myRelation?myRelation.friends: [];
let friends = myRelation ? myRelation.friends : [];
let curFriend = friends.find(cur => cur.roleId == hisRoleId);
if(!curFriend) return resResult(STATUS.FRIEND_NOT_FOUND);
if (!curFriend) return resResult(STATUS.FRIEND_NOT_FOUND);
let friendValueInc = 0;
for(let {id, count} of items ) {
for (let { id, count } of items) {
let dicGood = gameData.goods.get(id);
if(!dicGood) {
if (!dicGood) {
return resResult(STATUS.DIC_DATA_NOT_FOUND);
}
@@ -639,19 +641,19 @@ export class FriendHandler {
if (dicItid.type == CONSUME_TYPE.FRIEND_FAVOUR) {
friendValueInc += dicGood.value * count;
} else {
return resResult(STATUS.WRONG_PARMS);
return resResult(STATUS.WRONG_PARMS);
}
}
let costResult = await handleCost(roleId, sid, items);
if(!costResult) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
if (!costResult) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
let result = await FriendShipModel.addFriendValue(roleId, hisRoleId, friendValueInc);
if(!result) return resResult(STATUS.FRIEND_NOT_FOUND);
if (!result) return resResult(STATUS.FRIEND_NOT_FOUND);
// TODO 日志可以转到log服
await FriendPresentLogModel.createRecord(roleId, hisRoleId, items);
for(let {id, count} of items ) {
for (let { id, count } of items) {
const msgData = await createPrivateMsg(roleId, roleName, MSG_TYPE.RICH_TEXT, MSG_SOURCE.PRIVATE_SEND_GIFT, JSON.stringify({ id, count }), hisRoleId, null);
await pushMsgToRole(msgData);
let hisRole = <RoleType>curFriend.role;
@@ -668,7 +670,7 @@ export class FriendHandler {
// let roleId = session.get('roleId');
let { roleId: oppoRoleId } = msg;
let result: PlayerDetail;
let dbHeroes = await HeroModel.findByRole(oppoRoleId);
@@ -677,10 +679,10 @@ export class FriendHandler {
let heroes = new Array<PlayerDetailHero>();
if(showLineup) { // 设置过展示阵容
for(let hid of showLineup) {
if (showLineup) { // 设置过展示阵容
for (let hid of showLineup) {
let curHero = dbHeroes.find(cur => cur.hid == hid);
if(curHero) {
if (curHero) {
let { lv, star, colorStar, quality } = curHero;
heroes.push({
actorId: hid, lv, star, colorStar, quality,
@@ -689,9 +691,9 @@ export class FriendHandler {
}
}
} else {
for(let { hid } of topLineup) {
for (let { hid } of topLineup) {
let curHero = dbHeroes.find(cur => cur.hid == hid);
if(curHero) {
if (curHero) {
let { lv, star, colorStar, quality } = curHero;
heroes.push({
actorId: hid, lv, star, colorStar, quality,
@@ -704,9 +706,9 @@ export class FriendHandler {
let r = new Rank(REDIS_KEY.PVP_RANK, {});
let rank = await r.getMyRank({ roleId: oppoRoleId });//去redis中获取排名
result = new PlayerDetail({...role, defCe: topLineupCe, heroes});
result = new PlayerDetail({ ...role, defCe: topLineupCe, heroes });
result.setWarStar(role.warStar, rank, towerLv);
return resResult(STATUS.SUCCESS, result);
}
@@ -718,22 +720,22 @@ export class FriendHandler {
let { roleId: hisRoleId, hids } = msg;
let role = await RoleModel.findByRoleId(hisRoleId, ROLE_SELECT.ATTR);
if(!role) return resResult(STATUS.ROLE_NOT_FOUND);
if (!role) return resResult(STATUS.ROLE_NOT_FOUND);
let heroList = await HeroModel.findByHidRange(hids, hisRoleId, HERO_SELECT.HERO_DETAIL, true);
if(heroList.length <= 0) return resResult(STATUS.HERO_NOT_FIND);
if (heroList.length <= 0) return resResult(STATUS.HERO_NOT_FIND);
let list = new Array();
for(let {roleId, roleName, hid, hName, ce, lv, star, colorStar, quality, job, skins, attr: heroAttrs} of heroList) {
for (let { roleId, roleName, hid, hName, ce, lv, star, colorStar, quality, job, skins, attr: heroAttrs } of heroList) {
let curSkin = skins.find(cur => cur.enable);
let equips = await EquipModel.findListByHidAndRole(hisRoleId, hid, EQUIP_SELECT.HERO_DETAIL);
let attributes = getPlayerMainAttribute(heroAttrs, role.attr);
list.push({
roleId, roleName, hid, hName, ce, lv, star, colorStar, quality, job,
skin: curSkin?curSkin.id: 0, equips, attributes
skin: curSkin ? curSkin.id : 0, equips, attributes
});
}
@@ -27,7 +27,7 @@ export class HeroHandler {
public async test(msg: {}, session: BackendSession) {
let heroes = [...gameData.hero];
return resResult(STATUS.SUCCESS, {heroes})
return resResult(STATUS.SUCCESS, { heroes })
}
// ! 测试接口,用来测试前清理并初始化某个武将;代码抄自:gm-server/app/service/users.ts deleteHero
@@ -186,6 +186,7 @@ export class HeroHandler {
// 武将升星
public async starUp(msg: { hid: number, star: number, starStage: number }, session: BackendSession) {
let roleId: string = session.get('roleId');
const serverId = session.get('serverId');
let sid: string = session.get('sid');
let funcs: number[] = session.get('funcs');
@@ -226,9 +227,9 @@ export class HeroHandler {
await checkTaskWithHero(roleId, sid, funcs, TASK_TYPE.HERO_STAR_UP, hero);
await checkTaskWithHero(roleId, sid, funcs, TASK_TYPE.HERO_QUALITY_STAR_UP, hero);
//成长任务
await accomplishTask(roleId, TASK_TYPE.HERO_QUALITY_STAR_UP, 1, { quality: dicHero.quality, star: hero.star });
await accomplishTask(serverId, roleId, TASK_TYPE.HERO_QUALITY_STAR_UP, 1, { quality: dicHero.quality, star: hero.star });
if (hero.colorStar) {//觉醒升星
await accomplishTask(roleId, TASK_TYPE.HERO_WAKE_UP_STAR_UP_COUNT, 1, { quality: dicHero.quality, star: hero.star });
await accomplishTask(serverId, roleId, TASK_TYPE.HERO_WAKE_UP_STAR_UP_COUNT, 1, { quality: dicHero.quality, star: hero.star });
}
}
@@ -247,7 +248,7 @@ export class HeroHandler {
let roleId: string = session.get('roleId');
let roleName: string = session.get('roleName');
let sid: string = session.get('sid');
let serverId: string = session.get('serverId');
let serverId: number = session.get('serverId');
let funcs: number[] = session.get('funcs');
let { hid, quality } = msg;
@@ -285,7 +286,7 @@ export class HeroHandler {
// 任务
await checkTaskWithHero(roleId, sid, funcs, TASK_TYPE.HERO_QUALITY_UP, hero);
// 任务
await accomplishTask(roleId, TASK_TYPE.HERO_QUALITY_TO_QUALITY_COUNT, 1, { oldQuality, quality: hero.quality });
await accomplishTask(serverId, roleId, TASK_TYPE.HERO_QUALITY_TO_QUALITY_COUNT, 1, { oldQuality, quality: hero.quality });
const curHero = {
hid,
@@ -301,7 +302,7 @@ export class HeroHandler {
let roleId: string = session.get('roleId');
let sid: string = session.get('sid');
let roleName: string = session.get('roleName');
let serverId: string = session.get('serverId');
const serverId = session.get('serverId');
let funcs: number[] = session.get('funcs');
let { hid, colorStar, colorStarStage } = msg;
@@ -348,7 +349,7 @@ export class HeroHandler {
// 任务
await checkTaskWithHero(roleId, sid, funcs, TASK_TYPE.HERO_STAR_UP, hero);
await checkTask(roleId, sid, funcs, TASK_TYPE.HERO_WAKE_UP, 1, true, {});
await accomplishTask(roleId, TASK_TYPE.HERO_WAKE_UP_COUNT, 1, { quality: hero.quality });
await accomplishTask(serverId, roleId, TASK_TYPE.HERO_WAKE_UP_COUNT, 1, { quality: hero.quality });
}
const curHero = {
hid,
@@ -403,6 +404,7 @@ export class HeroHandler {
async heroJobStageUp(msg: { hid: number }, session: BackendSession) {
console.log(JSON.stringify([...gameData.jobClassMaxGrades]))
let roleId: string = session.get('roleId');
const serverId = session.get('serverId');
let sid: string = session.get('sid');
let funcs: number[] = session.get('funcs');
let { hid } = msg;
@@ -430,7 +432,7 @@ export class HeroHandler {
hero = await calPlayerCeAndSave(HERO_SYSTEM_TYPE.STAGEUP, sid, roleId, hero, update);
// 任务
await checkTaskWithHero(roleId, sid, funcs, TASK_TYPE.HERO_STAGE_UP, hero);
await accomplishTask(roleId, TASK_TYPE.HERO_STAGE_UP, 1, { job: hero.job });
await accomplishTask(serverId, roleId, TASK_TYPE.HERO_STAGE_UP, 1, { job: hero.job });
return resResult(STATUS.SUCCESS, { curHero: { hid: hero.hid, job: hero.job, jobStage: hero.jobStage } });
}
@@ -36,10 +36,10 @@ export class RoleHandler {
let serverId = session.get('serverId');
let sid: string = session.get('sid');
let funcs: number[] = session.get('funcs');
let { roleName } = msg;
let role = await RoleModel.findByRoleId(roleId, 'roleName hasInit', true);
if(role.hasInit) return resResult(STATUS.ROLE_HAS_INIT);
if (role.hasInit) return resResult(STATUS.ROLE_HAS_INIT);
let checkName = await RoleModel.checkName(roleName, serverId);
if (checkName) return resResult(STATUS.NAME_HAS_USED);
@@ -79,6 +79,7 @@ export class RoleHandler {
async roleTitleLevelUp(msg: {}, session: BackendSession) {
let roleId = session.get('roleId');
let sid: string = session.get('sid');
const serverId = session.get('serverId');
let funcs: number[] = session.get('funcs');
let role = await RoleModel.findByRoleId(roleId);
@@ -100,7 +101,7 @@ export class RoleHandler {
// 任务
await checkTask(roleId, sid, funcs, TASK_TYPE.ROLE_TITLE, 1, false, { title });
//成长任务
await accomplishTask(roleId, TASK_TYPE.ROLE_TITLE, update.title)
await accomplishTask(serverId, roleId, TASK_TYPE.ROLE_TITLE, update.title)
return resResult(STATUS.SUCCESS, { roleId, title: role.title });
}
@@ -231,6 +232,7 @@ export class RoleHandler {
let roleId = session.get('roleId');
let sid = session.get('sid');
let funcs: number[] = session.get('funcs');
const serverId = session.get('serverId');
let { schoolId, positionId, hid } = msg;
if (!gameData.school.has(schoolId)) {
@@ -271,7 +273,7 @@ export class RoleHandler {
await checkTaskWithArgs(roleId, sid, funcs, TASK_TYPE.ROLE_SCHOOL_UNLOCK, [hid, preHid]);
if (hid > 0) {
//成长任务
await accomplishTask(roleId, TASK_TYPE.ROLE_SCHOOL_PUT_HERO, 1)
await accomplishTask(serverId, roleId, TASK_TYPE.ROLE_SCHOOL_PUT_HERO, 1)
}
return resResult(STATUS.SUCCESS, {