sdk:根据玩家获取军团信息

This commit is contained in:
luying
2021-11-11 11:13:45 +08:00
parent 16119ac7a8
commit bbb2903f12
8 changed files with 209 additions and 26 deletions

View File

@@ -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, []);
}
}