咸鱼的反击
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.
 
 
 
xianyudefanji/assets/Platform/th/CommonDefine.ts

431 lines
14 KiB

import AppConfig from "../../FrameWork/Config/AppConfig";
import User from "../../FrameWork/User/User";
import AppPlatform from "../../FrameWork/Util/AppPlatform";
import LevelUpManager from "../../Scripts/Manager/LevelUpManager";
import UserManager from "../../Scripts/Manager/UserManager";
import Common5 from "./Common5";
export default class CommonDefine {
public static loginCode: string = '';
//获取登录信息
public static tryIndex = 0;
public static replayGetLoginInfo(onSuccesscall?: Function) {
console.log('replayGetLoginInfo++=')
this.tryIndex++
if (this.tryIndex >= 5) {
return
}
let successcall = (code) => {
CommonDefine.loginCode = code;
let onFail = () => {
}
let onSuccess = (response) => {
console.log(response, '数据+++=====')
if (response.msg == 'OK') {
User.setUserId(response.openid)
if (onSuccesscall) {
onSuccesscall()
}
}
}
CommonDefine.getLoginInfo(CommonDefine.loginCode, onFail, onSuccess)
}
let failcall = () => {
}
AppPlatform.loginPlatform_custom(successcall, failcall)
}
public static getLoginInfo(code, onFail, onSuccess) {
let url = "https://xmb.ioe-times.com/api/getopenid"
let headersTab = {}; //头数据
let xhr: XMLHttpRequest = new XMLHttpRequest();
xhr.timeout = 15000;
//请求过程发生意外的回调
xhr.onerror = function (error) {
onSuccess(null);
console.log("网络请求异常getLoginInfo");
}
//超时
xhr.ontimeout = function (error) {
onSuccess(null);
console.log("网络超时getLoginInfo");
}
xhr.onreadystatechange = function () {
let readyState = xhr.readyState;
let status = xhr.status;
if (readyState === 4) {
let tab = { code: 1 }
if (status >= 200 && status < 300) {
let responseText = xhr.responseText;
const response = JSON.parse(responseText);
console.log(response, 'CommonDefine ++= getLoginInfo data+++++')
onSuccess(response);
} else {
let statusText = xhr.statusText;
console.log("接收内容:" + statusText)
onSuccess(null);
}
}
}
xhr.open("POST", url, true);
if (!headersTab["Content-Type"]) {
headersTab["Content-Type"] = "application/json";
}
if (headersTab) {
for (let key in headersTab) {
xhr.setRequestHeader(key, headersTab[key]);
}
}
console.log(code, '用户code')
let params = { GameName: "TiaoZhanRenShengDianFeng", Anonymous_code: "", "Code": code };
let sendMsg = JSON.stringify(params);
xhr.send(sendMsg);
}
// public static getServerData(onSuccess: Function, onFail: Function) {
// let userid = User.getUserId()
// if (userid == '') {
// cc.log('userid为空号getServerData')
// CommonDefine.replayGetLoginInfo()
// return
// }
// let url = "https://xmb.ioe-times.com/api/getdata"
// let headersTab = {}; //头数据
// let xhr: XMLHttpRequest = new XMLHttpRequest();
// xhr.timeout = 15000;
// //请求过程发生意外的回调
// xhr.onerror = function (error) {
// console.log('网络请求异常getServerData')
// onFail("网络请求异常");
// }
// //超时
// xhr.ontimeout = function (error) {
// console.log('网络超时getServerData')
// onFail("网络超时");
// }
// xhr.onreadystatechange = function () {
// let readyState = xhr.readyState;
// let status = xhr.status;
// if (readyState === 4) {
// let tab = { code: 1 }
// if (status >= 200 && status < 300) {
// // console.log(xhr, 'xhr+++++')
// let responseText = xhr.responseText;
// // console.log(responseText, 'responseText+++++')
// const response = JSON.parse(responseText);
// if (response.flag == 0 && response.data != "") {
// let data = JSON.parse(response.data)
// console.log(data.GameData, 'getServerData+++++')
// onSuccess(data.GameData);
// }
// else {
// onFail(null);
// }
// } else {
// let statusText = xhr.statusText;
// console.log("接收内容:" + statusText)
// onFail(null);
// }
// } else {
// onFail();
// }
// }
// xhr.open("POST", url, true);
// if (!headersTab["Content-Type"]) {
// headersTab["Content-Type"] = "application/json";
// }
// if (headersTab) {
// for (let key in headersTab) {
// xhr.setRequestHeader(key, headersTab[key]);
// }
// }
// let params = { GameID: "TiaoZhanRenShengDianFeng", GameUserID: userid };
// let sendMsg = JSON.stringify(params);
// xhr.send(sendMsg);
// }
// public static setServerData(sendData, onSuccess: Function, onFail: Function) {
// let userid = User.getUserId()
// if (userid == '') {
// CommonDefine.replayGetLoginInfo()
// cc.log('userid为空号setServerData')
// return
// }
// let url = "https://xmb.ioe-times.com/api/setdata"
// let headersTab = {}; //头数据
// let xhr: XMLHttpRequest = new XMLHttpRequest();
// xhr.timeout = 15000;
// //请求过程发生意外的回调
// xhr.onerror = function (error) {
// onFail("网络请求异常");
// }
// //超时
// xhr.ontimeout = function (error) {
// onFail("网络超时");
// }
// xhr.onreadystatechange = function () {
// let readyState = xhr.readyState;
// let status = xhr.status;
// if (readyState === 4) {
// let tab = { code: 1 }
// if (status >= 200 && status < 300) {
// let responseText = xhr.responseText;
// const response = JSON.parse(responseText);
// console.log('setServerData+++++')
// onSuccess(response);
// } else {
// let statusText = xhr.statusText;
// console.log("接收内容:" + statusText)
// onSuccess(null);
// }
// }
// }
// xhr.open("POST", url, true);
// if (!headersTab["Content-Type"]) {
// headersTab["Content-Type"] = "application/json";
// }
// if (headersTab) {
// for (let key in headersTab) {
// xhr.setRequestHeader(key, headersTab[key]);
// }
// }
// let params = { GameID: "TiaoZhanRenShengDianFeng", GameUserID: userid, "GameData": sendData };
// let sendMsg = JSON.stringify(params);
// xhr.send(sendMsg);
// }
public static sendRankData(onSuccess: Function, onFail: Function, isZhouBang: boolean) {
let level = User.getMyLevel()
let chenghao = LevelUpManager.getChengHao()
let userId = User.getUserId()
let headLink = User.getUserLinkHead()
let userName = User.getUserName()
let userNameRandom = User.getUserNameRandom()
let time = new Date().getTime()
let name = ''
if (userName == '') {
if (userNameRandom == '') {
name = ""//假名字
} else {
name = userNameRandom
}
} else {
name = userName
}
if (User.getUserId() == '') {
if (ZYSDK.ZYSDK.getUserId()) {
ZYSDK.ZYSDK.getUserId().then((uid) => {
console.log('uid+++++++++===', uid)
User.setUserId(uid)
console.log('再来一次++++')
})
}
console.log('没有获取到userid,重新获取一次??')
return
}
let url = "https://xx.ioe-times.com/rank/api/v1/rank/setrank"
let headersTab = {}; //头数据
let xhr: XMLHttpRequest = new XMLHttpRequest();
xhr.timeout = 5000;
//请求过程发生意外的回调
xhr.onerror = function (error) {
onFail("网络请求异常");
}
//超时
xhr.ontimeout = function (error) {
onFail("网络超时");
}
xhr.onreadystatechange = function () {
let readyState = xhr.readyState;
let status = xhr.status;
if (readyState === 4) {
let tab = { code: 1 }
if (status >= 200 && status < 300) {
let responseText = xhr.responseText;
const response = JSON.parse(responseText);
console.log(response, 'setServerData11+++++')
onSuccess(response);
} else {
let statusText = xhr.statusText;
console.log("接收内容:" + statusText)
onSuccess(null);
}
}
}
xhr.open("POST", url, true);
if (!headersTab["Content-Type"]) {
headersTab["Content-Type"] = "application/json";
}
if (headersTab) {
for (let key in headersTab) {
xhr.setRequestHeader(key, headersTab[key]);
}
}
if (isZhouBang) {
let myWeekDayTime = User.getStatistics("myWeekDayTime")
//不是一周内的新玩家,就去拿前20名,不需要自己的排名
if (Date.now() > myWeekDayTime) {
let params = {
"gid": AppConfig.TT_APP_ID_custom + '_zb', //游戏gid
"userid": userId, //用户id
"nickname": name, //昵称
"pic": headLink, //头像
"score": -1, //等级
"remark": JSON.stringify({ chenghao: chenghao }),
"ts": time, //时间戳13位
"firstsize": 20,
};
let sendMsg = JSON.stringify(params);
//console.log(params, 'params+++++++++++++===')
xhr.send(sendMsg);
} else {
let params = {
"gid": AppConfig.TT_APP_ID_custom + '_zb', //游戏gid
"userid": userId, //用户id
"nickname": name, //昵称
"pic": headLink, //头像
"score": level, //等级
"remark": JSON.stringify({ chenghao: chenghao }),
"ts": time //时间戳13位
};
let sendMsg = JSON.stringify(params);
//console.log(params, 'params+++++++++++++===')
xhr.send(sendMsg);
}
} else {
let params = {
"gid": AppConfig.TT_APP_ID_custom, //游戏gid
"userid": userId, //用户id
"nickname": name, //昵称
"pic": headLink, //头像
"score": level, //等级
"remark": JSON.stringify({ chenghao: chenghao }),
"ts": time //时间戳13位
};
let sendMsg = JSON.stringify(params);
//console.log(params, 'params+++++++++++++===')
xhr.send(sendMsg);
}
}
/**
* 新的读取数据库备份数据接口
* @param finishCall 读取成功后的回调(重新加载场景)
*/
public static getServerData(finishCall?) {
let userID = User.getUserId()
if (userID == '') {
//读取数据
console.log('存档数据拉取中')
let comSuccesscall = (GameData) => {
console.error('存档数据拉取成功')
ZYSDK.ZYSDK.getUserId().then((uid) => {
console.log('uid+++++++++===', uid)
User.setUserId(uid)
})
// User.setUserId('userIdcomSuccesscall')
User.setFirstIn(false);
UserManager.readDataByUrl(GameData)
if (finishCall) {
finishCall()
}
}
let comFailcall = () => {
console.error('存档数据拉取失败')
}
ZYSDK.ZYSDK.getGameData(comSuccesscall, comFailcall)
} else {
console.log('不需要拉取存档数据')
}
}
public static saveData(isShow = false) {
if (Common5.saveTime == 0) {
let sendData = UserManager.sendDataToUrl()
Common5.saveTime = 30
ZYSDK.ZYSDK.setGameData(sendData, () => {
console.error('保存数据成功')
}, (error) => {
console.error(error, '保存数据失败')
})
} else {
console.log('保存数据过于频繁')
}
}
}