UNPKG

t-comm

Version:

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

263 lines (260 loc) 7.57 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 { 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 };