觉醒时刻
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.
 
 
 

574 lines
17 KiB

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",
}
export default class GameReport{
public static loadingTime = 0;
public static isSendLoadingTime = false;
public static loadingFinishTime = 0
public static GamePlatform = "OTHER";
public static GameVersion = "1.0.0";
public static GameName = "BYYDW"; //手动配置
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;
public static stayTime = 0;
//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)=>{
let tmpUserid = uid;//ZYSDK.ZYSDK.getUserId()
console.warn(tmpUserid, '获取微信userid++++======')
this.SetUserUuid(tmpUserid)
})
return false;
}else{
this.getOpenUserId()
console.log('没有useruuid重新获取useruuid')
return false
}
}
if(this.OperateName == 'default'){
//重新获取useruuid
console.log('OperateName需要设置')
return false
}
return true
}
public static ReportSend(OperType, OperRemake,OperTypeResult){
return
}
public static ADReport(OperRemake:string,OperTypeResult=1, OperateName?){
if(OperateName){
this.OperateName = OperateName;
}
this.ReportSend(OPER_TYPE.AD, OperRemake, OperTypeResult)
}
public static LoadTimeReport(OperRemake:number, OperateName?){
if(OperateName){
this.OperateName = OperateName;
}
if(this.isSendLoadingTime){
return
}
console.log('send LoadTime')
this.isSendLoadingTime = true
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 = OUTTYPE.FANHUI, 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 = ENTERTYPE.XUANGUAN, 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;
}
this.onHideState = onHideState
let OperTypeResult = 1
this.ReportSend(OPER_TYPE.OnHide, OperRemake, OperTypeResult)
}
public static ReportContent(content,typeInput?){
return
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;
}
console.log('ReportContent+++')
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);
}else{
//
console.error('postReqData为空重新请求')
GameReport.init()
}
}
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 = 'BYYDW_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 res = {data:null}
res.data = {"Id": 28, "GameName": "BYYDW_WX", "GameVersion": "v2.0.1", "GamePlatform": "WECHAT", "GameConfig": "{\"Data\":[],\"Gailv\":100,\"KeyList\":[{\"Type\":[\"ALL\"],\"Enable\":\"1\"}],\"IsCrypto\":\"0\"}", "GameDatabase": "gamedatabase", "GameTable": "gamecontent", "GameReportUrl": "https://report1.ioe-times.com/api/reportcontent", "UpdateTime": "2023-10-23 15:16:32"}
let tmpRes = res.data
this.ReportConfig = JSON.parse(tmpRes.GameConfig);
this.ReportUrl = tmpRes.GameReportUrl;
this.GameTable = tmpRes.GameTable;
this.isReport = true;
this.AllowGamePlatform = tmpRes.GamePlatform;
this.initPostReq(this.ReportUrl);
this.initOtherPlatformUser();
GameReport.SetCurOperateName("游戏登录");
console.log('游戏登录')
// HttpUnit.sendHttpUrl_custom(this.getReqData,"{}",(res)=>{
// if (res){
// console.log(res.data, '打点基础配置请求完成')
// 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)
// this.isReport = true;
// this.AllowGamePlatform = tmpRes.GamePlatform;
// this.initPostReq(this.ReportUrl);
// this.initOtherPlatformUser();
// GameReport.SetCurOperateName("游戏登录");
// }
// }
// else{
// console.log("false");
// }
// },(err)=>{
// console.log(err);
// },headers);
}
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 setStayTime(stayTime){
this.stayTime = stayTime
}
public static getStayTime(){
return this.stayTime
}
public static getOpenUserId(){
return
if(!AppPlatform.is_TT_GAME_custom()){
//测试
if(AppPlatform.is_WECHAT_GAME_custom()){
let userid = User.getUserId()
if(userid == ''){
}else{
ZYSDK.ZYSDK.getUserId().then((uid)=>{
let tmpUserid = uid;//ZYSDK.ZYSDK.getUserId()
console.warn(tmpUserid, '获取微信userid++++======')
this.SetUserUuid(tmpUserid)
User.setUserId(tmpUserid)
})
}
}else{
}
}else{
if(AppPlatform.is_TT_GAME_custom()){
let onFail = ()=>{
}
let onSuccess = (response)=>{
console.log(response, '获取userID+++=====')
if(response.msg == 'OK'){
this.SetUserUuid(response.openid)
User.setUserId(response.openid)
if(this.loadingFinishTime-this.loadingTime>0 ){
GameReport.LoadTimeReport((this.loadingFinishTime-this.loadingTime)/1000)
}
}
}
let userid = User.getUserId()
if(userid == ''){
//没有userid获取userid
console.log('没有code获取code11')
let appsuccesscall = (code)=>{
console.log(code, '没有code获取code22')
CommonDefine.getLoginInfo(code, onFail, onSuccess)
}
let appfailcall = ()=>{
}
AppPlatform.loginPlatform_custom( appsuccesscall, appfailcall)
}else{
console.log(userid, '已经有了userid report++')
this.SetUserUuid(userid)
if (!this.isReport){
return;
}
if(this.loadingFinishTime-this.loadingTime>0){
GameReport.LoadTimeReport((this.loadingFinishTime-this.loadingTime)/1000)
}
}
}else{
let userid = this.getTempUserId()
this.SetUserUuid(userid)
}
}
}
public static SetCurGame(OperateName){
this.OperateName = OperateName;
}
public static SetCurOperateName(OperateName){
this.OperateName = OperateName;
}
public static setSubGame(SubGame){
this.SubGame = SubGame;
}
public static setSubGameRemake(SubGameRemake){
this.SubGameRemake = SubGameRemake;
}
public static SetUserUuid(UserUuid){
this.UserUuid = UserUuid;
}
public static getGameVersion(){
return this.GameVersion
}
public static initOtherPlatformUser(){
let tmpUserid = this.getTempUserId()
this.tmpUserid = tmpUserid;
console.log( this.tmpUserid, 'tmpUserid')
//User.setOtherplatformUserid(this.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);
});
}
}