UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

322 lines (319 loc) 11.4 kB
import { b as __awaiter, c as __generator } from '../../tslib.es6-096fffdd.js'; import { compareTwoList, getMaxAndMinIdx } from '../../list/parse-list.mjs'; import { createCanvasTable } from '../../canvas/table.mjs'; import { saveJsonToLog } from '../../node/fs-util.mjs'; import { timeStampFormat } from '../../time/time.mjs'; import { batchSendWxRobotBase64Img } from '../../wecom-robot/batch-send.mjs'; import { getRUMScores } from '../api/rum-score.mjs'; import { getTAMSummaryScoreByGroupIdList } from '../api/summary-score.mjs'; import { parseSummaryScore } from '../parse/summary.mjs'; import { getTableHeaders } from '../parse/header.mjs'; import '../../number/number.mjs'; import '../../list/list.mjs'; import '../../canvas/get-canvas.mjs'; import 'fs'; import 'path'; import '../../fs/fs.mjs'; import '../../wecom-robot/base.mjs'; import '../../wecom-robot/helper.mjs'; import 'axios'; import '../../wecom-robot/send-img.mjs'; import '../../node-img/img.mjs'; import '../../tencent-cloud/base/base.mjs'; import '../api/credential.mjs'; function getRUMScoreList(_a) { var secretInfo = _a.secretInfo, parsedDate = _a.parsedDate, parsedPreDate = _a.parsedPreDate, date = _a.date; return __awaiter(this, void 0, void 0, function () { var parsedPostDate, rumScores, preRumScores; return __generator(this, function (_b) { switch (_b.label) { case 0: if (!secretInfo.rumSecretId || !secretInfo.rumSecretKey) { return [2 /*return*/, {}]; } parsedPostDate = timeStampFormat(new Date(date).getTime() + 1 * 24 * 60 * 60 * 1000, 'yyyyMMdd'); return [4 /*yield*/, getRUMScores({ secretId: secretInfo.rumSecretId, secretKey: secretInfo.rumSecretKey, startTime: "".concat(parsedDate, "00"), endTime: "".concat(parsedPostDate, "00") })]; case 1: rumScores = _b.sent(); return [4 /*yield*/, 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); saveJsonToLog(rumScores, 'rum-score.json'); 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 __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 __generator(this, function (_j) { switch (_j.label) { case 0: parsedDate = timeStampFormat(new Date(date).getTime(), 'yyyyMMdd'); headerDate = timeStampFormat(new Date(date).getTime(), 'yyyy-MM-dd'); parsedPreDate = 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*/, getTAMSummaryScoreByGroupIdList({ date: parsedDate, groupIdList: groupIdList, secretInfo: secretInfo })]; case 1: data = _j.sent(); return [4 /*yield*/, 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 = parseSummaryScore({ data: data.data, extraDataMap: extraDataMap, ignoreProjectIdList: ignoreProjectIdList, sortKeyList: sortKeyList }); parsedPreData = parseSummaryScore({ data: preData.data, extraDataMap: extraDataMap, ignoreProjectIdList: ignoreProjectIdList, sortKeyList: sortKeyList }); saveJsonToLog(parsedData, 'summary.parsed-data.json'); saveJsonToLog(parsedPreData, 'summary.parsed-data-pre.json'); compareTwoList(parsedData, parsedPreData, 'ProjectName'); tableData = getMaxAndMinIdx(parsedData); saveJsonToLog(tableData, 'summary.table-data.json'); img = ''; try { img = createCanvasTable({ data: tableData, headers: 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 __awaiter(this, void 0, void 0, function () { var result, img, data; return __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*/, batchSendWxRobotBase64Img({ img: img, webhookUrl: webhookUrl, chatId: chatId })]; case 2: _f.sent(); return [2 /*return*/, data]; } }); }); } export { genSummaryData, genSummaryDataAndSendRobot };