t-comm
Version:
专业、稳定、纯粹的工具库
263 lines (260 loc) • 7.57 kB
JavaScript
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 { timeStampFormat } from '../../time/time.mjs';
import '@babel/runtime/helpers/typeof';
import { getSomeDayStartTimeStamp, getSomeDayEndTimeStamp } from '../../date/timeStamp.mjs';
import { batchSendWxRobotBase64Img } from '../../wecom-robot/batch-send.mjs';
import { getMultiCustomEventData } from '../api/custom-event.mjs';
import { getTableHeaders } from '../parse/header.mjs';
import { parseMultiCustomEvent } from '../parse/custom-event.mjs';
import '../../number/number.mjs';
import '../../list/list.mjs';
import '../../canvas/get-canvas.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 '../api/credential.mjs';
import '../../node/fs-util.mjs';
import 'fs';
import 'path';
import '../../fs/fs.mjs';
/**
* 获取自定义事件图片
* @ignore
* @param {object} options 配置信息
* @returns {string} 图片url
* @example
*
* const requestMultiImgDate = Date.now() - 1 * 24 * 60 * 60 * 1000;
*
* const tamGroupIdList = [1, 2, 3];
*
* const eventProjectMap = {
* 62659: {
* name: 'aaaaa',
* },
* 57706: {
* name: 'bbbbb',
* extraProjectId: 66379,
* },
* };
*
* const eventMap = {
* WX_SUC: {
* // 总和
* type: 'SUMMARY',
* target: ['ENTER_GAME_WX_SUC', 'LAUNCH_GAME_SUC_WX'],
* },
* WX_FAIL: {
* // 总和
* type: 'SUMMARY',
* target: ['ENTER_GAME_WX_FAIL', 'LAUNCH_GAME_FAIL_WX'],
* },
* };
*
* const eventTableHeaderMap = {
* ProjectName: {
* name: '项目名称',
* tableWidth: 95,
* },
* ALL_SUMMARY: {
* name: '拉起总数',
* tableWidth: 65,
* },
* };
*
* genCustomEventImg({
* date: requestLaunchGameDate,
* secretInfo: {
* getPwdCode,
* encrypt,
* apiKey: process.env.AEGIS_APP_KEY,
* loginName: 'lee',
* },
* projectIdMap: eventProjectMap,
* eventMap,
* tableHeaderMap: eventTableHeaderMap,
* });
*
*/
function genCustomEventImg(_a) {
var
// 获取数据参数
date = _a.date,
projectIdMap = _a.projectIdMap,
_b = _a.env,
env = _b === void 0 ? 'production' : _b,
secretInfo = _a.secretInfo,
// 处理数据、画图参数
eventMap = _a.eventMap,
tableHeaderMap = _a.tableHeaderMap;
return __awaiter(this, void 0, void 0, function () {
var startTime, endTime, preStartTime, preEndTime, headerDate, sortKeyList, data, preData, parsedData, parsedPreData, tableData, img;
return __generator(this, function (_c) {
switch (_c.label) {
case 0:
startTime = getSomeDayStartTimeStamp(date);
endTime = getSomeDayEndTimeStamp(date);
preStartTime = getSomeDayStartTimeStamp(new Date(date).getTime() - 1 * 24 * 60 * 60 * 1000);
preEndTime = getSomeDayEndTimeStamp(new Date(date).getTime() - 1 * 24 * 60 * 60 * 1000);
headerDate = timeStampFormat(new Date(date).getTime(), 'yyyy-MM-dd');
sortKeyList = Object.keys(tableHeaderMap);
if (!sortKeyList.length) {
return [2 /*return*/];
}
return [4 /*yield*/, getMultiCustomEventData({
startTime: startTime,
endTime: endTime,
projectIdMap: projectIdMap,
env: env,
secretInfo: secretInfo
})];
case 1:
data = _c.sent();
return [4 /*yield*/, getMultiCustomEventData({
startTime: preStartTime,
endTime: preEndTime,
projectIdMap: projectIdMap,
env: env,
secretInfo: secretInfo
})];
case 2:
preData = _c.sent();
if (!data) return [2 /*return*/];
if (!preData) return [2 /*return*/];
parsedData = parseMultiCustomEvent({
eventDataMap: data,
eventMap: eventMap,
projectIdMap: projectIdMap,
sortKeyList: sortKeyList
});
parsedPreData = parseMultiCustomEvent({
eventDataMap: preData,
eventMap: eventMap,
projectIdMap: projectIdMap,
sortKeyList: sortKeyList
});
compareTwoList(parsedData, parsedPreData, 'ProjectName');
tableData = getMaxAndMinIdx(parsedData);
img = '';
try {
img = createCanvasTable({
data: tableData,
headers: getTableHeaders(tableData, tableHeaderMap),
title: "\u62C9\u8D77\u6E38\u620F\u6570\u636E\u6C47\u603B ".concat(headerDate),
cellWidthList: Object.values(tableHeaderMap).map(function (item) {
return item.tableWidth || 65;
})
});
} catch (err) {
console.log('[genCustomEventImg.createCanvasTable.error]', err);
}
return [2 /*return*/, img];
}
});
});
}
/**
* 获取自定义事件图片并发送
* @param {object} options 配置信息
* @returns {string} 图片url
* @example
*
* const requestMultiImgDate = Date.now() - 1 * 24 * 60 * 60 * 1000;
*
* const tamGroupIdList = [1, 2, 3];
*
* const eventProjectMap = {
* 62659: {
* name: 'aaaaa',
* },
* 57706: {
* name: 'bbbbb',
* extraProjectId: 66379,
* },
* };
*
* const eventMap = {
* WX_SUC: {
* // 总和
* type: 'SUMMARY',
* target: ['ENTER_GAME_WX_SUC', 'LAUNCH_GAME_SUC_WX'],
* },
* WX_FAIL: {
* // 总和
* type: 'SUMMARY',
* target: ['ENTER_GAME_WX_FAIL', 'LAUNCH_GAME_FAIL_WX'],
* },
* };
*
* const eventTableHeaderMap = {
* ProjectName: {
* name: '项目名称',
* tableWidth: 95,
* },
* ALL_SUMMARY: {
* name: '拉起总数',
* tableWidth: 65,
* },
* };
*
* genCustomEventImgAndSendRobot({
* date: requestLaunchGameDate,
* secretInfo: {
* getPwdCode,
* encrypt,
* apiKey: process.env.AEGIS_APP_KEY,
* loginName: 'lee',
* },
* projectIdMap: eventProjectMap,
* eventMap,
* tableHeaderMap: eventTableHeaderMap,
* webhookUrl: tamRobotWebhook,
* chatId: tamRobotChatId,
* });
*
*/
function genCustomEventImgAndSendRobot(_a) {
var date = _a.date,
projectIdMap = _a.projectIdMap,
_b = _a.env,
env = _b === void 0 ? 'production' : _b,
secretInfo = _a.secretInfo,
eventMap = _a.eventMap,
tableHeaderMap = _a.tableHeaderMap,
webhookUrl = _a.webhookUrl,
chatId = _a.chatId;
return __awaiter(this, void 0, void 0, function () {
var img;
return __generator(this, function (_c) {
switch (_c.label) {
case 0:
return [4 /*yield*/, genCustomEventImg({
date: date,
projectIdMap: projectIdMap,
env: env,
secretInfo: secretInfo,
eventMap: eventMap,
tableHeaderMap: tableHeaderMap
})];
case 1:
img = _c.sent();
if (!img || !chatId) {
return [2 /*return*/];
}
return [4 /*yield*/, batchSendWxRobotBase64Img({
img: img,
webhookUrl: webhookUrl,
chatId: chatId
})];
case 2:
_c.sent();
return [2 /*return*/];
}
});
});
}
export { genCustomEventImg, genCustomEventImgAndSendRobot };