屏蔽:处理玩家和军团信息接口
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import {Application, RouteRecord, FrontendOrBackendSession, HandlerCallback, pinus} from "pinus";
|
||||
// import { checkEvent } from '../../../services/eventSercive';
|
||||
import { refresh } from '../../../services/refreshService';
|
||||
import { checkPrivateChat, checkGuildChat, checkOtherChat, getWorldChannelSid, checkRoleName, checkGuildName } from "../../../services/chatService";
|
||||
import { checkPrivateChat, checkGuildChat, checkOtherChat, checkRoleName, checkGuildName } from "../../../services/sdkService";
|
||||
import { resResult, checkWhiteListWithUid, genCode } from "../../../pubUtils/util";
|
||||
import { CHANNEL_PREFIX, STATUS } from "../../../consts";
|
||||
import { UserModel } from "../../../db/User";
|
||||
|
||||
@@ -37,6 +37,18 @@ export class ConnectorRemote {
|
||||
}
|
||||
}
|
||||
|
||||
public async setOtherUserRoleNameSession(params: { roleId: string, roleName: string}[]) {
|
||||
let sessionService = this.app.get('sessionService');
|
||||
for(let {roleId, roleName} of params) {
|
||||
let sessions = sessionService.getByUid(roleId);
|
||||
if(!!sessions) {
|
||||
sessions.forEach(session => {
|
||||
sessionService.aimportAll(session.id, { roleName });
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 重载json资源
|
||||
*/
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { Application, ChannelService, HandlerService, } from 'pinus';
|
||||
import { reloadResources } from '../../../pubUtils/data';
|
||||
import { treatGuildName } from '../../../services/sdkService';
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
@@ -21,4 +22,8 @@ export class GuildRemote {
|
||||
public async reloadResources() {
|
||||
reloadResources();
|
||||
}
|
||||
|
||||
public async treatGuildName(content: string) {
|
||||
await treatGuildName(content);
|
||||
}
|
||||
}
|
||||
@@ -10,6 +10,7 @@ import { DEFAULT_HEROES } from '../../../consts';
|
||||
import { Figure } from '../../../domain/dbGeneral';
|
||||
import { getDefaultRoleInfo } from '../../../services/roleService';
|
||||
import { PVPConfigType } from '../../../db/SystemConfig';
|
||||
import { treatRoleName } from '../../../services/sdkService';
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
return new RoleRemote(app);
|
||||
@@ -116,4 +117,8 @@ export class RoleRemote {
|
||||
this.app.set('pvpSeasonEndTime', pvpConfig.seasonEndTime);
|
||||
}
|
||||
}
|
||||
|
||||
public async treatRoleName(roleId: string) {
|
||||
await treatRoleName(roleId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { CHAT_SYSTEM } from './../pubUtils/dicParam';
|
||||
import { PrivateChatRec } from './../db/ChatInfo';
|
||||
import { RoleModel, RoleType } from './../db/Role';
|
||||
import { RoleModel } from './../db/Role';
|
||||
import { GroupMessageModel } from './../db/GroupMessage';
|
||||
import { CounterModel } from './../db/Counter';
|
||||
import { STATUS } from './../consts/statusCode';
|
||||
@@ -8,16 +8,12 @@ import { PrivateMessageModel, PrivateMessageParam, PrivateMessageType } from './
|
||||
import { GroupMessageParam, GroupMessageType } from '../db/GroupMessage';
|
||||
import { genCode, resResult } from '../pubUtils/util';
|
||||
import { pinus } from 'pinus';
|
||||
import { CHANNEL_PREFIX, MSG_CODE_LEN, MSG_STATUS, ON_PRIVATE_MSG_ROUTE, MSG_TYPE, MSG_SOURCE, getSdkChannelId, SDK_37_CONST, SDK_37_ADDR } from '../consts';
|
||||
import { CHANNEL_PREFIX, MSG_CODE_LEN, MSG_STATUS, ON_PRIVATE_MSG_ROUTE, MSG_TYPE, MSG_SOURCE } from '../consts';
|
||||
import { getAllServers, getRoleOnlineInfo } from './redisService';
|
||||
import { ChatInfoModel } from '../db/ChatInfo';
|
||||
import { channelServer } from './chatChannelService';
|
||||
import { AccuseRecModel, AccueseParam } from '../db/AccuseRec';
|
||||
import { getSimpleRoleInfo, getSimpleRoleInfos } from './roleService';
|
||||
import * as FCClient from '@alicloud/fc2';
|
||||
import { Chat37Params, CheckGuild37Params, CheckName37Params } from '../domain/sdk';
|
||||
import { UserModel } from '../db/User';
|
||||
import { request37CheckChat, request37Post } from '../pubUtils/httpUtil';
|
||||
|
||||
export * from './chatChannelService';
|
||||
export * from './sysChatService';
|
||||
@@ -405,65 +401,6 @@ export async function checkFilterWords(word: string) {
|
||||
}
|
||||
*/
|
||||
|
||||
export async function checkPrivateChat(roleId: string, targetRoleId: string, message: string) {
|
||||
let body = new Chat37Params(message, getSdkChannelId('private'));
|
||||
let myRole = await RoleModel.findByRoleId(roleId);
|
||||
let myUser = await UserModel.findUserByUid(myRole.userInfo.uid);
|
||||
if(myUser.channelType == '37') {
|
||||
body.setByMyRole(myRole, myUser);
|
||||
let targetRole = await RoleModel.findByRoleId(targetRoleId);
|
||||
let targetUser = await UserModel.findUserByUid(targetRole.userInfo.uid);
|
||||
body.setByTargetRole(targetRole, targetUser);
|
||||
return await request37CheckChat(SDK_37_ADDR.CHECK_CHAT, body, SDK_37_CONST.CHAT_KEY);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
export async function checkGuildChat(roleId: string, guildCode: string, message: string) {
|
||||
let body = new Chat37Params(message, getSdkChannelId(CHANNEL_PREFIX.GUILD));
|
||||
let myRole = await RoleModel.findByRoleId(roleId);
|
||||
let myUser = await UserModel.findUserByUid(myRole.userInfo.uid);
|
||||
if(myUser.channelType == '37') {
|
||||
body.setByMyRole(myRole, myUser);
|
||||
body.setByGuild(guildCode);
|
||||
return await request37CheckChat(SDK_37_ADDR.CHECK_CHAT, body, SDK_37_CONST.CHAT_KEY);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
export async function checkOtherChat(roleId: string, channelPrefix: string, message: string) {
|
||||
let body = new Chat37Params(message, getSdkChannelId(channelPrefix));
|
||||
let myRole = await RoleModel.findByRoleId(roleId);
|
||||
let myUser = await UserModel.findUserByUid(myRole.userInfo.uid);
|
||||
if(myUser.channelType == '37') {
|
||||
body.setByMyRole(myRole, myUser);
|
||||
return await request37CheckChat(SDK_37_ADDR.CHECK_CHAT, body, SDK_37_CONST.CHAT_KEY);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
export async function checkRoleName(roleId: string, roleName: string) {
|
||||
let myRole = await RoleModel.findByRoleId(roleId);
|
||||
let myUser = await UserModel.findUserByUid(myRole.userInfo.uid);
|
||||
let body = new CheckName37Params(myRole, roleName, myUser);
|
||||
if(myUser.channelType == '37') {
|
||||
return await request37Post(SDK_37_ADDR.CHECK_NAME, body, SDK_37_CONST.CHAT_KEY);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
export async function checkGuildName(guildCode: string, serverId: number, name: string, notice: string) {
|
||||
let nameResult = true, noticeResult = true;
|
||||
if(name) {
|
||||
let body = new CheckGuild37Params(guildCode, serverId, 1, name);
|
||||
nameResult = await request37Post(SDK_37_ADDR.CHECK_UNION, body, SDK_37_CONST.CHAT_KEY);
|
||||
}
|
||||
if(notice) {
|
||||
let body = new CheckGuild37Params(guildCode, serverId, 2, notice);
|
||||
noticeResult = await request37Post(SDK_37_ADDR.CHECK_UNION, body, SDK_37_CONST.CHAT_KEY);
|
||||
}
|
||||
return nameResult && noticeResult
|
||||
}
|
||||
|
||||
export async function pushCurrentTime(time: number) {
|
||||
let serverlists = await getAllServers()
|
||||
|
||||
@@ -485,13 +485,22 @@ export async function redisSubScribe() {
|
||||
let env = pinus.app.get('env');
|
||||
if(env == 'development') env = 'local'; // 本地处理
|
||||
let payChannel = getRedisSubChannel(REDIS_KEY.PAY_CHANNEL, env);
|
||||
console.log('*****', payChannel)
|
||||
await redisClientPub().subscribeAsync(payChannel);
|
||||
let treatRoleChannel = getRedisSubChannel(REDIS_KEY.TREAT_ROLE_CHANNEL, env);
|
||||
let treatGuildChannel = getRedisSubChannel(REDIS_KEY.TREAT_GUILD_CHANNEL, env);
|
||||
await redisClientPub().subscribeAsync(payChannel, treatRoleChannel, treatGuildChannel);
|
||||
redisClientPub().on('message', (channel, message) => {
|
||||
if(channel == payChannel) {
|
||||
let orders = pinus.app.getServersByType('order');
|
||||
let server = getRandSingleEelm(orders);
|
||||
let servers = pinus.app.getServersByType('order');
|
||||
let server = getRandSingleEelm(servers);
|
||||
pinus.app.rpc.order.orderRemote.settleOrderFromRedisPub.toServer(server.id, message);
|
||||
} else if (channel == treatRoleChannel) {
|
||||
let servers = pinus.app.getServersByType('role');
|
||||
let server = getRandSingleEelm(servers);
|
||||
pinus.app.rpc.role.roleRemote.treatRoleName.toServer(server.id, message);
|
||||
} else if (channel == treatGuildChannel) {
|
||||
let servers = pinus.app.getServersByType('guild');
|
||||
let server = getRandSingleEelm(servers);
|
||||
pinus.app.rpc.guild.guildRemote.treatGuildName.toServer(server.id, message);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
import { ChannelUser } from './../domain/ChannelUser';
|
||||
import { Channel, pinus } from 'pinus';
|
||||
import { getRandValueByMinMax, getRandEelm, decodeIdCntArrayStr } from '../pubUtils/util';
|
||||
import { DEFAULT_HEROES, TERAPH_RANDOM } from "../consts";
|
||||
import { DEFAULT_HEROES, ROLE_SELECT, TERAPH_RANDOM } from "../consts";
|
||||
import { DicTeraph } from '../pubUtils/dictionary/DicTeraph';
|
||||
import { Teraph, RoleModel, RoleType, RoleUpdate } from '../db/Role';
|
||||
import { ROLE_SELECT } from '../consts';
|
||||
import { SCHOOL } from '../pubUtils/dicParam';
|
||||
import { gameData } from '../pubUtils/data';
|
||||
import { SchoolModel } from '../db/School';
|
||||
|
||||
@@ -0,0 +1,133 @@
|
||||
/********** 37sdk **********/
|
||||
|
||||
import { RoleModel, RoleType } from "../db/Role";
|
||||
import { Chat37Params, CheckGuild37Params, CheckName37Params } from "../domain/sdk";
|
||||
import { sendMailByContent, sendMailToGuildByContent } from './mailService';
|
||||
import { getGoldObject } from '../pubUtils/itemUtils';
|
||||
import { NAMEPLATE } from '../pubUtils/dicParam';
|
||||
import { CHANNEL_PREFIX, getSdkChannelId, MAIL_TYPE, REDIS_KEY, SDK_37_ADDR, SDK_37_CONST } from "../consts";
|
||||
import { UserModel } from "../db/User";
|
||||
import { request37CheckChat, request37Post } from "../pubUtils/httpUtil";
|
||||
import { GuildModel } from "../db/Guild";
|
||||
import { getRoleOnlineInfo, updateUserInfo } from "./redisService";
|
||||
import { pinus } from "pinus";
|
||||
import { getGuildChannelSid } from "./chatService";
|
||||
|
||||
// 检查私聊是否合法
|
||||
|
||||
export async function checkPrivateChat(roleId: string, targetRoleId: string, message: string) {
|
||||
let body = new Chat37Params(message, getSdkChannelId('private'));
|
||||
let myRole = await RoleModel.findByRoleId(roleId);
|
||||
let myUser = await UserModel.findUserByUid(myRole.userInfo.uid);
|
||||
if(myUser.channelType == '37') {
|
||||
body.setByMyRole(myRole, myUser);
|
||||
let targetRole = await RoleModel.findByRoleId(targetRoleId);
|
||||
let targetUser = await UserModel.findUserByUid(targetRole.userInfo.uid);
|
||||
body.setByTargetRole(targetRole, targetUser);
|
||||
return await request37CheckChat(SDK_37_ADDR.CHECK_CHAT, body, SDK_37_CONST.CHAT_KEY);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
export async function checkGuildChat(roleId: string, guildCode: string, message: string) {
|
||||
let body = new Chat37Params(message, getSdkChannelId(CHANNEL_PREFIX.GUILD));
|
||||
let myRole = await RoleModel.findByRoleId(roleId);
|
||||
let myUser = await UserModel.findUserByUid(myRole.userInfo.uid);
|
||||
if(myUser.channelType == '37') {
|
||||
body.setByMyRole(myRole, myUser);
|
||||
body.setByGuild(guildCode);
|
||||
return await request37CheckChat(SDK_37_ADDR.CHECK_CHAT, body, SDK_37_CONST.CHAT_KEY);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
export async function checkOtherChat(roleId: string, channelPrefix: string, message: string) {
|
||||
let body = new Chat37Params(message, getSdkChannelId(channelPrefix));
|
||||
let myRole = await RoleModel.findByRoleId(roleId);
|
||||
let myUser = await UserModel.findUserByUid(myRole.userInfo.uid);
|
||||
if(myUser.channelType == '37') {
|
||||
body.setByMyRole(myRole, myUser);
|
||||
return await request37CheckChat(SDK_37_ADDR.CHECK_CHAT, body, SDK_37_CONST.CHAT_KEY);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
export async function checkRoleName(roleId: string, roleName: string, myRole?: RoleType) {
|
||||
if(!myRole) {
|
||||
myRole = await RoleModel.findByRoleId(roleId);
|
||||
}
|
||||
let myUser = await UserModel.findUserByUid(myRole.userInfo.uid);
|
||||
let body = new CheckName37Params(myRole, roleName, myUser);
|
||||
if(myUser.channelType == '37') {
|
||||
return await request37Post(SDK_37_ADDR.CHECK_NAME, body, SDK_37_CONST.CHAT_KEY);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
export async function checkGuildName(guildCode: string, serverId: number, name: string, notice: string) {
|
||||
let nameResult = true, noticeResult = true;
|
||||
if(name != undefined) {
|
||||
let body = new CheckGuild37Params(guildCode, serverId, 1, name);
|
||||
nameResult = await request37Post(SDK_37_ADDR.CHECK_UNION, body, SDK_37_CONST.CHAT_KEY);
|
||||
}
|
||||
if(notice != undefined) {
|
||||
let body = new CheckGuild37Params(guildCode, serverId, 2, notice);
|
||||
noticeResult = await request37Post(SDK_37_ADDR.CHECK_UNION, body, SDK_37_CONST.CHAT_KEY);
|
||||
}
|
||||
return nameResult && noticeResult
|
||||
}
|
||||
|
||||
|
||||
// 根据37sdk处理违规玩家名
|
||||
export async function treatRoleName(roleId: string) {
|
||||
let role = await RoleModel.findByRoleId(roleId);
|
||||
if(role && role.sdkMark) { // 有设置标记的情况下
|
||||
let newName = roleId;
|
||||
// 新名字上传
|
||||
await checkRoleName(roleId, newName, role);
|
||||
// 改名字
|
||||
await RoleModel.updateRoleInfo(roleId, { roleName: newName, sdkMark: false });
|
||||
// 通知处理
|
||||
await updateUserInfo(REDIS_KEY.USER_INFO, roleId, [{ field: 'roleName', value: newName }]); // redis缓存
|
||||
const { sid } = await getRoleOnlineInfo(roleId);
|
||||
if(!!sid) {
|
||||
await pinus.app.rpc.connector.connectorRemote.setOtherUserRoleNameSession.toServer(sid,[{ roleId, roleName: newName }]); // 改session
|
||||
}
|
||||
// 补偿
|
||||
let gold = getGoldObject(NAMEPLATE.NAMEPLATE_FEECOST)
|
||||
await sendMailByContent(MAIL_TYPE.TREAT_ROLE_NAME, role.roleId, { goods: [gold] });
|
||||
}
|
||||
}
|
||||
|
||||
// 根据37sdk处理违规军团数据
|
||||
export async function treatGuildName(content: string) {
|
||||
let params: { code: string, serverId: number, type: number };
|
||||
try {
|
||||
params = JSON.parse(content);
|
||||
} catch(e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
let guild = await GuildModel.findByCode(params.code, params.serverId);
|
||||
if(guild && guild.sdkMark) { // 有设置标记的情况下
|
||||
if(params.type == 1) { // 公会名
|
||||
let newName = guild.code;
|
||||
// 新名字上传
|
||||
await checkGuildName(params.code, params.serverId, newName, undefined);
|
||||
await GuildModel.updateInfo(params.code, { name: newName, sdkMark: false });
|
||||
// 通知处理
|
||||
await sendMailToGuildByContent(MAIL_TYPE.TREAT_GUILD_INFO, params.code, {}); // 邮件
|
||||
let chatSid = await getGuildChannelSid(params.code);
|
||||
pinus.app.rpc.chat.guildRemote.updateInfo.toServer(chatSid, params.code, { name: newName }); // 军团推送
|
||||
await updateUserInfo(REDIS_KEY.GUILD_INFO, params.code, [{ field: 'name', value: newName }]); // redis缓存信息
|
||||
|
||||
} else if (params.type == 2) { // 公会公告
|
||||
await checkGuildName(params.code, params.serverId, undefined, '');
|
||||
await GuildModel.updateInfo(params.code, { notice: '', sdkMark: false });
|
||||
// 通知处理
|
||||
await sendMailToGuildByContent(MAIL_TYPE.TREAT_GUILD_INFO, params.code, {}); // 邮件
|
||||
let chatSid = await getGuildChannelSid(params.code);
|
||||
pinus.app.rpc.chat.guildRemote.updateInfo.toServer(chatSid, params.code, { notice: '' }); // 军团推送
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user