ios:审核服判断逻辑
This commit is contained in:
@@ -78,6 +78,14 @@ export default class GameController extends Controller {
|
||||
return
|
||||
}
|
||||
|
||||
public async switchServerReview() {
|
||||
const { ctx } = this;
|
||||
const { id, isReview } = ctx.request.body;
|
||||
|
||||
ctx.body = await ctx.service.game.switchServerReview(id, isReview);
|
||||
return
|
||||
}
|
||||
|
||||
public async getOrderlist() {
|
||||
const { ctx } = this;
|
||||
const { page, pageSize, sortField, sortOrder, form } = ctx.request.body;
|
||||
|
||||
@@ -51,6 +51,7 @@ export default (app: Application) => {
|
||||
router.post('/api/game/deletewhitelist', tokenParser, controller.game.deleteWhiteList);
|
||||
router.post('/api/game/stopserverregister', tokenParser, controller.game.stopServerRegister);
|
||||
router.post('/api/game/swicthserverstatus', tokenParser, controller.game.switchServerStatus);
|
||||
router.post('/api/game/switchserverreview', controller.game.switchServerReview);
|
||||
router.post('/api/game/getorderlist', tokenParser, controller.game.getOrderlist);
|
||||
router.post('/api/game/getsurveylist', controller.game.getSurveylist);
|
||||
|
||||
|
||||
@@ -100,6 +100,13 @@ export default class Game extends Service {
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS);
|
||||
}
|
||||
|
||||
public async switchServerReview(id: number, isReview: boolean) {
|
||||
const { ctx } = this;
|
||||
const server = await ServerlistModel.updateByServerId(id, { isReview });
|
||||
if(!server) return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS);
|
||||
}
|
||||
|
||||
public async getRegionStategy(id: number) {
|
||||
const { ctx } = this;
|
||||
let region = await RegionModel.findRegionById(id);
|
||||
|
||||
@@ -60,6 +60,12 @@ export default class Region extends BaseModel {
|
||||
@prop({ required: true, type: () => ServerStategy, _id: false })
|
||||
stategy: ServerStategy; // 策略配置
|
||||
|
||||
@prop({ required: true })
|
||||
reviewEnv: string; // 对应的审核服
|
||||
|
||||
@prop({ required: true })
|
||||
reviewVersion: string; // 大于这个版本的都是审核服
|
||||
|
||||
public static async createNewRegion(params: RegionUpdate, uid = 1) {
|
||||
let id = await CounterAllModal.getNewCounter(COUNTER.REGION);
|
||||
|
||||
|
||||
@@ -40,6 +40,9 @@ export default class Serverlist extends BaseModel {
|
||||
@prop({ required: true })
|
||||
env: string; // 环境变量
|
||||
|
||||
@prop({ required: true })
|
||||
isReview: boolean; // 是否是审核服
|
||||
|
||||
@prop({ required: true })
|
||||
prefix: string; // 前缀
|
||||
|
||||
@@ -143,9 +146,14 @@ export default class Serverlist extends BaseModel {
|
||||
return server;
|
||||
}
|
||||
|
||||
public static async findByEnv(env?: string) {
|
||||
let server: ServerlistType[] = await ServerlistModel.find({ env, serverStatus: { $gt: 0 } }).sort({ id: -1 }).lean({ getters: true, virtuals: true });
|
||||
return server;
|
||||
public static async findByEnv(env?: string, isReview = false) {
|
||||
if(isReview) {
|
||||
let server: ServerlistType[] = await ServerlistModel.find({ env, serverStatus: { $gt: 0 }, isReview }).sort({ id: -1 }).lean({ getters: true, virtuals: true });
|
||||
return server;
|
||||
} else {
|
||||
let server: ServerlistType[] = await ServerlistModel.find({ env, serverStatus: { $gt: 0 } }).sort({ id: -1 }).lean({ getters: true, virtuals: true });
|
||||
return server;
|
||||
}
|
||||
}
|
||||
|
||||
//根据多个活动id查询活动数据
|
||||
|
||||
@@ -78,6 +78,8 @@ export class UpdateRegionParams {
|
||||
versionCode: string = '';
|
||||
curVersion: string = '';
|
||||
updateResUrl: string = '';
|
||||
reviewVersion: string = '';
|
||||
reviewEnv: string = '';
|
||||
|
||||
maxPlayerCnt: number = 0;
|
||||
timers: SERVER_TIMER[] = [];
|
||||
@@ -117,6 +119,8 @@ export class UpdateRegionParams {
|
||||
remark: this.remark,
|
||||
versionCode: this.versionCode,
|
||||
curVersion: this.curVersion,
|
||||
reviewVersion: this.reviewVersion,
|
||||
reviewEnv: this.reviewEnv,
|
||||
updateResUrl: this.updateResUrl,
|
||||
stategy
|
||||
}
|
||||
@@ -128,6 +132,8 @@ export class UpdateRegionParams {
|
||||
remark: this.remark||oldRegion.remark,
|
||||
versionCode: this.versionCode||oldRegion.versionCode,
|
||||
curVersion: this.curVersion||oldRegion.curVersion,
|
||||
reviewVersion: this.reviewVersion||oldRegion.reviewVersion,
|
||||
reviewEnv: this.reviewEnv||oldRegion.reviewEnv,
|
||||
updateResUrl: this.updateResUrl||oldRegion.updateResUrl,
|
||||
stategy: { ...(oldRegion.stategy||{}), ...stategy }
|
||||
}
|
||||
|
||||
@@ -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