import Window from '../core/Window' import DBService from '../db/DBService' import logger from '../logger/Logger' import BaseEvent from '../core/BaseEvent' // 监听每小时计算连接用户数事件 export default class HourlyConnectUserCountEvent extends BaseEvent { async callback(window: Window) { try { let content = window.getResult() let data: string[][] = [] for (const key in content) { // "2019-09-03|||11|||cc.shadowfox.client|||1.6.52|||googleplay|||Android|||美国|||6caba30b2726a05492065e957b311b24|||4611d95314a1b0ec": { // "established": "1", // "state": "sfox-cli-established", // "createTimeStamp": "1567479725", // "allocCount": 0, // "allocSuccessCount": 0, // "error": "" // } 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 sessionId = fields[7] let userName = fields[8] let value = content[key] let established = value["established"] let state = value["state"] let error = value["error"] let allocCount = value["allocCount"] let allocSuccessCount = value["allocSuccessCount"] data.push([pt, hour, pkgName, appVersion, channelName, platform, countryZh, sessionId, userName, state, established, error, allocCount, allocSuccessCount]) } let dbService = new DBService() let sql = "INSERT INTO hourly_connect_user (pt, hour, pkgName, appVersion, channelName, platform, countryZh, sessionId, userName, state, established, error, allocCount, allocSuccessCount) VALUES ?" let { err } = await dbService.insert(sql, [data]) if (err) { logger.info(err) } else { logger.info(`插入每小时连接用户数据 ${data.length}`) } } catch (error) { logger.info(error) } } }