|
@@ -7,6 +7,7 @@ const Order = require('../model/OrderModel')
|
|
|
const Server = require('../model/ServerModel')
|
|
const Server = require('../model/ServerModel')
|
|
|
const Version = require('../model/VersionModel')
|
|
const Version = require('../model/VersionModel')
|
|
|
const CDK = require("../model/CDK")
|
|
const CDK = require("../model/CDK")
|
|
|
|
|
+const notice = require("../notice.json")
|
|
|
const logger = require('../log')
|
|
const logger = require('../log')
|
|
|
const axios = require('axios');
|
|
const axios = require('axios');
|
|
|
const ClientId = "849706610247-rok24bfm4sapiggunbuirugf2n31c3ho.apps.googleusercontent.com"
|
|
const ClientId = "849706610247-rok24bfm4sapiggunbuirugf2n31c3ho.apps.googleusercontent.com"
|
|
@@ -332,7 +333,7 @@ const testGoogleCallPay = async (ctx) => {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
let data = ctx.request.body
|
|
let data = ctx.request.body
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
logger.info("pay callback params:", { "url": ctx.href, "params": data })
|
|
logger.info("pay callback params:", { "url": ctx.href, "params": data })
|
|
|
|
|
|
|
|
const redisClient = ctx.redis.client;
|
|
const redisClient = ctx.redis.client;
|
|
@@ -418,11 +419,11 @@ const testGoogleCallPay = async (ctx) => {
|
|
|
,
|
|
,
|
|
|
{
|
|
{
|
|
|
headers: {
|
|
headers: {
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
'Content-Type': 'application/json'
|
|
'Content-Type': 'application/json'
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
let consumeUrl = `https://androidpublisher.googleapis.com/androidpublisher/v3/applications/${PackageName}/purchases/products/${productId}/tokens/${googleToken}:consume?access_token=${access_token}`
|
|
let consumeUrl = `https://androidpublisher.googleapis.com/androidpublisher/v3/applications/${PackageName}/purchases/products/${productId}/tokens/${googleToken}:consume?access_token=${access_token}`
|
|
|
const consumeRes = await axios.post(consumeUrl,
|
|
const consumeRes = await axios.post(consumeUrl,
|
|
|
{
|
|
{
|
|
@@ -431,14 +432,14 @@ const testGoogleCallPay = async (ctx) => {
|
|
|
,
|
|
,
|
|
|
{
|
|
{
|
|
|
headers: {
|
|
headers: {
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
'Content-Type': 'application/json'
|
|
'Content-Type': 'application/json'
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
- ret.code = 1
|
|
|
|
|
- ret.msg = '发货成功'
|
|
|
|
|
- resolve(ret);
|
|
|
|
|
|
|
+ ret.code = 1
|
|
|
|
|
+ ret.msg = '发货成功'
|
|
|
|
|
+ resolve(ret);
|
|
|
|
|
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
@@ -524,11 +525,9 @@ const generateOrderNumber = () => {
|
|
|
return "CP" + dateString + randomString1 + randomString2;
|
|
return "CP" + dateString + randomString1 + randomString2;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-const formatDate = (date: Date) => {
|
|
|
|
|
- const year = date.getFullYear();
|
|
|
|
|
- const month = (date.getMonth() + 1).toString().padStart(2, '0');
|
|
|
|
|
- const day = date.getDate().toString().padStart(2, '0');
|
|
|
|
|
- return `${year}-${month}-${day}`;
|
|
|
|
|
|
|
+const formatDate = (now: Date) => {
|
|
|
|
|
+ const formattedDateTime = now.getFullYear() + '-' + (now.getMonth() + 1) + '-' + now.getDate() + ' ' + now.getHours() + ':' + now.getMinutes() + ':' + now.getSeconds();
|
|
|
|
|
+ return formattedDateTime;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
class ApiController {
|
|
class ApiController {
|
|
@@ -543,8 +542,6 @@ class ApiController {
|
|
|
server_id
|
|
server_id
|
|
|
} = ctx.request.body
|
|
} = ctx.request.body
|
|
|
|
|
|
|
|
- logger.info("create params:", { "params": ctx })
|
|
|
|
|
-
|
|
|
|
|
logger.info("create params:", { "params": ctx.request.body })
|
|
logger.info("create params:", { "params": ctx.request.body })
|
|
|
|
|
|
|
|
if (!product_id || !server_id || !role_name || !role_id || !amount || !uid) {
|
|
if (!product_id || !server_id || !role_name || !role_id || !amount || !uid) {
|
|
@@ -600,11 +597,11 @@ class ApiController {
|
|
|
console.log('发货结果', result)
|
|
console.log('发货结果', result)
|
|
|
ctx.body = result
|
|
ctx.body = result
|
|
|
break;
|
|
break;
|
|
|
- // case 'testGoogle':
|
|
|
|
|
- // var result = await testGoogleCallPay(ctx)
|
|
|
|
|
- // console.log('发货结果', result)
|
|
|
|
|
- // ctx.body = result
|
|
|
|
|
- // break;
|
|
|
|
|
|
|
+ // case 'testGoogle':
|
|
|
|
|
+ // var result = await testGoogleCallPay(ctx)
|
|
|
|
|
+ // console.log('发货结果', result)
|
|
|
|
|
+ // ctx.body = result
|
|
|
|
|
+ // break;
|
|
|
default:
|
|
default:
|
|
|
ctx.body = {
|
|
ctx.body = {
|
|
|
code: 0,
|
|
code: 0,
|
|
@@ -625,6 +622,75 @@ class ApiController {
|
|
|
ctx.body = servers
|
|
ctx.body = servers
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ async getAllServerList(ctx) {
|
|
|
|
|
+ let tag = ctx.query.tag || 'default'
|
|
|
|
|
+ const servers = (await Server.getAllServerList(tag))
|
|
|
|
|
+ ctx.body = servers
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ async enterServer(ctx) {
|
|
|
|
|
+ let ret = {
|
|
|
|
|
+ code: 0,
|
|
|
|
|
+ msg: '请求失败'
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ let {
|
|
|
|
|
+ uid,
|
|
|
|
|
+ server_id
|
|
|
|
|
+ } = ctx.request.body
|
|
|
|
|
+
|
|
|
|
|
+ if (!uid || !server_id) {
|
|
|
|
|
+ ctx.body = ret
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ await ctx.redis.client.set(`enter_sever_${uid}`, server_id);
|
|
|
|
|
+ ctx.body = {
|
|
|
|
|
+ code: 1,
|
|
|
|
|
+ msg: '请求成功'
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ async getLastServerList(ctx) {
|
|
|
|
|
+
|
|
|
|
|
+ let {
|
|
|
|
|
+ uid,
|
|
|
|
|
+ } = ctx.request.body
|
|
|
|
|
+
|
|
|
|
|
+ const tag = ctx.query.tag || 'default'
|
|
|
|
|
+ const enter_server = await ctx.redis.client.get(`enter_sever_${uid}`);
|
|
|
|
|
+
|
|
|
|
|
+ let isNewAccount = 1
|
|
|
|
|
+ let serverInfo = null
|
|
|
|
|
+
|
|
|
|
|
+ if (enter_server) {
|
|
|
|
|
+ serverInfo = (await Server.getServerListById(tag, enter_server))[0]
|
|
|
|
|
+ isNewAccount = 0
|
|
|
|
|
+ } else {
|
|
|
|
|
+ const servers = (await Server.getServerList(tag))
|
|
|
|
|
+ serverInfo = servers[servers.length - 1]
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ let data = {
|
|
|
|
|
+ "channel": "Thailand", //渠道固定
|
|
|
|
|
+ "minSid": 1, //最小服务器
|
|
|
|
|
+ "maxSid": 10, //最大服务器 这里会控制 服务器列表显示的数量
|
|
|
|
|
+ "isNewAccount": isNewAccount, //1为新号 会弹出用户协议
|
|
|
|
|
+ //以下是最近登陆的服务器 (不可为空 如果没有参数可以填最后一个区)
|
|
|
|
|
+ "sid": serverInfo.id || 1,
|
|
|
|
|
+ "id": serverInfo.id || 1,
|
|
|
|
|
+ "name": serverInfo.name || "1区",
|
|
|
|
|
+ "server": serverInfo.ip ? `ws://${serverInfo.ip}:${serverInfo.port}` : "",
|
|
|
|
|
+ "status": serverInfo.status || 0,
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ ctx.body = data
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ async getNotice(ctx) {
|
|
|
|
|
+ ctx.body = notice
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
async genCDK(ctx) {
|
|
async genCDK(ctx) {
|
|
|
/*
|
|
/*
|
|
|
data = {
|
|
data = {
|
|
@@ -635,9 +701,9 @@ class ApiController {
|
|
|
}
|
|
}
|
|
|
*/
|
|
*/
|
|
|
let data = ctx.request.body
|
|
let data = ctx.request.body
|
|
|
- await CDK.genCDK(ctx,data.cnt,data.useCnt,data.serverList,data.itemList)
|
|
|
|
|
|
|
+ await CDK.genCDK(ctx, data.cnt, data.useCnt, data.serverList, data.itemList)
|
|
|
ctx.body = {
|
|
ctx.body = {
|
|
|
- code:0,
|
|
|
|
|
|
|
+ code: 0,
|
|
|
msg: 'success'
|
|
msg: 'success'
|
|
|
}
|
|
}
|
|
|
return
|
|
return
|
|
@@ -645,35 +711,35 @@ class ApiController {
|
|
|
|
|
|
|
|
async getCDK(ctx) {
|
|
async getCDK(ctx) {
|
|
|
let data = ctx.request.body
|
|
let data = ctx.request.body
|
|
|
- let ret = await CDK.getCDK(ctx,data.batch)
|
|
|
|
|
- if (ret.length <= 0 ) {
|
|
|
|
|
|
|
+ let ret = await CDK.getCDK(ctx, data.batch)
|
|
|
|
|
+ if (ret.length <= 0) {
|
|
|
ctx.body = {
|
|
ctx.body = {
|
|
|
- code : 1,
|
|
|
|
|
|
|
+ code: 1,
|
|
|
msg: "batch invalid"
|
|
msg: "batch invalid"
|
|
|
}
|
|
}
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
ctx.body = {
|
|
ctx.body = {
|
|
|
- code : 0,
|
|
|
|
|
- msg : ret
|
|
|
|
|
|
|
+ code: 0,
|
|
|
|
|
+ msg: ret
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
async useCDK(ctx) {
|
|
async useCDK(ctx) {
|
|
|
let data = ctx.request.body
|
|
let data = ctx.request.body
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
let url = await getServerList(data.serverId, 'default')
|
|
let url = await getServerList(data.serverId, 'default')
|
|
|
if (!url) {
|
|
if (!url) {
|
|
|
logger.info(`区服id错误: serverId ${data.serverId}`)
|
|
logger.info(`区服id错误: serverId ${data.serverId}`)
|
|
|
ctx.body = {
|
|
ctx.body = {
|
|
|
- code : 1,
|
|
|
|
|
- msg : `区服id错误: serverId ${data.serverId}`
|
|
|
|
|
|
|
+ code: 1,
|
|
|
|
|
+ msg: `区服id错误: serverId ${data.serverId}`
|
|
|
}
|
|
}
|
|
|
- return
|
|
|
|
|
|
|
+ return
|
|
|
}
|
|
}
|
|
|
- let ret = await CDK.checkCDK(ctx,data.code,data.serverId)
|
|
|
|
|
|
|
+ let ret = await CDK.checkCDK(ctx, data.code, data.serverId)
|
|
|
if (ret != "success") {
|
|
if (ret != "success") {
|
|
|
ctx.body = {
|
|
ctx.body = {
|
|
|
- code : 1,
|
|
|
|
|
|
|
+ code: 1,
|
|
|
msg: ret
|
|
msg: ret
|
|
|
}
|
|
}
|
|
|
return
|
|
return
|
|
@@ -681,9 +747,9 @@ class ApiController {
|
|
|
// 通知给服务器,发放道具
|
|
// 通知给服务器,发放道具
|
|
|
Msg.connect(url, Account);
|
|
Msg.connect(url, Account);
|
|
|
let itemListStr = CDK.getCDKItemList(data.code)
|
|
let itemListStr = CDK.getCDKItemList(data.code)
|
|
|
- if (itemListStr.length <= 0 ) {
|
|
|
|
|
|
|
+ if (itemListStr.length <= 0) {
|
|
|
ctx.body = {
|
|
ctx.body = {
|
|
|
- code : 1,
|
|
|
|
|
|
|
+ code: 1,
|
|
|
msg: "invalid code"
|
|
msg: "invalid code"
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|