gamelet-pixui-frame
Version:
pixui开发者框架
149 lines • 7.92 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Reporter = void 0;
var rpc_mgr_1 = require("./rpc_mgr");
var Reporter = /** @class */ (function () {
function Reporter() {
}
// 上报统计数据
// @param iModule 上报模块 1-活动中心 2-公告中心 3-整体 4-图片公告 5-幸运星 6-拍脸
// @param iChannelId 公告中心-频道id,活动中心-固定1
// @param iType 上报类型 1-展现 2-点击 3-跳转 4-打开 5-关闭 6-初始化 7-主界面上点击详情 8-购买点击 9-左按钮点击 10-右按钮点击 11-详情界面上点击购买等
// @param iActId 活动中心-活动id,公告中心-公告id
// @param iJumpType 跳转类型 3-图片公告 1-前往按钮 2-富文本内容
// @param sJumpUrl 跳转URL 当公告中心时有跳转链接时上报
// @param sRecommendId 推荐接口上报id,上报时填入上报协议,用来数据中心推荐效果统计
// @param iChangjingId 触发场景id,后台填写固定值上报,客户端不用填写
// @param iGoodsId 礼包ID,即数据中心为用户推荐的道具ID
// @param iCountId 物品购买数量,如果数量大于1请填写此值,如果不填写后台默认该值为1
// @param iFee 购买金额
// @param iCurrencyType 货币种类 1-游戏币,2-人民币
// @param iActStyle 活动类型 1-单按钮活动,3-多按钮活动,4-静态展示页面,无AMS活动号, 5-幸运星活动,6-新近玩家活动,7-老手回流活动,9-兑换活动
// @param iFlowId 活动流程号
// @param sExtendList 扩展字段 数组每个成员为name/value形式,例如:{{"name":"reserve0","value":"0"}, {"name":"reserve1","value":"1"}, ...},
// name和value的值都是字符串类型。默认支持10个扩展字段(reserve0~reserve9),需按顺序填写,多余的字段会被忽略,不会落在表里。
// 注意:1.value字段必须为string类型;2.如果扩展字段为空的话,默认不传参数即可,不要传空table
Reporter.reportStats = function (usredata, iModule, iChannelID, iType, iActID, iJumpType, sJumpURL, sRecommendID, sChangjingID, iGoodsID, iCountID, iFee, iCurrencyType, iActStyle, iFlowID, sExtendList) {
var stats = {};
stats["str_open_id"] = usredata.openID;
stats["str_appid"] = usredata.appID;
stats["str_sdkversion"] = usredata.sdkVersion;
stats["partition"] = usredata.partition;
stats["sroleid"] = usredata.roleID;
stats["str_phoneid"] = "";
stats["uint_clientip"] = 0;
stats["uint_ostype"] = parseInt(usredata.platID);
stats["recommend_id"] = sRecommendID.toString();
stats["changjing_id"] = sChangjingID.toString();
stats["goods_id"] = iGoodsID.toString();
stats["uint_module"] = iModule;
stats["uint_channel_id"] = iChannelID;
stats["uint_type"] = iType;
stats["uint_act_id"] = iActID;
stats["uint_timestamp"] = Math.floor(Date.now() / 1000);
stats["uint_jump_type"] = iJumpType;
stats["str_jump_url"] = sJumpURL;
stats["uint_count"] = iCountID;
stats["uint_fee"] = iFee;
stats["currency_type"] = iCurrencyType;
stats["act_style"] = iActStyle;
stats["flow_id"] = iFlowID;
if (sExtendList != undefined) {
stats["extend"] = sExtendList;
}
var strstats = JSON.stringify(stats);
rpc_mgr_1.RPCMgr.getInstance().callSDK("ATMSocket.getInstance().reportStats", strstats);
};
Reporter.reportStatsV2 = function (usredata, iModule, iChannelID, iType, iActID, iJumpType, sJumpURL, sRecommendID, sChangjingID, iGoodsID, iCountID, iFee, iCurrencyType, iActStyle, iFlowID, sExtendList) {
var stats = {};
stats["str_open_id"] = usredata.openID;
stats["str_appid"] = usredata.appID;
stats["str_sdkversion"] = usredata.sdkVersion;
stats["partition"] = usredata.partition;
stats["sroleid"] = usredata.roleID;
stats["str_phoneid"] = "";
stats["uint_clientip"] = 0;
stats["uint_ostype"] = parseInt(usredata.platID);
stats["recommend_id"] = sRecommendID.toString();
stats["changjing_id"] = sChangjingID.toString();
stats["goods_id"] = iGoodsID.toString();
stats["uint_module"] = iModule;
stats["uint_channel_id"] = iChannelID;
stats["uint_type"] = iType;
stats["uint_act_id"] = iActID;
stats["uint_timestamp"] = Date.now();
stats["uint_jump_type"] = iJumpType;
stats["str_jump_url"] = sJumpURL;
stats["uint_count"] = iCountID;
stats["uint_fee"] = iFee;
stats["currency_type"] = iCurrencyType;
stats["act_style"] = iActStyle;
stats["flow_id"] = iFlowID;
if (sExtendList != undefined) {
stats["extend"] = sExtendList;
}
var strstats = JSON.stringify(stats);
rpc_mgr_1.RPCMgr.getInstance().callSDK("ReportMgr.getInstance().reportStats", strstats);
};
Reporter.reportMonitorV2 = function (tag, content, itype, appId, appPage, appVersion, userData, isProductEnv) {
appPage = appPage || 'index';
var reportObj = this.GetReportObject(content, tag, itype, appId, appPage, appVersion, userData, isProductEnv);
rpc_mgr_1.RPCMgr.getInstance().callSDK("ReportMgr.getInstance().reportMonitor", JSON.stringify(reportObj), content, tag, itype);
};
Reporter.getTdmReportTags = function (tag, type, appId, appPage, appVersion, userData, isProductEnv) {
var tags = {};
tags["span.kind"] = "client";
tags["gopen_id"] = userData.openID;
tags["game_appid"] = userData.appID;
tags["service_type"] = userData.serviceType;
tags["env"] = isProductEnv ? "1" : "2";
tags["sdk_ver"] = userData.sdkVersion;
tags["plat_id"] = userData.platID;
tags["area_id"] = userData.area;
tags["partition"] = userData.partition;
tags["role_id"] = userData.roleID;
tags["account_type"] = userData.accountType;
tags["tnm2_id"] = tag;
tags["tnm2_type"] = type.toString();
tags["s_ret_code"] = "0";
tags["open_appid"] = appId.toString();
tags["app_ver"] = appVersion;
tags["app_page"] = appPage;
return JSON.stringify(tags);
};
Reporter.getTdmReportLogs = function (content, timestamp) {
var logs = new Array();
var log = {};
log["st"] = timestamp;
log["event"] = "info";
log["message"] = content;
log["stack"] = "";
log["error.kind"] = "";
logs.push(log);
return JSON.stringify(logs);
};
// 获取上报信息,可供上报到 TDM / INTL. reportType 是保留字段,用于未来可能区分TDM / INTL的情况
Reporter.GetReportObject = function (content, tag, type, appId, appPage, appVersion, userData, isProductEnv) {
var timestamp = (Date.now() * 1000).toString();
var reportInfo = {
"s_tid": "",
"s_sid": "",
"s_op": encodeURIComponent("tnm2_" + tag),
"s_st": encodeURIComponent(timestamp),
"s_dur": "0",
"s_tags": encodeURIComponent(this.getTdmReportTags(tag, type, appId, appPage, appVersion, userData, isProductEnv)),
"s_logs": encodeURIComponent(this.getTdmReportLogs(content, timestamp)),
"s_refs": "",
"s_pdr_ext1": "",
"s_pdr_ext2": "",
"s_pdr_ext3": "",
"s_pdr_ext4": "",
"s_pdr_ext5": "",
"s_pdr_ext6": "",
};
return reportInfo;
};
return Reporter;
}());
exports.Reporter = Reporter;
//# sourceMappingURL=reporter.js.map