(37需求): 查询角色接口
This commit is contained in:
@@ -561,4 +561,26 @@ export class GetServerParam {
|
|||||||
checkParams() {
|
checkParams() {
|
||||||
return this.server_id != undefined && this.time != undefined && this.sign != undefined
|
return this.server_id != undefined && this.time != undefined && this.sign != undefined
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class GetServerAndUidParam {
|
||||||
|
time: number;
|
||||||
|
appid: string;
|
||||||
|
gid: string;
|
||||||
|
uid: number;
|
||||||
|
dsid: number;
|
||||||
|
sign: string;
|
||||||
|
|
||||||
|
constructor(data: any) {
|
||||||
|
this.time = data.time;
|
||||||
|
this.appid = data.appid;
|
||||||
|
this.gid = data.gid;
|
||||||
|
this.uid = data.uid;
|
||||||
|
this.dsid = data.dsid;
|
||||||
|
this.sign = data.sign;
|
||||||
|
}
|
||||||
|
|
||||||
|
checkParams() {
|
||||||
|
return this.appid != undefined && this.time != undefined && this.gid != undefined && this.uid != undefined && this.dsid != undefined && this.sign != undefined
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
import { Controller } from 'egg';
|
import { Controller } from 'egg';
|
||||||
import { GetGuildInfoByUserParam, GetRoleByServerParam, GetRoleByUidParam, GetServerListParam, GetServerParam, GuildNameCallBackParam, IOSRefundParam, PayCallback37Data, RoleNameCallBackParam, SendGiftCodeParam } from '../domain/sdk';
|
import { GetGuildInfoByUserParam, GetRoleByServerParam, GetRoleByUidParam, GetServerAndUidParam, GetServerListParam, GetServerParam, GuildNameCallBackParam, IOSRefundParam, PayCallback37Data, RoleNameCallBackParam, SendGiftCodeParam } from '../domain/sdk';
|
||||||
|
|
||||||
export default class SdkController extends Controller {
|
export default class SdkController extends Controller {
|
||||||
|
|
||||||
@@ -76,6 +76,14 @@ export default class SdkController extends Controller {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async getRoleByUidAndServerForLogin() {
|
||||||
|
const { ctx } = this;
|
||||||
|
const params = new GetServerAndUidParam(ctx.query||ctx.request.body);
|
||||||
|
ctx.body = await ctx.service.sdk.getRoleByUidAndServerForLogin(params);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public async getRoleByUid() {
|
public async getRoleByUid() {
|
||||||
const { ctx } = this;
|
const { ctx } = this;
|
||||||
const params = new GetRoleByUidParam(ctx.query);
|
const params = new GetRoleByUidParam(ctx.query);
|
||||||
|
|||||||
@@ -73,6 +73,7 @@ module.exports = () => {
|
|||||||
'/cb/getrolebyserver',
|
'/cb/getrolebyserver',
|
||||||
'/cb/getserverinfo',
|
'/cb/getserverinfo',
|
||||||
'/cb/getrolebyuid',
|
'/cb/getrolebyuid',
|
||||||
|
'/cb/getrolebyuidandserver',
|
||||||
];
|
];
|
||||||
for(let str of urls) {
|
for(let str of urls) {
|
||||||
if(url && url.startsWith(str)) {
|
if(url && url.startsWith(str)) {
|
||||||
@@ -94,6 +95,8 @@ module.exports = () => {
|
|||||||
case '/cb/getrolebyserver':
|
case '/cb/getrolebyserver':
|
||||||
case '/cb/getserverinfo':
|
case '/cb/getserverinfo':
|
||||||
return ctx.query.server_id.toString();
|
return ctx.query.server_id.toString();
|
||||||
|
case '/cb/getrolebyuidandserver':
|
||||||
|
return ctx.query? ctx.query.dsid.toString(): ctx.request.body.dsid.toString();
|
||||||
case '/cb/getrolebyuid':
|
case '/cb/getrolebyuid':
|
||||||
return 'main';
|
return 'main';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,6 +48,8 @@ export default (app: Application) => {
|
|||||||
router.get('/cb/getrolebyserver', controller.sdk.getRoleByUidAndServer);
|
router.get('/cb/getrolebyserver', controller.sdk.getRoleByUidAndServer);
|
||||||
router.get('/cb/getrolebyuid', controller.sdk.getRoleByUid);
|
router.get('/cb/getrolebyuid', controller.sdk.getRoleByUid);
|
||||||
router.get('/cb/getserverinfo', controller.sdk.getServerInfo);
|
router.get('/cb/getserverinfo', controller.sdk.getServerInfo);
|
||||||
|
router.get('/cb/getrolebyuidandserver', controller.sdk.getRoleByUidAndServerForLogin);
|
||||||
|
router.post('/cb/getrolebyuidandserver', controller.sdk.getRoleByUidAndServerForLogin);
|
||||||
|
|
||||||
// 问卷星回调
|
// 问卷星回调
|
||||||
router.post('/cb/wjx', controller.sdk.wjxCallback)
|
router.post('/cb/wjx', controller.sdk.wjxCallback)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
import { Service } from 'egg';
|
import { Service } from 'egg';
|
||||||
import { REDIS_KEY, PAY_37_CALLBACK_CODE, SDK_37_CONST, ORDER_STATE, SDK_37_TREAT_CODE, SERVER_STATUS, SDK_37_REFUND_CODE, SDK_37_ACTIVITY_CODE, PUBLIC_ACCOUNT_GIFT, GIFT_GENERATE_TYPE } from '@consts';
|
import { REDIS_KEY, PAY_37_CALLBACK_CODE, SDK_37_CONST, ORDER_STATE, SDK_37_TREAT_CODE, SERVER_STATUS, SDK_37_REFUND_CODE, SDK_37_ACTIVITY_CODE, PUBLIC_ACCOUNT_GIFT, GIFT_GENERATE_TYPE } from '@consts';
|
||||||
import { GetGuildInfoByUserParam, GetRoleByServerParam, GetRoleByUidParam, GetServerListParam, GetServerParam, GuildNameCallBackParam, IOSRefundParam, PayCallback37Data, RoleNameCallBackParam, SendGiftCodeParam } from '../domain/sdk';
|
import { GetGuildInfoByUserParam, GetRoleByServerParam, GetRoleByUidParam, GetServerAndUidParam, GetServerListParam, GetServerParam, GuildNameCallBackParam, IOSRefundParam, PayCallback37Data, RoleNameCallBackParam, SendGiftCodeParam } from '../domain/sdk';
|
||||||
import { RedisClient } from 'redis';
|
import { RedisClient } from 'redis';
|
||||||
import { checkParamPrice, get37GetServerMd5Sign, get37Md5SignA, get37Md5SignB, getChannelId, getRedisSubChannel, md5 } from '../pubUtils/sdkUtil';
|
import { checkParamPrice, get37GetServerMd5Sign, get37Md5SignA, get37Md5SignB, getChannelId, getRedisSubChannel, md5 } from '../pubUtils/sdkUtil';
|
||||||
import { UserOrderModel } from '@db/UserOrder';
|
import { UserOrderModel } from '@db/UserOrder';
|
||||||
@@ -623,8 +623,54 @@ export default class Sdk extends Service {
|
|||||||
if(sign != params.sign) return resResult(SDK_37_ACTIVITY_CODE.SIGN_ERR);
|
if(sign != params.sign) return resResult(SDK_37_ACTIVITY_CODE.SIGN_ERR);
|
||||||
|
|
||||||
if(nowSeconds() - params.time > 15 * 60) {
|
if(nowSeconds() - params.time > 15 * 60) {
|
||||||
return SDK_37_ACTIVITY_CODE.TIME_IS_EXPIRED;
|
return resResult(SDK_37_ACTIVITY_CODE.TIME_IS_EXPIRED);
|
||||||
}
|
}
|
||||||
return resResult(SDK_37_ACTIVITY_CODE.SUCCESS);
|
return resResult(SDK_37_ACTIVITY_CODE.SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 根据服务器获取玩家数据
|
||||||
|
public async getRoleByUidAndServerForLogin(params:GetServerAndUidParam) {
|
||||||
|
try {
|
||||||
|
let validateResult = this.getRoleByUidAndServerForLoginValidate(params);
|
||||||
|
if(validateResult.code != SDK_37_ACTIVITY_CODE.SUCCESS.code) return { state: 0, data: null, msg: validateResult.simStr };
|
||||||
|
|
||||||
|
let channelId = getChannelId('37', params.uid);
|
||||||
|
let user = await UserModel.findUserByChannel(channelId);
|
||||||
|
if(!user) return resResult(SDK_37_ACTIVITY_CODE.ROLE_NOT_FOUND);
|
||||||
|
|
||||||
|
let server = await ServerlistModel.findByServerId(params.dsid);
|
||||||
|
if(!server) return resResult(SDK_37_ACTIVITY_CODE.SERVER_NOT_FOUND);
|
||||||
|
let role = await Role.findByUid(user.uid, params.dsid, 'roleId roleName lv createTime serverId ce');
|
||||||
|
if(!role) return resResult(SDK_37_ACTIVITY_CODE.ROLE_NOT_FOUND);
|
||||||
|
return {
|
||||||
|
state: 1, data: [{
|
||||||
|
dsid: role.serverId.toString(),
|
||||||
|
dsname: server.name,
|
||||||
|
drid: role.roleId,
|
||||||
|
drname: role.roleName,
|
||||||
|
drlevel: role.lv.toString(),
|
||||||
|
dpower: role.ce.toString(),
|
||||||
|
}], msg: '成功'
|
||||||
|
}
|
||||||
|
} catch(e) {
|
||||||
|
console.error(e);
|
||||||
|
return { state: 0, data: null, msg: SDK_37_ACTIVITY_CODE.INTERNAL_ERR };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private getRoleByUidAndServerForLoginValidate(params:GetServerAndUidParam) {
|
||||||
|
if(!params.checkParams()) return SDK_37_ACTIVITY_CODE.WRONG_PARAMS;
|
||||||
|
|
||||||
|
let { appid, gid, uid, dsid, time } = params;
|
||||||
|
let str = `${time}${appid}${gid}${dsid}${uid}${SDK_37_CONST.LOGIN_KEY}`;
|
||||||
|
let sign = md5(str);
|
||||||
|
console.log('#### str: ', str, 'sign', sign);
|
||||||
|
if(sign != params.sign) return SDK_37_ACTIVITY_CODE.SIGN_ERR;
|
||||||
|
|
||||||
|
if(nowSeconds() - params.time > 15 * 60) {
|
||||||
|
return SDK_37_ACTIVITY_CODE.TIME_IS_EXPIRED;
|
||||||
|
}
|
||||||
|
return SDK_37_ACTIVITY_CODE.SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user