✨ feat(37需求): 分子包隐藏服务器
This commit is contained in:
@@ -68,16 +68,16 @@ export default class GameController extends Controller {
|
|||||||
// createNewPackage
|
// createNewPackage
|
||||||
public async createNewPackage() {
|
public async createNewPackage() {
|
||||||
const { ctx } = this;
|
const { ctx } = this;
|
||||||
const { regionId, pkgName, pkgDesc, pid, gid, isOpen } = ctx.request.body;
|
const { regionId, pkgName, pkgDesc, pid, gid, isOpen, hideServers } = ctx.request.body;
|
||||||
ctx.body = await ctx.service.game.createNewPackage(regionId, pid, gid, pkgName, pkgDesc, isOpen);
|
ctx.body = await ctx.service.game.createNewPackage(regionId, pid, gid, pkgName, pkgDesc, isOpen, hideServers);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// editPackage
|
// editPackage
|
||||||
public async editPackage() {
|
public async editPackage() {
|
||||||
const { ctx } = this;
|
const { ctx } = this;
|
||||||
const { regionId, pkgName, pkgDesc, pid, gid, isOpen, loadingPage, loginPage } = ctx.request.body;
|
const { regionId, pkgName, pkgDesc, pid, gid, isOpen, loadingPage, loginPage, hideServers } = ctx.request.body;
|
||||||
ctx.body = await ctx.service.game.editPackage(regionId, pid, gid, pkgName, pkgDesc, isOpen, loadingPage, loginPage);
|
ctx.body = await ctx.service.game.editPackage(regionId, pid, gid, pkgName, pkgDesc, isOpen, loadingPage, loginPage, hideServers);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -77,9 +77,9 @@ export default class Game extends Service {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 创建新的推广包
|
// 创建新的推广包
|
||||||
public async createNewPackage(regionId: number, pid: string, gid: string, pkgName: string, pkgDesc: string, isOpen = true) {
|
public async createNewPackage(regionId: number, pid: string, gid: string, pkgName: string, pkgDesc: string, isOpen = true, hideServers: number[] = []) {
|
||||||
const { ctx } = this;
|
const { ctx } = this;
|
||||||
const packageInfo = await PackageModel.createNewPackage({regionId, pkgName, pkgDesc, pid, gid, isOpen}, ctx.user?.uid);
|
const packageInfo = await PackageModel.createNewPackage({regionId, pkgName, pkgDesc, pid, gid, isOpen, hideServers}, ctx.user?.uid);
|
||||||
if (!packageInfo) {
|
if (!packageInfo) {
|
||||||
return ctx.service.utils.resResult(STATUS.PACKAGE_CREATE_FAILED);
|
return ctx.service.utils.resResult(STATUS.PACKAGE_CREATE_FAILED);
|
||||||
}
|
}
|
||||||
@@ -90,9 +90,9 @@ export default class Game extends Service {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 更新推广包
|
// 更新推广包
|
||||||
public async editPackage(regionId: number, pid: string, gid: string, pkgName: string, pkgDesc: string, isOpen = true, loadingPage = '', loginPage = '') {
|
public async editPackage(regionId: number, pid: string, gid: string, pkgName: string, pkgDesc: string, isOpen = true, loadingPage = '', loginPage = '', hideServers: number[] = []) {
|
||||||
const { ctx } = this;
|
const { ctx } = this;
|
||||||
const packageInfo = await PackageModel.updatePackage({regionId, pkgName, pkgDesc, pid, gid, isOpen, loadingPage, loginPage}, ctx.user?.uid);
|
const packageInfo = await PackageModel.updatePackage({regionId, pkgName, pkgDesc, pid, gid, isOpen, loadingPage, loginPage, hideServers}, ctx.user?.uid);
|
||||||
if (!packageInfo) {
|
if (!packageInfo) {
|
||||||
return ctx.service.utils.resResult(STATUS.PACKAGE_UPDATE_FAILED);
|
return ctx.service.utils.resResult(STATUS.PACKAGE_UPDATE_FAILED);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,6 +38,9 @@ export default class Package extends BaseModel {
|
|||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
loginPage: string; // 是否开启
|
loginPage: string; // 是否开启
|
||||||
|
|
||||||
|
@prop({ required: false, type: Number })
|
||||||
|
hideServers: number[]; // 需要隐藏的服务器
|
||||||
|
|
||||||
public static async createNewPackage(params: PackageUpdate, uid = 1) {
|
public static async createNewPackage(params: PackageUpdate, uid = 1) {
|
||||||
const { gid, pid } = params;
|
const { gid, pid } = params;
|
||||||
let rec: PackageType | null = await PackageModel.findOne({ gid, pid }).lean();
|
let rec: PackageType | null = await PackageModel.findOne({ gid, pid }).lean();
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ export default class GameController extends Controller {
|
|||||||
try {
|
try {
|
||||||
const { ctx } = this;
|
const { ctx } = this;
|
||||||
let { uid } = ctx;
|
let { uid } = ctx;
|
||||||
const { version, addressType } = ctx.request.body;
|
const { version, addressType, pid, gid } = ctx.request.body;
|
||||||
let serverList = new Array<GroupParam>();
|
let serverList = new Array<GroupParam>();
|
||||||
let loginServerList = new Array<ServerParamWithRole>();
|
let loginServerList = new Array<ServerParamWithRole>();
|
||||||
|
|
||||||
@@ -100,6 +100,14 @@ export default class GameController extends Controller {
|
|||||||
let env = isReview? curRegion.reviewEnv: ctx.app.config.realEnv;
|
let env = isReview? curRegion.reviewEnv: ctx.app.config.realEnv;
|
||||||
|
|
||||||
let allServers = await ServerlistModel.findByEnv(env||ctx.app.config.realEnv, isReview);
|
let allServers = await ServerlistModel.findByEnv(env||ctx.app.config.realEnv, isReview);
|
||||||
|
|
||||||
|
if(pid && gid) {
|
||||||
|
const pkg = await PackageModel.getPackageByGidPid(gid, pid);
|
||||||
|
if(pkg && pkg.hideServers && pkg.hideServers.length > 0) {
|
||||||
|
allServers = allServers.filter(server => !pkg.hideServers.includes(server.id));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let roles = await RoleModel.findAllByUid(uid, true, true);
|
let roles = await RoleModel.findAllByUid(uid, true, true);
|
||||||
for (let server of allServers) {
|
for (let server of allServers) {
|
||||||
let curGroup = serverList.find(cur => cur.groupId == server.groupId);
|
let curGroup = serverList.find(cur => cur.groupId == server.groupId);
|
||||||
|
|||||||
Reference in New Issue
Block a user