Files
ZYZ/gm-server/app/service/Utils.ts
2021-12-17 19:17:05 +08:00

90 lines
2.2 KiB
TypeScript

import { Service } from 'egg';
import * as pubUtils from '@pubUtils/util';
import { HeroUpdate } from '@db/Hero';
import { SkinUpdate } from '@db/Skin';
import { getInitRoleInfo } from '@pubUtils/roleUtil';
const csprng = require('csprng');
/**
* Utils Service
*/
export default class Utils extends Service {
constructor(args) {
super(args);
this.setInitRole();
}
private initHeroes: Map<number, HeroUpdate> = new Map(); // hid => hero
private initSkins: Map<number, SkinUpdate> = new Map(); // hid => skin
public setInitRole() {
let result = getInitRoleInfo();
let { heroes, skins } = result;
for(let hero of heroes) {
this.initHeroes.set(hero.hid, hero);
}
for(let skin of skins) {
this.initSkins.set(skin.hid, skin);
}
}
public getInitHeroById(hid: number) {
return {
heroInfo: this.initHeroes.get(hid),
skinInfo: this.initSkins.get(hid)
}
}
/**
* 生成 len 长度的随机字符串
* @param len 长度
* @param radix 基数
*/
public generateStr(len: number, radix = 36) {
return `${csprng(len, radix)}`;
}
public genCode(len: number) {
return pubUtils.genCode(len)
}
public resResult(status: {code: number, simStr: string}, data?, customMsg?: string) {
return pubUtils.resResult(status, data, customMsg);
}
public checkActivityData(data: any, type: number) {
return { data, type }
}
public log(level: 'DEBUG'|'INFO'|'WARN'| 'ERROR', message: string) {
const log = this.app.loggers.get('linkLogger');
console.log(message);
if(level == 'DEBUG') {
log.error(`${message}`);
} else if (level == 'INFO') {
log.info(`${message}`);
} else if (level == 'WARN') {
log.warn(`${message}`);
} else if (level == "ERROR") {
log.error(`${message}`);
}
}
public async transmit(env: string, route: string, stream: any) {
const { ctx } = this;
console.log('****transmit', stream);
const result = await ctx.curl(`http://127.0.0.1:7002${route}`, {
method: 'POST',
files: stream,
headers: {
token: ctx.request.headers.token
}
});
console.log(env, result)
}
}