ios:审核服判断逻辑
This commit is contained in:
@@ -31,15 +31,40 @@ export default class GameController extends Controller {
|
||||
return;
|
||||
}
|
||||
|
||||
public async checkReview() {
|
||||
const { ctx } = this;
|
||||
const { version } = ctx.request.body;
|
||||
|
||||
let curRegion = await RegionModel.findRegionByEnv(this.app.config.realEnv);
|
||||
if(!curRegion) return resResult(STATUS.VERSION_ERR);
|
||||
|
||||
let isReview = await ctx.service.update.checkReview(curRegion, version);
|
||||
let hasNewWebServer = false, webServerUrl = '';
|
||||
if(isReview && curRegion.reviewEnv) {
|
||||
let reviewRegion = await RegionModel.findRegionByEnv(curRegion.reviewEnv);
|
||||
if(reviewRegion) {
|
||||
hasNewWebServer = true, webServerUrl = reviewRegion.webHost;
|
||||
}
|
||||
}
|
||||
ctx.body = ctx.service.utils.resResult(STATUS.SUCCESS, { isReview, hasNewWebServer, webServerUrl });
|
||||
return;
|
||||
}
|
||||
|
||||
public async getServerList() {
|
||||
try {
|
||||
const { ctx } = this;
|
||||
let { uid, clientVersion } = ctx;
|
||||
console.log('clientVersion', clientVersion);
|
||||
let { uid } = ctx;
|
||||
const { version } = ctx.request.body;
|
||||
let serverList = new Array<GroupParam>();
|
||||
let loginServerList = new Array<ServerParamWithRole>();
|
||||
|
||||
let allServers = await ServerlistModel.findByEnv(ctx.app.config.realEnv);
|
||||
let curRegion = await RegionModel.findRegionByEnv(this.app.config.realEnv);
|
||||
if(!curRegion) return resResult(STATUS.VERSION_ERR);
|
||||
|
||||
let isReview = await ctx.service.update.checkReview(curRegion, version);
|
||||
let env = isReview? curRegion.reviewEnv: ctx.app.config.realEnv;
|
||||
|
||||
let allServers = await ServerlistModel.findByEnv(env||ctx.app.config.realEnv, isReview);
|
||||
let roles = await RoleModel.findAllByUid(uid, true, true);
|
||||
for (let server of allServers) {
|
||||
let curGroup = serverList.find(cur => cur.groupId == server.groupId);
|
||||
|
||||
@@ -8,6 +8,7 @@ export default (app: Application) => {
|
||||
router.get('/dev', controller.home.dev);
|
||||
router.get('/dev/smscode', controller.account.getSmsCode);
|
||||
router.get('/', controller.home.index);
|
||||
router.post('/user/checkreview', controller.game.checkReview);
|
||||
router.post('/user/channellogin', controller.account.channelLogin);
|
||||
router.post('/user/devicelogin', controller.account.deviceLogin);
|
||||
router.post('/user/getsms', controller.account.getSms);
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { STATUS, } from '@consts';
|
||||
import { RegionType } from '@db/Region';
|
||||
import { Service } from 'egg';
|
||||
// let fs = require("fs");
|
||||
|
||||
@@ -34,5 +35,13 @@ export default class Update extends Service {
|
||||
remoteVersionUrl: `${baseUrl}/version.manifest`
|
||||
});
|
||||
}
|
||||
|
||||
public async checkReview(curRegion: RegionType, version: string) {
|
||||
const ctx = this.ctx;
|
||||
|
||||
if(!curRegion || !curRegion.reviewVersion || !version) return false;
|
||||
let reviewVersionFlag = ctx.service.utils.compareVersion(version, curRegion.reviewVersion);
|
||||
return `${ctx.clientIp}`.startsWith('17.') || reviewVersionFlag > 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user