寻宝:一键邀请发送世界消息和测试
This commit is contained in:
@@ -21,7 +21,7 @@ import { setAp } from '../../../services/actionPointService';
|
|||||||
import { roleLevelup } from '../../../services/normalBattleService';
|
import { roleLevelup } from '../../../services/normalBattleService';
|
||||||
import { addUserToChannel } from '../../../services/roleService';
|
import { addUserToChannel } from '../../../services/roleService';
|
||||||
import { ChannelUser } from '../../../domain/ChannelUser';
|
import { ChannelUser } from '../../../domain/ChannelUser';
|
||||||
import { pushComBtlTeamMsg, pushNormalEquipMsg } from '../../../services/chatService';
|
import { pushComBtlTeamMsg, pushNormalEquipMsg, pushTeamInviteMsg } from '../../../services/chatService';
|
||||||
|
|
||||||
export default function(app: Application) {
|
export default function(app: Application) {
|
||||||
return new ComBattleHandler(app);
|
return new ComBattleHandler(app);
|
||||||
@@ -656,13 +656,29 @@ export class ComBattleHandler {
|
|||||||
let roleName = session.get('roleName');
|
let roleName = session.get('roleName');
|
||||||
|
|
||||||
const { teamCode, type, content, targetRoleId, targetMsgCode } = msg;
|
const { teamCode, type, content, targetRoleId, targetMsgCode } = msg;
|
||||||
const result = await pushComBtlTeamMsg(teamCode, roleId, roleName, type, MSG_SOURCE.TEAM, content, targetRoleId, targetMsgCode);
|
const result = await pushComBtlTeamMsg(teamCode, roleId, roleName, type, MSG_SOURCE.TEAM_ROLE, content, targetRoleId, targetMsgCode);
|
||||||
if (!result) {
|
if (!result) {
|
||||||
return resResult(STATUS.WRONG_PARMS);
|
return resResult(STATUS.WRONG_PARMS);
|
||||||
}
|
}
|
||||||
return resResult(STATUS.SUCCESS);
|
return resResult(STATUS.SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description 一键邀请,自动在世界频道发送消息
|
||||||
|
* @param {{ teamCode: string }} msg
|
||||||
|
* @param {BackendSession} session
|
||||||
|
* @memberof ComBattleHandler
|
||||||
|
*/
|
||||||
|
async autoInvite(msg: { teamCode: string }, session: BackendSession) {
|
||||||
|
let roleId = session.get('roleId');
|
||||||
|
let roleName = session.get('roleName');
|
||||||
|
let serverId = session.get('serverId');
|
||||||
|
const { teamCode } = msg;
|
||||||
|
const msgData = await pushTeamInviteMsg(roleId, roleName, serverId, teamCode);
|
||||||
|
if (!msgData) return resResult(STATUS.WRONG_PARMS);
|
||||||
|
return resResult(STATUS.SUCCESS);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description 藏宝图合成
|
* @description 藏宝图合成
|
||||||
* @param {{original: Array<{id: number, count: number}>}} msg
|
* @param {{original: Array<{id: number, count: number}>}} msg
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import { PrivateMessageModel, PrivateMessageParam, PrivateMessageType } from './
|
|||||||
import { GroupMessageParam, GroupMessageType } from '../db/GroupMessage';
|
import { GroupMessageParam, GroupMessageType } from '../db/GroupMessage';
|
||||||
import { genCode, resResult } from '../pubUtils/util';
|
import { genCode, resResult } from '../pubUtils/util';
|
||||||
import { pinus } from 'pinus';
|
import { pinus } from 'pinus';
|
||||||
import { CHANNEL_PREFIX, MSG_CODE_LEN, MSG_STATUS, ON_MSG_ROUTE, RECENT_PRIVATE_CHATS_CNT, RECENT_GROUP_MSGS_CNT } from '../consts';
|
import { CHANNEL_PREFIX, MSG_CODE_LEN, MSG_STATUS, ON_MSG_ROUTE, RECENT_PRIVATE_CHATS_CNT, RECENT_GROUP_MSGS_CNT, MSG_TYPE, MSG_SOURCE } from '../consts';
|
||||||
import { getRoleOnlineInfo } from './redisService';
|
import { getRoleOnlineInfo } from './redisService';
|
||||||
import { ChatInfoModel } from '../db/ChatInfo';
|
import { ChatInfoModel } from '../db/ChatInfo';
|
||||||
import { channelServer } from './chatChannelService';
|
import { channelServer } from './chatChannelService';
|
||||||
@@ -285,3 +285,13 @@ export async function updatePrivateMsgReadInfo(roleId: string, targetRoleId: str
|
|||||||
const chatRec = chatInfo.recentPrivateChats.find(rec => { return rec.targetRoleId === targetRoleId });
|
const chatRec = chatInfo.recentPrivateChats.find(rec => { return rec.targetRoleId === targetRoleId });
|
||||||
return chatRec;
|
return chatRec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description 发送组队一键邀请消息
|
||||||
|
* @param {string} teamCode 队伍唯一标识
|
||||||
|
*/
|
||||||
|
export async function pushTeamInviteMsg(roleId: string, roleName: string, serverId: number, teamCode: string) {
|
||||||
|
const msgData = await createGroupMsg(roleId, roleName, CHANNEL_PREFIX.WORLD, `${serverId}`, MSG_TYPE.RICH_TEXT, MSG_SOURCE.TEAM_INVITE, teamCode, null, null);
|
||||||
|
await pushGroupMsgToRoom(msgData);
|
||||||
|
return msgData;
|
||||||
|
}
|
||||||
|
|||||||
@@ -154,6 +154,41 @@ describe('寻宝创建队伍', function() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('一键邀请消息发送', function(done) {
|
||||||
|
let msgReceiveCnt = 0;
|
||||||
|
let teamCode = '';
|
||||||
|
function checkInviteRes(res) {
|
||||||
|
checkSuccessResponse(res);
|
||||||
|
expect(res.data.content).to.be.equal(teamCode);
|
||||||
|
msgReceiveCnt += 1;
|
||||||
|
}
|
||||||
|
pinusClientT.on(ON_GROUP_MSG_ROUTE, (res) => {
|
||||||
|
checkInviteRes(res);
|
||||||
|
});
|
||||||
|
pinusClient.on(ON_GROUP_MSG_ROUTE, (res) => {
|
||||||
|
checkInviteRes(res);
|
||||||
|
});
|
||||||
|
pinusClient.request('battle.comBattleHandler.createTeam', createTeamParms, (res) => {
|
||||||
|
checkSuccessResponse(res);
|
||||||
|
teamCode = res.data.teamCode;
|
||||||
|
expect(teamCode).to.be.a('string');
|
||||||
|
expect(res.data.roleStatus).to.be.an('array');
|
||||||
|
res.data.roleStatus.forEach(roleSt => {
|
||||||
|
expect(roleSt).to.have.all.keys('roleId', 'roleName', 'isCap', 'isFrd', 'headHid', 'sHid', 'topLineupCe', 'lv', 'isRobot', 'heroes', 'killed', 'totalDmg', 'frdRatio');
|
||||||
|
});
|
||||||
|
pinusClient.request('battle.comBattleHandler.autoInvite', {teamCode}, (inviteRes) => {
|
||||||
|
checkSuccessResponse(inviteRes, false);
|
||||||
|
setTimeout(() => {
|
||||||
|
expect(msgReceiveCnt).to.be.equal(2);
|
||||||
|
pinusClient.request('battle.comBattleHandler.dismiss', {teamCode}, (dismissRes) => {
|
||||||
|
checkSuccessResponse(dismissRes, false);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
}, 500);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
it('搜索队伍再取消', function(done) {
|
it('搜索队伍再取消', function(done) {
|
||||||
pinusClient.request('battle.comBattleHandler.searchTeam', searchTeamParms, (res) => {
|
pinusClient.request('battle.comBattleHandler.searchTeam', searchTeamParms, (res) => {
|
||||||
checkSuccessResponse(res, false);
|
checkSuccessResponse(res, false);
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ export const CHANNEL_PREFIX = {
|
|||||||
export const MSG_SOURCE = {
|
export const MSG_SOURCE = {
|
||||||
ROLE_SEND_TEXT: 0,
|
ROLE_SEND_TEXT: 0,
|
||||||
PRIVATE_SEND_GIFT: 1,
|
PRIVATE_SEND_GIFT: 1,
|
||||||
TEAM: 2,
|
TEAM_ROLE: 2,
|
||||||
HERO_QUALITY_UP: 3,
|
HERO_QUALITY_UP: 3,
|
||||||
COMPOSE_ORANGE_HERO: 4,
|
COMPOSE_ORANGE_HERO: 4,
|
||||||
HERO_STAR_MAX: 5,
|
HERO_STAR_MAX: 5,
|
||||||
@@ -42,6 +42,7 @@ export const MSG_SOURCE = {
|
|||||||
TOWER_SUC: 15,
|
TOWER_SUC: 15,
|
||||||
MYSTERY_FIRST_SUC: 16,
|
MYSTERY_FIRST_SUC: 16,
|
||||||
VESTIGE_FIRST_SUC: 17,
|
VESTIGE_FIRST_SUC: 17,
|
||||||
|
TEAM_INVITE: 18,
|
||||||
}
|
}
|
||||||
|
|
||||||
export const ON_MSG_ROUTE = 'onMessage';
|
export const ON_MSG_ROUTE = 'onMessage';
|
||||||
|
|||||||
Reference in New Issue
Block a user