屏蔽:处理玩家和军团信息接口
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';
|
||||
|
||||
133
game-server/app/services/sdkService.ts
Normal file
133
game-server/app/services/sdkService.ts
Normal file
@@ -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: '' }); // 军团推送
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -39,6 +39,8 @@ export enum MAIL_TYPE {
|
||||
EQUIP_OVER = 18, // 装备超数量
|
||||
TOWER_TASK_REWARD = 19, // 镇念塔派遣过期奖励
|
||||
MONTHLY_REWARD = 20, // 月卡奖品
|
||||
TREAT_ROLE_NAME = 21, // 月卡奖品
|
||||
TREAT_GUILD_INFO = 22, // 月卡奖品
|
||||
};
|
||||
|
||||
export const SEND_NAME = '系统';
|
||||
@@ -232,6 +232,8 @@ export enum REDIS_KEY {
|
||||
SHOW_LINEUP ="showLineup", // 展示阵容
|
||||
SYS_SERVER ='sysServer', // 全服connector服
|
||||
PAY_CHANNEL = 'pay', // 支付订阅频道
|
||||
TREAT_ROLE_CHANNEL = 'treatRole', // 处理玩家账号名频道
|
||||
TREAT_GUILD_CHANNEL = 'treatGuild', // 处理公会账号名频道
|
||||
}
|
||||
|
||||
// 各排行榜对应hash的key
|
||||
|
||||
@@ -111,6 +111,9 @@ export default class Guild extends BaseModel {
|
||||
@prop({ required: true, default: 0 })
|
||||
openBossCnt: number; // 开启boss本次数
|
||||
|
||||
@prop({ required: true })
|
||||
sdkMark: boolean; // 37sdk标记有问题
|
||||
|
||||
public static async createGuild(params: { guildCode: string, name: string, icon: number, notice: string }, role: RoleType, serverId: number) {
|
||||
const doc = new GuildModel();
|
||||
const update = Object.assign(doc.toJSON(), params, { leader: role._id, members: [role.roleId], guildCe: role.ce, serverId, lvUpdateTime: nowSeconds() });
|
||||
@@ -269,6 +272,11 @@ export default class Guild extends BaseModel {
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async findByCodeAndSetMark(code: string, serverId: number, select?: string, getters = false) {
|
||||
const role: RoleType = await GuildModel.findOneAndUpdate({ code, serverId }, { $set: { sdkMark: true } }, { new: true }).select(select).lean({ getters, virtuals: true });
|
||||
return role;
|
||||
}
|
||||
}
|
||||
|
||||
export const GuildModel = getModelForClass(Guild);
|
||||
|
||||
@@ -326,6 +326,9 @@ export default class Role extends BaseModel {
|
||||
@prop({ required: true })
|
||||
renameCnt: number; // 改名次数
|
||||
|
||||
@prop({ required: true })
|
||||
sdkMark: boolean; // 37sdk标记有问题
|
||||
|
||||
public static async findAllByUid(uid: number, getters = false, virtuals = true) {
|
||||
const role: RoleType[] = await RoleModel.find({ 'userInfo.uid': uid }).select('roleId roleName serverId head frame spine heads frames spines lv updatedAt').lean({ getters, virtuals });
|
||||
return role;
|
||||
@@ -727,6 +730,12 @@ export default class Role extends BaseModel {
|
||||
.sort({ updatedAt: -1 }).limit(100).lean({ getters: true, virtuals: true });
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async findByUidAndSetMark(uid: number, serverId: number, select?: string, getters = false) {
|
||||
const role: RoleType = await RoleModel.findOneAndUpdate({ 'userInfo.uid': uid, serverId }, { $set: { sdkMark: true } }, { new: true }).select(select).lean({ getters, virtuals: true });
|
||||
return role;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export const RoleModel = getModelForClass(Role);
|
||||
|
||||
@@ -112,8 +112,8 @@ export class Chat37Params {
|
||||
to_username: number|string = ''; // 对方channelInfo.uid
|
||||
to_actor: string = ''; // 对方roleName
|
||||
to_actor_id: string = ''; // 对方roleId
|
||||
to_actor_level: number; // 对方等级
|
||||
to_actor_recharge_gold: number; // 对方元宝
|
||||
to_actor_level: number|string = ''; // 对方等级
|
||||
to_actor_recharge_gold: number|string = ''; // 对方元宝
|
||||
|
||||
constructor(content: string, channel: number) {
|
||||
this.game_key = SDK_37_CONST.GAME_KEY;
|
||||
|
||||
@@ -50,10 +50,14 @@ export async function httpRequestForm(url: string, method: string, form: any, ti
|
||||
headers: {
|
||||
'content-type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
form,
|
||||
timeout,
|
||||
JSON: true
|
||||
}
|
||||
if(method == HTTP_METHOD.GET) {
|
||||
options['qs'] = form;
|
||||
} else if (method == HTTP_METHOD.POST) {
|
||||
options['form'] = form;
|
||||
}
|
||||
|
||||
try {
|
||||
let res = await request(options);
|
||||
|
||||
@@ -103,5 +103,15 @@
|
||||
"id": 20,
|
||||
"content": "亲爱的小将军,以下是您未领取的【月卡】每日奖励,请查收",
|
||||
"time": 24
|
||||
},
|
||||
{
|
||||
"id": 21,
|
||||
"content": "修改账号名",
|
||||
"time": 24
|
||||
},
|
||||
{
|
||||
"id": 22,
|
||||
"content": "修改公会名或公会公告",
|
||||
"time": 24
|
||||
}
|
||||
]
|
||||
@@ -12,14 +12,14 @@ export default class SdkController extends Controller {
|
||||
|
||||
public async treatRoleName() {
|
||||
const { ctx } = this;
|
||||
const params = new RoleNameCallBackParam(ctx.request.body);
|
||||
const params = new RoleNameCallBackParam(ctx.query);
|
||||
ctx.body = await ctx.service.sdk.treatRoleName(params);
|
||||
return;
|
||||
}
|
||||
|
||||
public async treatGuildName() {
|
||||
const { ctx } = this;
|
||||
const params = new GuildNameCallBackParam(ctx.request.body);
|
||||
const params = new GuildNameCallBackParam(ctx.query);
|
||||
ctx.body = await ctx.service.sdk.treatGuildName(params);
|
||||
return;
|
||||
|
||||
@@ -28,7 +28,7 @@ export default class SdkController extends Controller {
|
||||
public async getGuildByUser() {
|
||||
const { ctx } = this;
|
||||
|
||||
const params = new GetGuildInfoByUserParam(ctx.request.body);
|
||||
const params = new GetGuildInfoByUserParam(ctx.query);
|
||||
ctx.body = await ctx.service.sdk.getGuildByUser(params);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -66,9 +66,7 @@ export default class Sdk extends Service {
|
||||
|
||||
let redisClient: RedisClient = app.context.redisClient;
|
||||
let name = getRedisSubChannel(REDIS_KEY.PAY_CHANNEL, app.config.env);
|
||||
console.log('**** channelname', name)
|
||||
let result = await redisClient.publishAsync(name, JSON.stringify(params));
|
||||
console.log('**** result', result);
|
||||
if(result == 0) {
|
||||
return ctx.service.utils.resResult(PAY_37_CALLBACK_CODE.SERVER_IS_BUSY, '');
|
||||
}
|
||||
@@ -90,6 +88,7 @@ export default class Sdk extends Service {
|
||||
if(!params.checkParams()) return SDK_37_TREAT_CODE.WRONG_PARAMS;
|
||||
|
||||
if(params.game_key != SDK_37_CONST.GAME_KEY) {
|
||||
console.error('用户名或军团名违规处理, gamekey错误', params.game_key);
|
||||
return SDK_37_TREAT_CODE.ERR;
|
||||
}
|
||||
|
||||
@@ -101,6 +100,7 @@ export default class Sdk extends Service {
|
||||
}
|
||||
|
||||
if(gameData.whiteip.indexOf(ip) == -1) {
|
||||
console.error('用户名或军团名违规处理, ip限制', ip);
|
||||
return SDK_37_TREAT_CODE.ERR;
|
||||
}
|
||||
return SDK_37_TREAT_CODE.SUCCESS
|
||||
@@ -108,17 +108,63 @@ export default class Sdk extends Service {
|
||||
|
||||
// 用户名违规处理
|
||||
public async treatRoleName(params: RoleNameCallBackParam) {
|
||||
const { ctx } = this;
|
||||
const { app } = ctx;
|
||||
let check = this.treatRoleOrGuildNameValidate(params);
|
||||
if(check.code != SDK_37_TREAT_CODE.SUCCESS.code) return check.code;
|
||||
|
||||
// 1. 标记这个玩家违规
|
||||
let channelId = getChannelId('37', params.username);
|
||||
console.log(channelId);
|
||||
let user = await UserModel.findUserByChannel(channelId);
|
||||
if(!user) {
|
||||
console.error('用户名违规处理, 未找到玩家账号', channelId);
|
||||
return SDK_37_TREAT_CODE.ERR.code;
|
||||
}
|
||||
|
||||
let role = await RoleModel.findByUidAndSetMark(user.uid, params.sid);
|
||||
if(!role) {
|
||||
console.error('用户名违规处理, 未找到玩家角色', user.uid, params.sid);
|
||||
return SDK_37_TREAT_CODE.ERR.code;
|
||||
}
|
||||
|
||||
if(params.actor != role.roleName || params.actor_id != role.roleId) {
|
||||
console.error('用户名违规处理, roleName或roleId对不上', params.actor, role.roleName, params.actor_id, role.roleId);
|
||||
return SDK_37_TREAT_CODE.ERR.code;
|
||||
}
|
||||
|
||||
// 2. redis发布
|
||||
let redisClient: RedisClient = app.context.redisClient;
|
||||
let name = getRedisSubChannel(REDIS_KEY.TREAT_ROLE_CHANNEL, app.config.env);
|
||||
let result = await redisClient.publishAsync(name, role.roleId);
|
||||
if(result == 0) {
|
||||
console.error('用户名违规处理, 未发布到订阅频道');
|
||||
return SDK_37_TREAT_CODE.ERR.code;
|
||||
}
|
||||
|
||||
return check.code
|
||||
}
|
||||
|
||||
// 公会信息违规处理
|
||||
public async treatGuildName(params: GuildNameCallBackParam) {
|
||||
const { ctx } = this;
|
||||
const { app } = ctx;
|
||||
let check = this.treatRoleOrGuildNameValidate(params);
|
||||
if(check.code != SDK_37_TREAT_CODE.SUCCESS.code) return check.code;
|
||||
|
||||
// 1. 标记军团违规
|
||||
let guild = await GuildModel.findByCodeAndSetMark(params.guildid, params.sid);
|
||||
if(!guild) return SDK_37_TREAT_CODE.ERR.code;
|
||||
|
||||
// 2. redis发布
|
||||
let redisClient: RedisClient = app.context.redisClient;
|
||||
let name = getRedisSubChannel(REDIS_KEY.TREAT_GUILD_CHANNEL, app.config.env);
|
||||
let content = JSON.stringify({ code: guild.code, serverId: params.sid, type: params.type });
|
||||
let result = await redisClient.publishAsync(name, content);
|
||||
if(result == 0) {
|
||||
return SDK_37_TREAT_CODE.ERR.code;
|
||||
}
|
||||
|
||||
return check.code
|
||||
}
|
||||
|
||||
@@ -128,7 +174,6 @@ export default class Sdk extends Service {
|
||||
if(check.code != SDK_37_TREAT_CODE.SUCCESS.code) return resResult(check);
|
||||
|
||||
let channelId = getChannelId('37', params.uid);
|
||||
console.log(channelId)
|
||||
let user = await UserModel.findUserByChannel(channelId);
|
||||
if(!user) return resResult(SDK_37_TREAT_CODE.USER_NOT_FOUND);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user