|
|
@@ -1,17 +1,18 @@
|
|
|
import Msg from '../msg'; // 确保路径是正确的
|
|
|
|
|
|
-const servers = require('../serverList.json')
|
|
|
const CryptoJS = require("crypto-js");
|
|
|
const crypto = require('crypto');
|
|
|
const AppSecret = "67db708fdc1b3f61341db6e8551143c0"
|
|
|
const AppKey = "57afbdc608db9aa423e1b15b321d7de0"
|
|
|
const Account = "H1EqhbpA80jt0Jw6Q3T2"//ws请求密钥
|
|
|
const Order = require('../model/OrderModel')
|
|
|
+const Server = require('../model/ServerModel')
|
|
|
+const Version = require('../model/VersionModel')
|
|
|
const logger = require('../log')
|
|
|
-var orderList = []
|
|
|
|
|
|
//根据区服id获取地址
|
|
|
-const getServerList = (serverId) => {
|
|
|
+const getServerList = async (serverId, tag) => {
|
|
|
+ const servers = (await Server.getServerList(tag))
|
|
|
for (let i = 0; i < servers.length; i++) {
|
|
|
if (servers[i].id == serverId) {
|
|
|
return 'ws://' + servers[i].ip + ':' + servers[i].port
|
|
|
@@ -60,7 +61,7 @@ const callPay = async (ctx) => {
|
|
|
return ret
|
|
|
}
|
|
|
|
|
|
- let url = getServerList(serverId)
|
|
|
+ let url = await getServerList(serverId,'default')
|
|
|
if (!url) {
|
|
|
logger.info(`区服id错误: serverId ${serverId}`)
|
|
|
ret.msg = `区服id错误: serverId ${serverId}`
|
|
|
@@ -104,6 +105,50 @@ const callPay = async (ctx) => {
|
|
|
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+const compareVersions = (v1: string, v2: string) => {
|
|
|
+ const parts1 = v1.split('.').map(Number);
|
|
|
+ const parts2 = v2.split('.').map(Number);
|
|
|
+
|
|
|
+ for (let i = 0; i < Math.max(parts1.length, parts2.length); i++) {
|
|
|
+ const num1 = parts1[i] || 0;
|
|
|
+ const num2 = parts2[i] || 0;
|
|
|
+
|
|
|
+ if (num1 > num2) return 1;
|
|
|
+ if (num1 < num2) return -1;
|
|
|
+ }
|
|
|
+
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+const checkVersion = async (ctx) => {
|
|
|
+ let ret = {
|
|
|
+ code: 0,
|
|
|
+ msg: '无需更新',
|
|
|
+ url: '',
|
|
|
+ }
|
|
|
+ let data = ctx.request.body
|
|
|
+ let version = data.version
|
|
|
+ let tag = data.tag || 'default'
|
|
|
+ logger.info("checkVersion params:", { "url": ctx.href, "params": data })
|
|
|
+
|
|
|
+ const versionInfo = (await Version.getGameVersion(tag))[0]
|
|
|
+
|
|
|
+ if (!versionInfo) {
|
|
|
+ return ret
|
|
|
+ }
|
|
|
+
|
|
|
+ if (compareVersions(versionInfo.version,version) === 1) {
|
|
|
+
|
|
|
+ if(versionInfo.download_url){
|
|
|
+ ret.code = 1
|
|
|
+ ret.msg = '需要更新'
|
|
|
+ ret.url = versionInfo.download_url
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return ret
|
|
|
+}
|
|
|
+
|
|
|
//验证账号
|
|
|
const checkUserToken = async (ctx) => {
|
|
|
let data = ctx.request.body
|
|
|
@@ -209,9 +254,15 @@ class ApiController {
|
|
|
ctx.body = result
|
|
|
}
|
|
|
|
|
|
+ async checkVersion(ctx) {
|
|
|
+ var result = await checkVersion(ctx)
|
|
|
+ console.log('校验版本', result)
|
|
|
+ ctx.body = result
|
|
|
+ }
|
|
|
+
|
|
|
async getServerList(ctx) {
|
|
|
- let id = ctx.query.id
|
|
|
- console.log(getServerList(id))
|
|
|
+ let tag = ctx.query.tag || 'default'
|
|
|
+ const servers = (await Server.getServerList(tag))
|
|
|
ctx.body = servers
|
|
|
}
|
|
|
}
|