Commit aa36ca79 by lixinming

no message

parent 3bccabc8
//标准化输出
\ No newline at end of file
//标准化输出
import { getUnitMaxOccNum, separateDataAndUint, unifiedMaxAndMinValueAndStep } from "./privateTools";
/**
* getStringOutData 获取文字列表返回结果
* @param title 数据标题
* @param valueList 数据体 格式:["txt...", "str..."]
* @returns {title, data:[string...]}
*/
export function getStringOutData(title, valueList) {
let result = { title, data:[] };
valueList.forEach( str => {
result.data.push(str);
});
return result;
}
/**
* getChartData 获取图表列表返回结果
* @param title 数据标题
* @param data 数据体 格式:{"图表名称":{unit:"", dataInfo:[{key:"数据key", value:"数据值"}, {key:"数据key", value:"数据值"} ] } }
* @param haveMoreY 是否有多个y轴 默认false
* @returns
*/
export function getChartData(title, data) {
let result = { title, dataList:[] };
for (let chartName in data) {
let { unit, dataInfo } = data[chartName];
let addData:any = { title: chartName };
let max = 0;
let min = new Date().valueOf();
let total = 0;
let thisUnitStats = {};
let dataList = [];
for (let i = 0; i < dataInfo.length; i++) {
let { key, value } = dataInfo[i];
let { dataNum, dataUnit } = separateDataAndUint(value);
min = Math.min(min, dataNum);
max = Math.max(max, dataNum);
thisUnitStats[dataUnit] = thisUnitStats[dataUnit] ? thisUnitStats[dataUnit] + 1 : 1;
total += dataNum;
dataList.push({key, value:dataNum, unit:dataUnit});
}
let statsUnit = getUnitMaxOccNum(thisUnitStats);
let thisChartUnit = unit || statsUnit || "";
addData["unit"] = thisChartUnit;
addData["total"] = total;
let {maxNumber, minNumber, stepNumber} = unifiedMaxAndMinValueAndStep(max, min);
addData["yMinValue"] = minNumber;
addData["yMaxValue"] = maxNumber;
addData["yStepValue"] = stepNumber;
addData["dataList"] = dataList;
result.dataList.push(addData);
}
}
//仅限cal中使用的工具
\ No newline at end of file
//仅限cal中使用的工具 禁止做任何修改
/**
* separateDataAndUint 截取字符串中的单位
* @param str 待处理字符串
* @returns {dataNumber:数据, dataUnit:单位}
*/
export function separateDataAndUint(str) {
if (!str) return {dataNum:0, dataUnit:""};
let dataNum = parseFloat(str.replace(/[\u4E00-\u9FA5a-zA-Z]+/,""));
let dataUnit = str.replace(/^(-)?\d+(\.\d+)?/, "");
return {dataNum, dataUnit};
}
/**
* getUnitMaxOccNum 获取出现次数最多的单位
* @param unitMap 统计后的出现过的单位情况 结构{unit:出现次数}
* @returns 出现次数最多的单位
*/1
export function getUnitMaxOccNum(unitMap) {
let max = 0;
let maxUnit = "";
for (let unit in unitMap) {
let occNum = unitMap[unit];
if (occNum > max) {
max = occNum;
maxUnit = unit;
}
}
return maxUnit;
}
/**
* unifiedMaxAndMinValueAndStep 求最大最小值以及间隙 固定分10份
* @param max 最大
* @param min 最小
* @returns {maxNumber:向上留值最大, minNumber:向下留值最小, stepNumber:间隔};
*/
export function unifiedMaxAndMinValueAndStep(max, min) {
let maxNumber = Math.ceil(max);
let minNumber = Math.floor(min);
function getNumberInLength(length) {
let lengthCount = 1;
for (let i = 1; i < length; i++) {
lengthCount = lengthCount * 10;
}
return lengthCount;
}
let maxNumberLength = getNumberInLength(`${maxNumber}`.length);
let minNumberLength = getNumberInLength(`${minNumber}`.length);
if (maxNumber <= 10 && maxNumber > 0) maxNumber = 10;
else maxNumber = Math.ceil(maxNumber / maxNumberLength) * maxNumberLength;
minNumber = Math.floor(minNumber / minNumberLength) * minNumberLength;
let stepNumber = Math.ceil((maxNumber - minNumber) / 10);
return {maxNumber, minNumber, stepNumber};
}
\ No newline at end of file
import { getPort } from "./serverConfig";
async function lanuch() {
//逻辑
test();
}
function test() {
}
\ No newline at end of file
// testMaxMin();
}
lanuch();
\ No newline at end of file
import { BizError } from "../util/bizError";
const LRU = require("lru-cache")
, cacheOptions = { max: 500000
, maxAge: 1000 * 60 * 10 }
......
//端口
export function getPort() : number {
return Number(process.env.PORT) || Number(process.argv[3]) || 9000;
return Number(process.env.PORT) || Number(process.argv[3]) || 7536;
}
// sit 测试环境 prod 生产环境 dem 演示环境(测试数据,前端无密码访问)
......
export class BizError extends Error {
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment