✨ feat(37需求): 分子包隐藏服务器

This commit is contained in:
luying
2023-04-15 16:16:06 +08:00
parent 5978c573ba
commit da3c20358d
4 changed files with 20 additions and 9 deletions
+4 -4
View File
@@ -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;
} }
+4 -4
View File
@@ -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);
} }
+3
View File
@@ -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();
+9 -1
View File
@@ -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);