测试:武将测试debug接口

This commit is contained in:
luying
2021-10-08 17:20:50 +08:00
parent 56ef57e225
commit 3cab2d4db4
6 changed files with 215 additions and 561 deletions

View File

@@ -3,11 +3,11 @@ import { EquipModel } from './../../../db/Equip';
import { RoleModel, RoleType } from './../../../db/Role';
import { UserModel } from '../../../db/User';
import { GMUserModel } from '../../../db/GMUser';
import { Application, HandlerService, } from 'pinus';
import { Application, HandlerService, pinus, } from 'pinus';
import { FrontendSession } from 'pinus';
import { HeroModel } from './../../../db/Hero';
import { resResult } from '../../../pubUtils/util';
import { COM_BTL_QUALITY, HERO_SELECT, DEBUG_MAGIC_WORD, REDIS_KEY, TASK_TYPE, ENTERY_ROLE_PICK } from '../../../consts';
import { genCode, generateStr, resResult } from '../../../pubUtils/util';
import { COM_BTL_QUALITY, HERO_SELECT, DEBUG_MAGIC_WORD, REDIS_KEY, TASK_TYPE, ENTERY_ROLE_PICK, COUNTER, DEFAULT_LV } from '../../../consts';
import { getAp } from '../../../services/actionPointService';
import { ItemModel } from '../../../db/Item';
import { SkinModel } from '../../../db/Skin';
@@ -22,6 +22,8 @@ import { checkTaskWithRole, } from '../../../services/taskService';
import { pushData, everydayRefresh, kickUser } from '../../../services/connectorService';
import { pick } from 'lodash';
import { setComBtlOnUserLeave } from '../../../services/comBattleService';
import Counter from '../../../db/Counter';
import { getExpByLv } from '../../../pubUtils/data';
export default function (app: Application) {
new HandlerService(app, {});
@@ -299,14 +301,24 @@ export class EntryHandler {
return resResult(STATUS.SUCCESS, { user });
}
async debugQueryTokenByTel(msg: { tel: string, magicWord: string }, session: FrontendSession) {
const { tel, magicWord } = msg;
async debugQueryTokenByTel(msg: { tel: string, magicWord: string, serverId: number }, session: FrontendSession) {
const { tel, magicWord, serverId } = msg;
if (magicWord !== DEBUG_MAGIC_WORD) {
return resResult(STATUS.TOKEN_ERR);
}
const user = await UserModel.findTokenByTel(tel);
console.log('debugQueryTokenByTel got user:', user);
return resResult(STATUS.SUCCESS, { user });
let token = await UserModel.findTokenByTel(tel);
if(!token) {
// 用户注册登录
token = generateStr(256);
let user = await UserModel.createOrUpdate(false, tel, token, 'pc', ' ', pinus.app.get('env'), '', '');
const roleId = genCode(10);
const code = genCode(6);
const seqId = await Counter.getNewCounter(COUNTER.ROLE) || -1;
await RoleModel.createRole(user.uid, serverId, { roleId, code, roleName: roleId, seqId, lv: DEFAULT_LV, exp: (getExpByLv(DEFAULT_LV - 1) || { sum: 0 }).sum || 0 });
}
console.log('debugQueryTokenByTel got user:', token);
return resResult(STATUS.SUCCESS, { user: token });
}
async debugPushRefToOnlineUsers(msg: { magicWord: string }, session: FrontendSession) {

View File

@@ -3,7 +3,7 @@ import { handleCost, addItems, unlockFigure, createHeroes, createHero, CheckMete
import { calPlayerCeAndSave, calAllHeroCe } from '../../../services/playerCeService';
import { resResult, deepCopy } from '../../../pubUtils/util';
import { STATUS } from '../../../consts/statusCode';
import { HeroModel, Connect, HeroSkin } from '../../../db/Hero';
import { HeroModel, Connect, HeroSkin, HeroUpdate } from '../../../db/Hero';
import { CURRENCY_BY_TYPE, CURRENCY_TYPE, CONSUME_TYPE, HERO_GROW_MAX, HERO_SYSTEM_TYPE, ABI_STAGE, DEBUG_MAGIC_WORD, HERO_INITIAL_QUALITY, REDIS_KEY, TASK_TYPE } from '../../../consts';
import { RoleModel } from '../../../db/Role';
import { ItemModel } from '../../../db/Item';
@@ -445,7 +445,7 @@ export class HeroHandler {
let level = curConnect.level;
let friendShip = getFriendShipById(shipId, level);
if (hero.star < friendShip.level)
if (hero.lv < friendShip.level)
return resResult(STATUS.NOT_REACH_UNLOCK_LEVEL);
let hids = friendShip.hids;
for (let hid of hids) {
@@ -454,7 +454,7 @@ export class HeroHandler {
let member = await HeroModel.findByHidAndRole(hid, roleId);
if (!member)
return resResult(STATUS.ROLE_SHORT_HERO_CONECTION);
if (member.star < friendShip.level)
if (member.lv < friendShip.level)
return resResult(STATUS.NOT_REACH_UNLOCK_LEVEL);
}
let result = await handleCost(roleId, sid, [{ id: CURRENCY_BY_TYPE.get(CURRENCY_TYPE.COIN), count: friendShip.costCoin }]);
@@ -552,6 +552,7 @@ export class HeroHandler {
let sid: string = session.get('sid');
let { id } = msg;
let skinInfo = gameData.fashion.get(id);
console.log('*****', id, skinInfo)
if (!skinInfo) return resResult(STATUS.HERO_SKIN_NOT_FIND);
let hero = await HeroModel.findByHidAndRole(skinInfo.actorId, roleId);
if (!hero) return resResult(STATUS.HERO_NOT_FIND);
@@ -670,4 +671,25 @@ export class HeroHandler {
return resResult(STATUS.SUCCESS, { goods: result, lv: role.lv, exp: role.exp });
}
public async debugSetHero(msg: { magicWord: string, hid: number, params: HeroUpdate }, session: BackendSession) {
let roleId: string = session.get('roleId');
let roleName: string = session.get('roleName');
let sid: string = session.get('sid');
let serverId: number = session.get('serverId');
let { magicWord, hid, params } = msg;
if (magicWord !== DEBUG_MAGIC_WORD) {
return resResult(STATUS.TOKEN_ERR);
}
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if(!hero) {
let { heroes } = await createHero(roleId, roleName, sid, serverId, { hid, count: 1, ...params });
hero = heroes[0];
}
hero = await HeroModel.updateHeroInfo(roleId, hid, params);
return resResult(STATUS.SUCCESS, { hero });
}
}

View File

@@ -670,8 +670,6 @@ export class Rank {
let myId = this.decodeFields(this.key, field);
const scores = this.decodeScore(rankFromDb[ii + 1]);
console.log('**********', scores);
const info = await redisClient().hgetAsync(this.infoKey, this.composeFields(this.infoKey, myId));
const userInfo = JSON.parse(info);

File diff suppressed because it is too large Load Diff

View File

@@ -34,6 +34,7 @@
"chinese-random-name": "^1.0.0",
"crc": "^3.5.0",
"cross-env": "^7.0.3",
"csprng": "^0.1.2",
"local": "^0.3.3",
"moment": "^2.29.1",
"mongoose": "^5.10.4",

View File

@@ -2,6 +2,7 @@ import { STATUS } from './../consts/statusCode';
import { HeroModel, HeroType } from '../db/Hero';
const csprng = require('csprng');
import fs = require('fs');
import path = require('path');
import { HERO_CE_RATIO, ABI_STAGE, GACHA_TO_FLOOR, REFRESH_TIME, ROBOT_SYS_TYPE, } from '../consts';
@@ -58,6 +59,14 @@ export function genCode(len) {
return code;
}
/**
* 生成 len 长度的随机字符串
* @param len 长度
* @param radix 基数
*/
export function generateStr(len: number, radix = 36) {
return `${csprng(len, radix)}`;
}
export function generateNum(len: number) {
let code = '';