diff --git a/gm-server/app/controller/game.ts b/gm-server/app/controller/game.ts index 1867f292f..1e2eecdd2 100644 --- a/gm-server/app/controller/game.ts +++ b/gm-server/app/controller/game.ts @@ -14,6 +14,12 @@ export default class GameController extends Controller { return } + public async getServerList() { + const { ctx } = this; + ctx.body = await ctx.service.game.getServerList(); + return + } + public async getDicHero() { const { ctx } = this; ctx.body = await ctx.service.game.getDicHero(); diff --git a/gm-server/app/router.ts b/gm-server/app/router.ts index 678a2d8f3..f1ee981bb 100644 --- a/gm-server/app/router.ts +++ b/gm-server/app/router.ts @@ -45,6 +45,7 @@ export default (app: Application) => { router.post('/api/game/getserverenv', tokenParser, controller.game.getServerEnv); router.post('/api/game/getserverlistbyenv', tokenParser, controller.game.getServerListByEnv); + router.post('/api/game/getserverlist', controller.game.getServerList); router.post('/api/game/getdicgoods', tokenParser, controller.game.getDicGoods); router.post('/api/game/getdichero', tokenParser, controller.game.getDicHero); router.post('/api/game/getdicrmb', tokenParser, controller.game.getDicRMB); diff --git a/gm-server/app/service/Game.ts b/gm-server/app/service/Game.ts index ee71a30e8..77f074046 100644 --- a/gm-server/app/service/Game.ts +++ b/gm-server/app/service/Game.ts @@ -38,6 +38,18 @@ export default class Game extends Service { }); } + + public async getServerList() { + const { ctx } = this; + const { page, pageSize, sortField, sortOrder, id, serverId, name, groupName, groupId, serverType } = ctx.request.body; + + const list = await ServerlistModel.findByCondition(page, pageSize, sortField, sortOrder, id, serverId, name, groupName, groupId, serverType); + const total = await ServerlistModel.countByCondition( id, serverId, name, groupName, groupId, serverType) + return ctx.service.utils.resResult(STATUS.SUCCESS, { + list, total + }); + } + public async getDicHero() { let list: DicHero[] = []; for(let [heroId, hero] of gameData.hero) { diff --git a/shared/db/Serverlist.ts b/shared/db/Serverlist.ts index 1ab3de969..42d8556a1 100644 --- a/shared/db/Serverlist.ts +++ b/shared/db/Serverlist.ts @@ -92,6 +92,40 @@ export default class Serverlist extends BaseModel { return server; } + public static async findByCondition(page: number, pageSize: number, sortField: string, sortOrder: string, id: number, serverId: string|number, name: string, groupName: string, groupId: number, serverType: string) { + + let searchObj = {}; + if (id != undefined) searchObj['id'] = id; + if (serverId != undefined) searchObj['groupId'] = groupId; + if (name != undefined) searchObj['name'] = name; + if (groupName != undefined) searchObj['groupName'] = groupName; + if (serverType != undefined) searchObj['serverType'] = serverType; + + let sort = {}; + if(sortField && sortOrder) { + if(sortOrder == 'ascend') { + sort[sortField] = 1; + } else if (sortOrder == 'descend') { + sort[sortField] = -1; + } + } + const result: ServerlistType[] = await ServerlistModel.find(searchObj, { _id: 0 }).limit(pageSize).skip((page - 1) * pageSize).sort(sort).lean(); + return result; + + } + + public static async countByCondition(id: number, serverId: string|number, name: string, groupName: string, groupId: number, serverType: string) { + let searchObj = {}; + if (id != undefined) searchObj['id'] = id; + if (serverId != undefined) searchObj['groupId'] = groupId; + if (name != undefined) searchObj['name'] = name; + if (groupName != undefined) searchObj['groupName'] = groupName; + if (serverType != undefined) searchObj['serverType'] = serverType; + + const result = await ServerlistModel.count(searchObj); + return result; + } + //根据多个活动id查询活动数据 public static async findServerByIds(ids: number[]) { let result: ServerlistType[] = await ServerlistModel.find({ id: { $in: ids } }).lean(); diff --git a/shared/domain/activityField/dailyCoinField.ts b/shared/domain/activityField/dailyCoinField.ts index b326fc1da..49388a008 100644 --- a/shared/domain/activityField/dailyCoinField.ts +++ b/shared/domain/activityField/dailyCoinField.ts @@ -1,6 +1,6 @@ import moment = require('moment'); import { random } from 'underscore'; -import { REFRESH_TIME, TASK_TYPE } from '../../consts'; +import { REFRESH_TIME } from '../../consts'; import { ActivityModelType } from '../../db/Activity'; import { ActivityDailyCoinModelType } from '../../db/ActivityDailyCoin'; import { ActivityBase } from './activityField'; diff --git a/shared/domain/activityField/dailyMealField.ts b/shared/domain/activityField/dailyMealField.ts index db7489a75..df3d90cd1 100644 --- a/shared/domain/activityField/dailyMealField.ts +++ b/shared/domain/activityField/dailyMealField.ts @@ -1,5 +1,5 @@ import moment = require('moment'); -import { REFRESH_TIME, TASK_TYPE } from '../../consts'; +import { REFRESH_TIME } from '../../consts'; import { ActivityModelType } from '../../db/Activity'; import { ActivityDailyMealModelType } from '../../db/ActivityDailyMeal'; import { ActivityBase } from './activityField';