t-comm
Version:
专业、稳定、纯粹的工具库
327 lines (322 loc) • 11.8 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var tslib_es6 = require('../../tslib.es6-01322ba9.js');
var canvas_table = require('../../canvas/table.js');
var node_fsUtil = require('../../node/fs-util.js');
var time_time = require('../../time/time.js');
var wecomRobot_batchSend = require('../../wecom-robot/batch-send.js');
var tam_api_rumScore = require('../api/rum-score.js');
var tam_api_summaryScore = require('../api/summary-score.js');
var tam_parse_summary = require('../parse/summary.js');
var list_parseList = require('../../list/parse-list.js');
var tam_parse_header = require('../parse/header.js');
require('../../canvas/get-canvas.js');
require('../../list/list.js');
require('fs');
require('path');
require('../../fs/fs.js');
require('../../wecom-robot/base.js');
require('../../wecom-robot/helper.js');
require('axios');
require('../../wecom-robot/send-img.js');
require('../../node-img/img.js');
require('../../tencent-cloud/base/base.js');
require('../api/credential.js');
require('../../number/number.js');
function getRUMScoreList(_a) {
var secretInfo = _a.secretInfo,
parsedDate = _a.parsedDate,
parsedPreDate = _a.parsedPreDate,
date = _a.date;
return tslib_es6.__awaiter(this, void 0, void 0, function () {
var parsedPostDate, rumScores, preRumScores;
return tslib_es6.__generator(this, function (_b) {
switch (_b.label) {
case 0:
if (!secretInfo.rumSecretId || !secretInfo.rumSecretKey) {
return [2 /*return*/, {}];
}
parsedPostDate = time_time.timeStampFormat(new Date(date).getTime() + 1 * 24 * 60 * 60 * 1000, 'yyyyMMdd');
return [4 /*yield*/, tam_api_rumScore.getRUMScores({
secretId: secretInfo.rumSecretId,
secretKey: secretInfo.rumSecretKey,
startTime: "".concat(parsedDate, "00"),
endTime: "".concat(parsedPostDate, "00")
})];
case 1:
rumScores = _b.sent();
return [4 /*yield*/, tam_api_rumScore.getRUMScores({
secretId: secretInfo.rumSecretId,
secretKey: secretInfo.rumSecretKey,
startTime: "".concat(parsedPreDate, "00"),
endTime: "".concat(parsedDate, "00")
})];
case 2:
preRumScores = _b.sent();
console.log('[getRUMScoreList] parsedPostDate: ', parsedPostDate);
node_fsUtil.saveJsonToLog(rumScores, 'rum-score.json');
node_fsUtil.saveJsonToLog(preRumScores, 'rum-score-pre.json');
return [2 /*return*/, {
rumScores: rumScores,
preRumScores: preRumScores
}];
}
});
});
}
/**
* 生成TAM汇总数据图
* @ignore
* @param {object} options 配置
* @param {string} options.date 日期,yyyyMMdd格式
* @param {Array<number>} options.groupIdList groupId列表
*
* @param {object} options.secretInfo 密钥信息
* @param {string} options.secretInfo.apiKey apiKey
* @param {string} options.secretInfo.loginName loginName
* @param {Function} options.secretInfo.getPwdCode getPwdCode
* @param {Function} options.secretInfo.encrypt encrypt
*
* @param {object} options.extraDataMap 额外数据Map
* @param {object} options.ignoreProjectIdList 忽略的projectIdList
*
* @param {object} options.tableHeaderMap 表格头部Map
* @returns {string} 图片base64
* @example
* const requestSummaryScoreDate = Date.now() - 1 * 24 * 60 * 60 * 1000;
*
* const tamGroupIdList = [1, 2, 3];
*
* const summaryScoreTableHeaderMap = {
* ProjectName: {
* name: '项目名称',
* tableWidth: 95,
* },
* PagePv: {
* name: 'PV',
* tableWidth: 65,
* },
* };
*
* await genSummaryData({
* date: requestSummaryScoreDate,
* groupIdList: tamGroupIdList,
* secretInfo: {
* getPwdCode,
* encrypt,
* apiKey: process.env.AEGIS_APP_KEY,
* loginName: 'lee',
* },
* tableHeaderMap: summaryScoreTableHeaderMap,
* });
*/
function genSummaryData(_a) {
var date = _a.date,
groupIdList = _a.groupIdList,
secretInfo = _a.secretInfo,
_b = _a.extraDataMap,
extraDataMap = _b === void 0 ? {} : _b,
_c = _a.ignoreProjectIdList,
ignoreProjectIdList = _c === void 0 ? [] : _c,
_d = _a.tableHeaderMap,
tableHeaderMap = _d === void 0 ? {} : _d,
_e = _a.rumSecretList,
rumSecretList = _e === void 0 ? [] : _e;
return tslib_es6.__awaiter(this, void 0, void 0, function () {
var parsedDate, headerDate, parsedPreDate, sortKeyList, data, preData, _i, rumSecretList_1, item, _f, rumScores, preRumScores, parsedData, parsedPreData, tableData, img;
var _g, _h;
return tslib_es6.__generator(this, function (_j) {
switch (_j.label) {
case 0:
parsedDate = time_time.timeStampFormat(new Date(date).getTime(), 'yyyyMMdd');
headerDate = time_time.timeStampFormat(new Date(date).getTime(), 'yyyy-MM-dd');
parsedPreDate = time_time.timeStampFormat(new Date(date).getTime() - 1 * 24 * 60 * 60 * 1000, 'yyyyMMdd');
console.log('[genSummaryData] parsedDate: ', parsedDate);
console.log('[genSummaryData] parsedPreDate: ', parsedPreDate);
sortKeyList = Object.keys(tableHeaderMap);
if (!sortKeyList.length) {
return [2 /*return*/];
}
return [4 /*yield*/, tam_api_summaryScore.getTAMSummaryScoreByGroupIdList({
date: parsedDate,
groupIdList: groupIdList,
secretInfo: secretInfo
})];
case 1:
data = _j.sent();
return [4 /*yield*/, tam_api_summaryScore.getTAMSummaryScoreByGroupIdList({
date: parsedPreDate,
groupIdList: groupIdList,
secretInfo: secretInfo
})];
case 2:
preData = _j.sent();
console.log('[genSummaryData.rumSecretList]', rumSecretList);
if (!(rumSecretList === null || rumSecretList === void 0 ? void 0 : rumSecretList.length)) return [3 /*break*/, 6];
_i = 0, rumSecretList_1 = rumSecretList;
_j.label = 3;
case 3:
if (!(_i < rumSecretList_1.length)) return [3 /*break*/, 6];
item = rumSecretList_1[_i];
return [4 /*yield*/, getRUMScoreList({
secretInfo: item,
parsedDate: parsedDate,
parsedPreDate: parsedPreDate,
date: date
})];
case 4:
_f = _j.sent(), rumScores = _f.rumScores, preRumScores = _f.preRumScores;
console.log('[genSummaryData.rumScores?.length]', rumScores === null || rumScores === void 0 ? void 0 : rumScores.length);
if (rumScores) {
(_g = data.data).push.apply(_g, rumScores);
}
if (preRumScores) {
(_h = preData.data).push.apply(_h, preRumScores);
}
_j.label = 5;
case 5:
_i++;
return [3 /*break*/, 3];
case 6:
parsedData = tam_parse_summary.parseSummaryScore({
data: data.data,
extraDataMap: extraDataMap,
ignoreProjectIdList: ignoreProjectIdList,
sortKeyList: sortKeyList
});
parsedPreData = tam_parse_summary.parseSummaryScore({
data: preData.data,
extraDataMap: extraDataMap,
ignoreProjectIdList: ignoreProjectIdList,
sortKeyList: sortKeyList
});
node_fsUtil.saveJsonToLog(parsedData, 'summary.parsed-data.json');
node_fsUtil.saveJsonToLog(parsedPreData, 'summary.parsed-data-pre.json');
list_parseList.compareTwoList(parsedData, parsedPreData, 'ProjectName');
tableData = list_parseList.getMaxAndMinIdx(parsedData);
node_fsUtil.saveJsonToLog(tableData, 'summary.table-data.json');
img = '';
try {
img = canvas_table.createCanvasTable({
data: tableData,
headers: tam_parse_header.getTableHeaders(tableData, tableHeaderMap),
title: "TAM\u65E5\u62A5 ".concat(headerDate),
cellWidthList: Object.values(tableHeaderMap).map(function (item) {
return item.tableWidth || 65;
})
});
} catch (err) {
console.log('[genSummaryData.createCanvasTable.error]', err);
}
return [2 /*return*/, {
img: img,
data: data
}];
}
});
});
}
/**
* 生成TAM汇总数据并发送到机器人
* @param {object} options 配置
* @param {string} options.date 日期,yyyyMMdd格式
* @param {Array<number>} options.groupIdList groupId列表
*
* @param {object} options.secretInfo 密钥信息
* @param {string} options.secretInfo.apiKey apiKey
* @param {string} options.secretInfo.loginName loginName
* @param {Function} options.secretInfo.getPwdCode getPwdCode
* @param {Function} options.secretInfo.encrypt encrypt
*
* @param {object} options.extraDataMap 额外数据Map
* @param {object} options.ignoreProjectIdList 忽略的projectIdList
* @param {object} options.tableHeaderMap 表格头部Map
*
* @param {object} options.webhookUrl 机器人回调地址
* @param {object} options.chatId 会话Id
*
* @example
* const requestSummaryScoreDate = Date.now() - 1 * 24 * 60 * 60 * 1000;
*
* const tamGroupIdList = [1, 2, 3];
*
* const summaryScoreTableHeaderMap = {
* ProjectName: {
* name: '项目名称',
* tableWidth: 95,
* },
* PagePv: {
* name: 'PV',
* tableWidth: 65,
* },
* };
*
* await genSummaryDataAndSendRobot({
* date: requestSummaryScoreDate,
* groupIdList: tamGroupIdList,
* secretInfo: {
* getPwdCode,
* encrypt,
* apiKey: process.env.AEGIS_APP_KEY,
* loginName: 'lee',
* },
* webhookUrl: tamRobotWebhook,
* chatId: tamRobotChatId,
* tableHeaderMap: summaryScoreTableHeaderMap,
* });
*/
function genSummaryDataAndSendRobot(_a) {
var date = _a.date,
groupIdList = _a.groupIdList,
secretInfo = _a.secretInfo,
_b = _a.extraDataMap,
extraDataMap = _b === void 0 ? {} : _b,
_c = _a.ignoreProjectIdList,
ignoreProjectIdList = _c === void 0 ? [] : _c,
_d = _a.tableHeaderMap,
tableHeaderMap = _d === void 0 ? {} : _d,
webhookUrl = _a.webhookUrl,
chatId = _a.chatId,
_e = _a.rumSecretList,
rumSecretList = _e === void 0 ? [] : _e;
return tslib_es6.__awaiter(this, void 0, void 0, function () {
var result, img, data;
return tslib_es6.__generator(this, function (_f) {
switch (_f.label) {
case 0:
if (!rumSecretList.length && secretInfo.rumSecretId && secretInfo.rumSecretKey) {
rumSecretList = [{
rumSecretId: secretInfo.rumSecretId,
rumSecretKey: secretInfo.rumSecretKey
}];
}
return [4 /*yield*/, genSummaryData({
date: date,
groupIdList: groupIdList,
secretInfo: secretInfo,
extraDataMap: extraDataMap,
ignoreProjectIdList: ignoreProjectIdList,
tableHeaderMap: tableHeaderMap,
rumSecretList: rumSecretList
})];
case 1:
result = _f.sent();
if (!result) return [2 /*return*/];
img = result.img, data = result.data;
if (!img || !chatId) {
return [2 /*return*/, data];
}
return [4 /*yield*/, wecomRobot_batchSend.batchSendWxRobotBase64Img({
img: img,
webhookUrl: webhookUrl,
chatId: chatId
})];
case 2:
_f.sent();
return [2 /*return*/, data];
}
});
});
}
exports.genSummaryData = genSummaryData;
exports.genSummaryDataAndSendRobot = genSummaryDataAndSendRobot;