sdk:根据玩家获取军团信息
This commit is contained in:
@@ -1,14 +1,17 @@
|
||||
|
||||
import { Service } from 'egg';
|
||||
import { REDIS_KEY, PAY_37_CALLBACK_CODE, SDK_37_CONST, ORDER_STATE, } from '@consts';
|
||||
import { PayCallback37Data } from '../domain/sdk';
|
||||
import { REDIS_KEY, PAY_37_CALLBACK_CODE, SDK_37_CONST, ORDER_STATE, SDK_37_TREAT_CODE } from '@consts';
|
||||
import { GetGuildInfoByUserParam, GuildNameCallBackParam, PayCallback37Data, RoleNameCallBackParam } from '../domain/sdk';
|
||||
import { RedisClient } from 'redis';
|
||||
import { get37Md5Sign, getRedisSubChannel } from '../pubUtils/sdkUtil';
|
||||
import { pick } from 'underscore';
|
||||
import { get37Md5Sign, get37PostMd5Sign, getChannelId, getRedisSubChannel } from '../pubUtils/sdkUtil';
|
||||
import { UserOrderModel } from '@db/UserOrder';
|
||||
import { nowSeconds } from 'app/pubUtils/timeUtil';
|
||||
import { RoleModel } from '@db/Role';
|
||||
import { gameData } from 'app/pubUtils/data';
|
||||
import { resResult } from 'app/pubUtils/util';
|
||||
import { UserModel } from '@db/User';
|
||||
import { UserGuildModel } from '@db/UserGuild';
|
||||
import { GuildModel } from '@db/Guild';
|
||||
|
||||
/**
|
||||
* Test Service
|
||||
@@ -16,8 +19,7 @@ import { gameData } from 'app/pubUtils/data';
|
||||
export default class Sdk extends Service {
|
||||
|
||||
public check37Sign(params: PayCallback37Data) {
|
||||
let body = pick(params, ['appid', 'uid', 'game_id', 'sid', 'actor_id', 'order_id', 'order_no', 'money', 'game_coin', 'product_id', 'time', 'ext']);
|
||||
let sign = get37Md5Sign(body, SDK_37_CONST.PAY_KEY);
|
||||
let sign = get37Md5Sign(params.getBody, SDK_37_CONST.PAY_KEY);
|
||||
console.log('******37Sign', sign);
|
||||
return sign == params.sign;
|
||||
}
|
||||
@@ -27,7 +29,7 @@ export default class Sdk extends Service {
|
||||
const { app } = ctx;
|
||||
const ip = ctx.request.ip;
|
||||
|
||||
let checkResult = ctx.service.sdk.check37Sign(params);
|
||||
let checkResult = this.check37Sign(params);
|
||||
if(!checkResult) return ctx.service.utils.resResult(PAY_37_CALLBACK_CODE.MD5_ERR, '');
|
||||
|
||||
if(gameData.whiteip.indexOf(ip) == -1) {
|
||||
@@ -75,4 +77,72 @@ export default class Sdk extends Service {
|
||||
}
|
||||
|
||||
|
||||
public check37WordsSign(params: RoleNameCallBackParam|GuildNameCallBackParam|GetGuildInfoByUserParam) {
|
||||
let sign = get37PostMd5Sign(params.getBody(), SDK_37_CONST.CHAT_KEY);
|
||||
console.log('******37Sign', sign);
|
||||
return sign == params.sign;
|
||||
}
|
||||
|
||||
public treatRoleOrGuildNameValidate(params: RoleNameCallBackParam|GuildNameCallBackParam|GetGuildInfoByUserParam) {
|
||||
const { ctx } = this;
|
||||
const ip = ctx.request.ip;
|
||||
|
||||
if(!params.checkParams()) return SDK_37_TREAT_CODE.WRONG_PARAMS;
|
||||
|
||||
if(params.game_key != SDK_37_CONST.GAME_KEY) {
|
||||
return SDK_37_TREAT_CODE.ERR;
|
||||
}
|
||||
|
||||
let checkResult = this.check37WordsSign(params);
|
||||
if(!checkResult) return SDK_37_TREAT_CODE.SIGN_ERR;
|
||||
|
||||
if(nowSeconds() - params.time > 15 * 60) {
|
||||
return SDK_37_TREAT_CODE.TIME_IS_EXPIRED;
|
||||
}
|
||||
|
||||
if(gameData.whiteip.indexOf(ip) == -1) {
|
||||
return SDK_37_TREAT_CODE.ERR;
|
||||
}
|
||||
return SDK_37_TREAT_CODE.SUCCESS
|
||||
}
|
||||
|
||||
// 用户名违规处理
|
||||
public async treatRoleName(params: RoleNameCallBackParam) {
|
||||
let check = this.treatRoleOrGuildNameValidate(params);
|
||||
if(check.code != SDK_37_TREAT_CODE.SUCCESS.code) return check.code;
|
||||
|
||||
return check.code
|
||||
}
|
||||
|
||||
// 公会信息违规处理
|
||||
public async treatGuildName(params: GuildNameCallBackParam) {
|
||||
let check = this.treatRoleOrGuildNameValidate(params);
|
||||
if(check.code != SDK_37_TREAT_CODE.SUCCESS.code) return check.code;
|
||||
|
||||
return check.code
|
||||
}
|
||||
|
||||
// 根据玩家获得公会信息
|
||||
public async getGuildByUser(params: GetGuildInfoByUserParam) {
|
||||
let check = this.treatRoleOrGuildNameValidate(params);
|
||||
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);
|
||||
|
||||
let role = await RoleModel.findByUid(user.uid, params.sid);
|
||||
if(!role) return resResult(SDK_37_TREAT_CODE.ROLE_NOT_FOUND);
|
||||
|
||||
let userGuild = await UserGuildModel.getMyGuild(role.roleId);
|
||||
if(userGuild) {
|
||||
let guild = await GuildModel.findByCode(userGuild.guildCode, params.sid);
|
||||
if(guild) {
|
||||
return resResult(check, [{ guildid: guild.code, guild_name: guild.name }]);
|
||||
}
|
||||
}
|
||||
|
||||
return resResult(check, []);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user