import Window from '../core/Window' import DBService from '../db/DBService' import logger from '../logger/Logger' import BaseEvent from '../core/BaseEvent' // 监听每小时计算连接用户数事件 export default class HourlyMinerConnectRateEvent extends BaseEvent { async callback(window: Window) { try { let content = window.getResult() let data: string[][] = [] for (const key in content) { // "2019-09-02|||19|||cc.shadowfox.client|||1.6.52|||googleplay|||Android|||阿拉伯联合酋长国": { // "total": 237, // "success": 219, // "haveReturnDataCount": 217, // "errors": {} // } let fields = key.split("|||") let pt = fields[0] let hour = fields[1] let pkgName = fields[2] let appVersion = fields[3] let channelName = fields[4] let platform = fields[5] let countryZh = fields[6] let value = content[key] let totalCount = value["total"] let successCount = value["success"] let haveReturnDataCount = value["haveReturnDataCount"] let errors = JSON.stringify(value["errors"]) data.push([pt, hour, pkgName, appVersion, channelName, platform, countryZh, totalCount, successCount, haveReturnDataCount, errors]) } let dbService = new DBService() let sql = "INSERT INTO hourly_miner_connect_rate (pt, hour, pkgName, appVersion, channelName, platform, countryZh, totalCount, successCount, haveReturnDataCount, errors) VALUES ?" let { err } = await dbService.insert(sql, [data]) if (err) { logger.info(err) } else { logger.info(`插入每小时矿机连接成功率 ${data.length}`) } } catch (error) { logger.info(error) } } }