✨ feat(37需求): 分子包隐藏服务器
This commit is contained in:
@@ -68,16 +68,16 @@ export default class GameController extends Controller {
|
||||
// createNewPackage
|
||||
public async createNewPackage() {
|
||||
const { ctx } = this;
|
||||
const { regionId, pkgName, pkgDesc, pid, gid, isOpen } = ctx.request.body;
|
||||
ctx.body = await ctx.service.game.createNewPackage(regionId, pid, gid, pkgName, pkgDesc, isOpen);
|
||||
const { regionId, pkgName, pkgDesc, pid, gid, isOpen, hideServers } = ctx.request.body;
|
||||
ctx.body = await ctx.service.game.createNewPackage(regionId, pid, gid, pkgName, pkgDesc, isOpen, hideServers);
|
||||
return;
|
||||
}
|
||||
|
||||
// editPackage
|
||||
public async editPackage() {
|
||||
const { ctx } = this;
|
||||
const { regionId, pkgName, pkgDesc, pid, gid, isOpen, loadingPage, loginPage } = ctx.request.body;
|
||||
ctx.body = await ctx.service.game.editPackage(regionId, pid, gid, pkgName, pkgDesc, isOpen, loadingPage, loginPage);
|
||||
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, hideServers);
|
||||
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 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) {
|
||||
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 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) {
|
||||
return ctx.service.utils.resResult(STATUS.PACKAGE_UPDATE_FAILED);
|
||||
}
|
||||
|
||||
@@ -38,6 +38,9 @@ export default class Package extends BaseModel {
|
||||
@prop({ required: true })
|
||||
loginPage: string; // 是否开启
|
||||
|
||||
@prop({ required: false, type: Number })
|
||||
hideServers: number[]; // 需要隐藏的服务器
|
||||
|
||||
public static async createNewPackage(params: PackageUpdate, uid = 1) {
|
||||
const { gid, pid } = params;
|
||||
let rec: PackageType | null = await PackageModel.findOne({ gid, pid }).lean();
|
||||
|
||||
@@ -83,7 +83,7 @@ export default class GameController extends Controller {
|
||||
try {
|
||||
const { ctx } = this;
|
||||
let { uid } = ctx;
|
||||
const { version, addressType } = ctx.request.body;
|
||||
const { version, addressType, pid, gid } = ctx.request.body;
|
||||
let serverList = new Array<GroupParam>();
|
||||
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 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);
|
||||
for (let server of allServers) {
|
||||
let curGroup = serverList.find(cur => cur.groupId == server.groupId);
|
||||
|
||||
Reference in New Issue
Block a user