You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
618 lines
18 KiB
618 lines
18 KiB
4 weeks ago
|
|
||
|
import Common5 from "../../Platform/th/Common5";
|
||
|
import CommonDefine from "../../Platform/th/CommonDefine";
|
||
|
|
||
|
import HttpUnit from "../NetWork/HttpUnit";
|
||
|
import {requestData} from "../NetWork/HttpUnit";
|
||
|
import User from "../User/User";
|
||
|
import AppPlatform from "../Util/AppPlatform";
|
||
|
import { DateUtils } from "../Util/DateUtils";
|
||
|
|
||
|
/*
|
||
|
打点数据类型
|
||
|
广告:AD
|
||
|
加载时长:LoadTime
|
||
|
停留时长:StayTime
|
||
|
切换后台:OnHide
|
||
|
普通按钮合集:Btns
|
||
|
离开当前界面:Out
|
||
|
进入界面:Enter
|
||
|
*/
|
||
|
export enum ENTERTYPE {
|
||
|
XUANGUAN,
|
||
|
TONGGUAN,
|
||
|
TIAOZHUAN,
|
||
|
CHONGWAN,
|
||
|
}
|
||
|
export enum OUTTYPE {
|
||
|
CHENGGONG,
|
||
|
TIAOZHUAN,
|
||
|
FANHUI,
|
||
|
SHIBAI,
|
||
|
}
|
||
|
export const OPER_TYPE = {
|
||
|
AD:"AD",
|
||
|
LoadTime:"LoadTime",
|
||
|
StayTime:"StayTime",
|
||
|
OnHide:"OnHide",
|
||
|
Out:"Out",
|
||
|
Enter:"Enter",
|
||
|
Btns:"Btns",
|
||
|
}
|
||
|
const { ccclass, property } = cc._decorator;
|
||
|
@ccclass
|
||
|
export default class GameReport{
|
||
|
|
||
|
public static loadingTime = 0;
|
||
|
public static loadingFinishTime = 0
|
||
|
public static GamePlatform = "OTHER";
|
||
|
public static GameVersion = "1.0.0";
|
||
|
|
||
|
public static GameName = "WDZCRJNEW"; //手动配置
|
||
|
|
||
|
public static UserUuid = null;
|
||
|
public static SubGame = 'default';
|
||
|
public static SubGameRemake = 'default';
|
||
|
public static OperType:string = OPER_TYPE.AD;
|
||
|
|
||
|
public static OperRemake:string|number = null;
|
||
|
//OperRemake
|
||
|
/*
|
||
|
操作备注OperType
|
||
|
OperType==LoadTime 必填--秒 例如:30
|
||
|
OperType==StayTime 必填--秒 例如:3000
|
||
|
OperType==OUT 必填 例如:重玩离开
|
||
|
OperType==ENTER 必填 例如:重玩进入
|
||
|
OperType==onHide 选择填 例如:hide
|
||
|
OperType==BTNS 选择填 例如:普通点击
|
||
|
OperType==AD 选择填 例如:钓鱼
|
||
|
*/
|
||
|
|
||
|
|
||
|
public static OperTypeResult:number = 1;
|
||
|
|
||
|
public static onHideState = {
|
||
|
gold:0, //金币
|
||
|
strength:0, //体力
|
||
|
sendCardTimes:0, //发牌次数
|
||
|
unlockLevel:0, //已经解锁关卡
|
||
|
removeTimes:0, //消除次数
|
||
|
default1:0, //默认字段1
|
||
|
default2:0, //默认字段2
|
||
|
default3:0 //默认字段3
|
||
|
}
|
||
|
public static OperateName = 'default';
|
||
|
public static CustomClicks = '';
|
||
|
|
||
|
//
|
||
|
public static tmpUserid = "";
|
||
|
public static PostTime = '';
|
||
|
public static AllowGamePlatform = "OTHER";
|
||
|
public static ReportConfig = null;
|
||
|
public static ReportUrl = null;
|
||
|
public static getReqData = null;
|
||
|
public static postReqData = null;
|
||
|
public static GameTable = "";
|
||
|
|
||
|
public static isReport = false;
|
||
|
public static isRequest = false;
|
||
|
public static checkSendData(){
|
||
|
if(!this.UserUuid){
|
||
|
//重新获取useruuid
|
||
|
if(AppPlatform.is_WECHAT_GAME_custom()){
|
||
|
ZYSDK.ZYSDK.getUserId().then((uid)=>{
|
||
|
console.log('zyzy report getuserid 11============================')
|
||
|
let tmpUserid = uid;//ZYSDK.ZYSDK.getUserId()
|
||
|
//this.getTempUserId()
|
||
|
console.warn(tmpUserid, '获取微信userid++++======')
|
||
|
this.SetUserUuid(tmpUserid)
|
||
|
})
|
||
|
|
||
|
return false;
|
||
|
// if(tmpUserid){
|
||
|
// return true
|
||
|
// }else{
|
||
|
// return false
|
||
|
// }
|
||
|
}else{
|
||
|
|
||
|
if(this.isRequest){
|
||
|
return
|
||
|
}
|
||
|
this.isRequest = true
|
||
|
let successcall = (code)=>{
|
||
|
CommonDefine.loginCode = code;
|
||
|
this.getUserId()
|
||
|
this.isRequest = false
|
||
|
}
|
||
|
|
||
|
let failcall = ()=>{
|
||
|
this.isRequest = false
|
||
|
}
|
||
|
AppPlatform.loginPlatform_custom( successcall, failcall)
|
||
|
console.log('没有useruuid重新获取useruuid')
|
||
|
return false
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
if(this.OperateName == 'default'){
|
||
|
//重新获取useruuid
|
||
|
console.log('OperateName需要设置')
|
||
|
return false
|
||
|
}
|
||
|
|
||
|
return true
|
||
|
}
|
||
|
|
||
|
//游戏加载
|
||
|
public static FirstInitGameTimeReport(time:number){
|
||
|
GameReport.LoadTimeReport(time, '游戏登录')
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
//关卡加载
|
||
|
|
||
|
|
||
|
|
||
|
public static ReportSend(OperType, OperRemake,OperTypeResult){
|
||
|
return
|
||
|
let isCheck = this.checkSendData()
|
||
|
if(!isCheck){
|
||
|
return
|
||
|
}
|
||
|
let content = {
|
||
|
"GamePlatform": this.GamePlatform, //登录获取
|
||
|
"GameVersion":this.GameVersion, //登录获取
|
||
|
"GameName":this.GameName, //手动配置
|
||
|
"UserUuid":this.UserUuid, //需要添加代码登录获取
|
||
|
"SubGame":this.SubGame, //setSubGame
|
||
|
"SubGameRemake":this.SubGameRemake,//setSubGameRemake
|
||
|
"OperType":OperType,//
|
||
|
"OperRemake":OperRemake, //当前操作的备注 例如:钓鱼
|
||
|
"OperTypeResult":OperTypeResult, //0或者1
|
||
|
"onHideState":this.onHideState, //如果有需要传参数请设置SetOnHideState
|
||
|
"OperateName":this.OperateName, //请设置SetCurOperateName
|
||
|
"TempUserID":this.tmpUserid,
|
||
|
"CustomClicks":'',
|
||
|
}
|
||
|
|
||
|
if(OperType == OPER_TYPE.Btns){
|
||
|
content.CustomClicks = this.CustomClicks
|
||
|
}else{
|
||
|
content.CustomClicks = ''
|
||
|
}
|
||
|
console.log('打点数据++ReportSend====',content.OperateName+content.OperType+content.OperRemake)
|
||
|
// console.log('打点数据++ReportSend=json===',JSON.stringify(content))
|
||
|
|
||
|
this.ReportContent(JSON.stringify(content))
|
||
|
if(OperType == OPER_TYPE.Btns){
|
||
|
this.CustomClicks = ''
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
public static ADReport(OperRemake:string,OperateName?,OperTypeResult=1){
|
||
|
if(OperateName){
|
||
|
|
||
|
this.OperateName = OperateName;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
this.ReportSend(OPER_TYPE.AD, OperRemake, OperTypeResult)
|
||
|
}
|
||
|
|
||
|
public static LoadTimeReport(OperRemake:number, OperateName?){
|
||
|
if(OperateName){
|
||
|
|
||
|
this.OperateName = OperateName;
|
||
|
}
|
||
|
|
||
|
|
||
|
let OperTypeResult = 1
|
||
|
this.ReportSend(OPER_TYPE.LoadTime, OperRemake, OperTypeResult)
|
||
|
}
|
||
|
|
||
|
public static StayTimeReport(OperRemake:number, OperateName?){
|
||
|
if(OperateName){
|
||
|
|
||
|
this.OperateName = OperateName;
|
||
|
}
|
||
|
|
||
|
|
||
|
let OperTypeResult = 1
|
||
|
this.ReportSend(OPER_TYPE.StayTime, OperRemake, OperTypeResult)
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
public static OUTReport(enterType:OUTTYPE, OperateName?){
|
||
|
//OperRemake 离开备注
|
||
|
let OperRemake = '返回离开'
|
||
|
if(enterType == OUTTYPE.FANHUI){
|
||
|
OperRemake = '返回离开'
|
||
|
}else if(enterType == OUTTYPE.CHENGGONG){
|
||
|
OperRemake = '成功离开'
|
||
|
}else if(enterType == OUTTYPE.TIAOZHUAN){
|
||
|
OperRemake = '跳转离开'
|
||
|
}else if(enterType == OUTTYPE.SHIBAI){
|
||
|
OperRemake = '失败离开'
|
||
|
}
|
||
|
|
||
|
|
||
|
if(OperateName){
|
||
|
|
||
|
this.OperateName = OperateName;
|
||
|
}
|
||
|
this.checkSendBtnsReport()
|
||
|
|
||
|
|
||
|
let OperTypeResult = 1
|
||
|
this.ReportSend(OPER_TYPE.Out, OperRemake, OperTypeResult)
|
||
|
|
||
|
}
|
||
|
|
||
|
public static EnterReport(enterType:ENTERTYPE, OperateName?){
|
||
|
//OperRemake进入备注
|
||
|
let OperRemake = '选关'
|
||
|
if(enterType == ENTERTYPE.TIAOZHUAN){
|
||
|
OperRemake = '跳转'
|
||
|
}else if(enterType == ENTERTYPE.XUANGUAN){
|
||
|
OperRemake = '选关'
|
||
|
}else if(enterType == ENTERTYPE.TONGGUAN){
|
||
|
OperRemake = '通关'
|
||
|
}else if(enterType == ENTERTYPE.CHONGWAN){
|
||
|
OperRemake = '重玩'
|
||
|
}
|
||
|
|
||
|
|
||
|
if(OperateName){
|
||
|
|
||
|
this.OperateName = OperateName;
|
||
|
}
|
||
|
|
||
|
|
||
|
let OperTypeResult = 1
|
||
|
this.ReportSend(OPER_TYPE.Enter, OperRemake, OperTypeResult)
|
||
|
|
||
|
}
|
||
|
|
||
|
public static BtnsReport( CustomClicks:string, OperRemake ='普通按钮点击集合', OperateName?){
|
||
|
this.CustomClicks = this.CustomClicks+CustomClicks+','
|
||
|
|
||
|
let arr1=this.CustomClicks.split(",");
|
||
|
|
||
|
if(arr1.length>=13){
|
||
|
if(OperateName){
|
||
|
this.OperateName = OperateName;
|
||
|
}
|
||
|
let OperTypeResult = 1
|
||
|
|
||
|
this.ReportSend(OPER_TYPE.Btns, OperRemake, OperTypeResult)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public static checkSendBtnsReport(){
|
||
|
let OperRemake ='普通按钮点击集合'
|
||
|
if(this.CustomClicks.length==0 ){
|
||
|
|
||
|
}else{
|
||
|
let OperTypeResult = 1
|
||
|
this.ReportSend(OPER_TYPE.Btns, OperRemake, OperTypeResult)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
public static OnHideReport(OperRemake, OperateName? , gold=0, strength=0, sendCardTimes=0, unlockLevel=0, removeTimes=0,default1=0, default2=0,default3=0){
|
||
|
if(OperateName){
|
||
|
|
||
|
this.OperateName = OperateName;
|
||
|
}
|
||
|
|
||
|
this.onHideState.gold = gold
|
||
|
this.onHideState.strength = strength
|
||
|
this.onHideState.sendCardTimes = sendCardTimes
|
||
|
this.onHideState.unlockLevel = unlockLevel
|
||
|
this.onHideState.removeTimes = removeTimes
|
||
|
this.onHideState.default1 = default1
|
||
|
this.onHideState.default2 = default2
|
||
|
this.onHideState.default3 = default3
|
||
|
|
||
|
|
||
|
|
||
|
let OperTypeResult = 1
|
||
|
this.ReportSend(OPER_TYPE.OnHide, OperRemake, OperTypeResult)
|
||
|
}
|
||
|
|
||
|
public static OnHideReport2(OperRemake, onHideState, OperateName?){
|
||
|
if(OperateName){
|
||
|
|
||
|
this.OperateName = OperateName;
|
||
|
}
|
||
|
|
||
|
|
||
|
let OperTypeResult = 1
|
||
|
this.ReportSend(OPER_TYPE.OnHide, OperRemake, OperTypeResult)
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
public static ReportContent(content,typeInput?){
|
||
|
|
||
|
console.log('this.isReport+++++++++=====111',this.isReport)
|
||
|
if (!this.isReport){
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
console.log('this.isReport+++++++++====222',this.isReport)
|
||
|
|
||
|
if (null != this.postReqData){
|
||
|
if (!(this.AllowGamePlatform.indexOf(this.GamePlatform) > -1)){
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
let headers = {};
|
||
|
let type = "";
|
||
|
let enable = "0";
|
||
|
let find = false;
|
||
|
|
||
|
type = this.OperateName;
|
||
|
if (typeInput){
|
||
|
type = typeInput;
|
||
|
}
|
||
|
if (this.ReportConfig.KeyList[0].Type[0] == "ALL"){
|
||
|
enable = "1";
|
||
|
}
|
||
|
else {
|
||
|
if (type != ""){
|
||
|
for (let i = 0; i < this.ReportConfig.KeyList.length; i++){
|
||
|
if (this.ReportConfig.KeyList[i].Type.length>0){
|
||
|
for (let j = 0; j < this.ReportConfig.KeyList[i].Type.length; j++){
|
||
|
if (type == this.ReportConfig.KeyList[i].Type[j]){
|
||
|
enable = "1";
|
||
|
find = true;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
if (find){
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
else{
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
if (enable == "0"){
|
||
|
return;
|
||
|
}
|
||
|
let data = {
|
||
|
"GameTable":this.GameTable,
|
||
|
"Content":content,
|
||
|
"PostTime":DateUtils.getNowTime_custom()
|
||
|
}
|
||
|
// console.log(data);
|
||
|
HttpUnit.sendHttpUrl_custom(this.postReqData,JSON.stringify(data),(res)=>{
|
||
|
if (res){
|
||
|
console.log("success");
|
||
|
}
|
||
|
else{
|
||
|
console.log("false");
|
||
|
}
|
||
|
},(err)=>{
|
||
|
console.log(err);
|
||
|
},headers);
|
||
|
}
|
||
|
}
|
||
|
public static init(){
|
||
|
return
|
||
|
if (AppPlatform.is_TT_GAME_custom()){
|
||
|
this.GamePlatform = "TT";
|
||
|
let tt =window["tt"];
|
||
|
const envInfo = tt.getEnvInfoSync();
|
||
|
this.GameVersion = envInfo.microapp.mpVersion;
|
||
|
console.warn("GameVersion:", this.GameVersion);
|
||
|
}
|
||
|
else if (AppPlatform.is_WECHAT_GAME_custom()){
|
||
|
this.GamePlatform = "WECHAT";
|
||
|
let wx =window["wx"];
|
||
|
const envInfo = wx.getAccountInfoSync();
|
||
|
this.GameVersion = envInfo.miniProgram.version;
|
||
|
console.warn("GameVersion:", this.GameVersion);
|
||
|
|
||
|
GameReport.GameName = 'WDZCRJNEW_WX'
|
||
|
}
|
||
|
else{
|
||
|
this.GamePlatform = "OTHER";
|
||
|
}
|
||
|
// console.log("PlatForm:",this.GamePlatform);
|
||
|
this.getReqData = new requestData();
|
||
|
this.getReqData.meth_custom = "GET";
|
||
|
|
||
|
this.getReqData.url_custom = "https://report1.ioe-times.com/api/getconfig?GameName="+this.GameName+"&GamePlatform="+this.GamePlatform;
|
||
|
this.getReqData.onSuccess_custom = (res)=>{
|
||
|
// console.log(res);
|
||
|
}
|
||
|
let headers = {};
|
||
|
let time = "time=" + String(Date.now());
|
||
|
// headers["Access-Control-Allow-Origin"] = "*";
|
||
|
// headers["Content-Type"] = "application/jsonp";
|
||
|
// headers["sign"] = AesTools.encrypt_custom(time);
|
||
|
HttpUnit.sendHttpUrl_custom(this.getReqData,"{}",(res)=>{
|
||
|
if (res){
|
||
|
|
||
|
console.log('打点基础配置请求完成')
|
||
|
if(res.data && res.data!=''){
|
||
|
let tmpRes = JSON.parse(res.data);
|
||
|
this.ReportConfig = JSON.parse(tmpRes.GameConfig);
|
||
|
this.ReportUrl = tmpRes.GameReportUrl;
|
||
|
this.GameTable = tmpRes.GameTable;
|
||
|
let Gailv = this.ReportConfig.Gailv;
|
||
|
|
||
|
console.log('打点基础配置请求完成',Gailv)
|
||
|
|
||
|
if (Common5.getRandomNum(0,100) <= Gailv){
|
||
|
this.isReport = true;
|
||
|
}
|
||
|
this.AllowGamePlatform = tmpRes.GamePlatform;
|
||
|
|
||
|
this.initPostReq(this.ReportUrl);
|
||
|
this.initOtherPlatformUser();
|
||
|
GameReport.SetCurOperateName("游戏登录");
|
||
|
if(this.loadingFinishTime-this.loadingTime>0){
|
||
|
GameReport.LoadTimeReport((this.loadingFinishTime-this.loadingTime)/1000)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
}
|
||
|
else{
|
||
|
console.log("false");
|
||
|
}
|
||
|
},(err)=>{
|
||
|
console.log(err);
|
||
|
},headers);
|
||
|
|
||
|
|
||
|
//获取userID
|
||
|
// this.getUserId()
|
||
|
}
|
||
|
public static initPostReq(reqUrl){
|
||
|
this.postReqData = new requestData();
|
||
|
this.postReqData.meth_custom = "POST";
|
||
|
this.postReqData.url_custom = reqUrl;
|
||
|
}
|
||
|
|
||
|
|
||
|
public static setLoadingTime(loadingTime){
|
||
|
this.loadingTime = loadingTime
|
||
|
}
|
||
|
|
||
|
public static setLoadingFinishTime(FinishTime){
|
||
|
this.loadingFinishTime = FinishTime
|
||
|
}
|
||
|
|
||
|
|
||
|
public static getLoadingTime(){
|
||
|
return this.loadingTime
|
||
|
}
|
||
|
public static getUserId(){
|
||
|
return
|
||
|
let onFail = ()=>{
|
||
|
|
||
|
}
|
||
|
|
||
|
let onSuccess = (response)=>{
|
||
|
console.log(response, '获取userID+++=====')
|
||
|
if(response.msg == 'OK'){
|
||
|
this.SetUserUuid(response.openid)
|
||
|
User.setUserId(response.openid)
|
||
|
if (!this.isReport){
|
||
|
return;
|
||
|
}
|
||
|
GameReport.LoadTimeReport((this.loadingFinishTime-this.loadingTime)/1000)
|
||
|
}
|
||
|
}
|
||
|
if(!AppPlatform.is_TT_GAME_custom()){
|
||
|
|
||
|
//
|
||
|
if(AppPlatform.is_WECHAT_GAME_custom()){
|
||
|
ZYSDK.ZYSDK.getUserId().then((uid)=>{
|
||
|
console.log('zyzy report getuserid 00============================')
|
||
|
let tmpUserid = uid //ZYSDK.ZYSDK.getUserId()
|
||
|
//this.getTempUserId()
|
||
|
console.warn(tmpUserid, '获取微信userid++++======')
|
||
|
this.SetUserUuid(tmpUserid)
|
||
|
})
|
||
|
}else{
|
||
|
this.SetUserUuid("_000s3U9CckmoiK8inaKu2qohzNujHrbdpaS")
|
||
|
}
|
||
|
|
||
|
}else{
|
||
|
if(AppPlatform.is_TT_GAME_custom()){
|
||
|
let userid = User.getUserId()
|
||
|
|
||
|
console.log(userid,'userid+++zyzy+++++++++++======')
|
||
|
if(userid == ''){
|
||
|
|
||
|
console.log('+++登录++++++zyzy+++++++++++====11==')
|
||
|
|
||
|
if(CommonDefine.loginCode){
|
||
|
|
||
|
console.log('+++登录++++++zyzy+++++++++++====222==')
|
||
|
CommonDefine.getLoginInfo(CommonDefine.loginCode, onFail, onSuccess)
|
||
|
}
|
||
|
}else{
|
||
|
console.log('已经有了zyzyuserid')
|
||
|
|
||
|
this.SetUserUuid(userid)
|
||
|
if (!this.isReport){
|
||
|
return;
|
||
|
}
|
||
|
GameReport.LoadTimeReport((this.loadingFinishTime-this.loadingTime)/1000)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
public static SetCurOperateName(OperateName){
|
||
|
this.OperateName = OperateName;
|
||
|
}
|
||
|
|
||
|
public static setSubGame(SubGame){
|
||
|
this.SubGame = SubGame;
|
||
|
}
|
||
|
|
||
|
public static setSubGameRemake(SubGameRemake){
|
||
|
this.SubGameRemake = SubGameRemake;
|
||
|
}
|
||
|
|
||
|
public static SetCurGame(OperateName){
|
||
|
this.OperateName = OperateName;
|
||
|
}
|
||
|
|
||
|
public static SetUserUuid(UserUuid){
|
||
|
this.UserUuid = UserUuid;
|
||
|
}
|
||
|
|
||
|
public static getGameVersion(){
|
||
|
return this.GameVersion
|
||
|
}
|
||
|
|
||
|
public static initOtherPlatformUser(){
|
||
|
let tmpUserid = this.getTempUserId()
|
||
|
|
||
|
console.log(tmpUserid, 'tmpUserid+++====')
|
||
|
//this.tmpUserid = tmpUserid.toString();
|
||
|
this.tmpUserid = tmpUserid
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
public static SetOnHideState(onHideState){
|
||
|
this.onHideState = onHideState;
|
||
|
}
|
||
|
|
||
|
|
||
|
public static getTempUserId(){
|
||
|
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
|
||
|
var r = Math.random() * 16 | 0,
|
||
|
v = c == 'x' ? r : (r & 0x3 | 0x8);
|
||
|
return v.toString(16);
|
||
|
});
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
}
|