75 lines
1.8 KiB
TypeScript
75 lines
1.8 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');
|
|
|
|
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}`);
|
|
}
|
|
}
|
|
}
|