diff --git a/gm-server/app/controller/game.ts b/gm-server/app/controller/game.ts index 3ef5cbd81..f1c7c48ba 100644 --- a/gm-server/app/controller/game.ts +++ b/gm-server/app/controller/game.ts @@ -72,6 +72,13 @@ export default class GameController extends Controller { return } + public async getOrderlist() { + const { ctx } = this; + const { page, pageSize, sortField, sortOrder, form } = ctx.request.body; + ctx.body = await ctx.service.game.getOrderlist(page, pageSize, sortField, sortOrder, form); + return + } + public async getNoticeList() { const { ctx } = this; const { page, pageSize, sortField, sortOrder, form } = ctx.request.body; diff --git a/gm-server/app/router.ts b/gm-server/app/router.ts index 14d734a05..4b68589a9 100644 --- a/gm-server/app/router.ts +++ b/gm-server/app/router.ts @@ -52,6 +52,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/getorderlist', tokenParser, controller.game.getOrderlist); router.post('/api/dic/getdicgoods', tokenParser, controller.game.getDicGoods); router.post('/api/dic/getdichero', tokenParser, controller.game.getDicHero); diff --git a/gm-server/app/service/Game.ts b/gm-server/app/service/Game.ts index 2e3d36765..1422f67b1 100644 --- a/gm-server/app/service/Game.ts +++ b/gm-server/app/service/Game.ts @@ -15,9 +15,10 @@ import { ActivityGroupModel } from '@db/ActivityGroup'; import { nowSeconds } from '@pubUtils/timeUtil'; import { WhiteListModel } from '@db/RegionWhiteList'; import { RoleModel } from '@db/Role'; -import { SearchMarqueeParam } from '@domain/backEndField/search'; +import { SearchMarqueeParam, SearchOrderParam } from '@domain/backEndField/search'; import { DicServerName } from '@pubUtils/dictionary/DicServerName'; import { CreateRegionParam } from '@domain/backEndField/params'; +import { UserOrderModel } from '@db/UserOrder'; /** * Test Service @@ -179,6 +180,17 @@ export default class Game extends Service { }) } + public async getOrderlist(page: number, pageSize: number, sortField: string, sortOrder: string, form: SearchOrderParam) { + const { ctx } = this; + const list = await UserOrderModel.findByCondition(page, pageSize, sortField, sortOrder, form); + const total = await UserOrderModel.countByCondition( form ) + return ctx.service.utils.resResult(STATUS.SUCCESS, { + list: list.map(cur => { + return { ...cur, createdAt: cur.createdAt.getTime(), updatedAt: cur.updatedAt.getTime(), env: this.app.config.realEnv } + }), total + }); + } + public async getNoticeList(page: number, pageSize: number, sortField: string, sortOrder: string, form: { content?: string }) { const { ctx } = this; const list = await NoticeModel.findByCondition(page, pageSize, sortField, sortOrder, form); diff --git a/shared/db/GMRecord.ts b/shared/db/GMRecord.ts index 6c574644f..fdf879dbd 100644 --- a/shared/db/GMRecord.ts +++ b/shared/db/GMRecord.ts @@ -45,7 +45,7 @@ export default class GMRecord extends BaseModel { if (form.apiModule) searchObj['apiModule'] = form.apiModule; if (form.api) searchObj['api'] = form.api; if (form.createTimeStart && form.createTimeEnd) { - searchObj['createdAt'] = { $lte: new Date(form.createTimeEnd * 1000), $gte: new Date(form.createTimeStart * 100) }; + searchObj['createdAt'] = { $lte: new Date(form.createTimeEnd * 1000), $gte: new Date(form.createTimeStart * 1000) }; } return searchObj } diff --git a/shared/db/GiftCode.ts b/shared/db/GiftCode.ts index e4dc38360..0b817f6a5 100644 --- a/shared/db/GiftCode.ts +++ b/shared/db/GiftCode.ts @@ -91,7 +91,7 @@ export default class GiftCode extends BaseModel { if(form.id) searchObj['id'] = form.id; if (form.name != undefined) searchObj['name'] = { $regex: new RegExp(form.name.toString(), 'i') }; if (form.createTimeStart && form.createTimeEnd) { - searchObj['createdAt'] = { $lte: new Date(form.createTimeEnd * 1000), $gte: new Date(form.createTimeStart * 100) }; + searchObj['createdAt'] = { $lte: new Date(form.createTimeEnd * 1000), $gte: new Date(form.createTimeStart * 1000) }; } return searchObj } diff --git a/shared/db/UserLog.ts b/shared/db/UserLog.ts index 8138fa20f..b6847ccdc 100644 --- a/shared/db/UserLog.ts +++ b/shared/db/UserLog.ts @@ -115,7 +115,7 @@ export default class UserLog extends BaseModel { if (form.roleId) searchObj['roleId'] = form.roleId; if(form.roleName) searchObj['roleName'] = { $regex: new RegExp(form.roleName.toString(), 'i') }; if (form.createTimeStart && form.createTimeEnd) { - searchObj['createdAt'] = { $lte: new Date(form.createTimeEnd * 1000), $gte: new Date(form.createTimeStart * 100) }; + searchObj['createdAt'] = { $lte: new Date(form.createTimeEnd * 1000), $gte: new Date(form.createTimeStart * 1000) }; } return searchObj } diff --git a/shared/db/UserOrder.ts b/shared/db/UserOrder.ts index 61408e42f..ade7133f7 100644 --- a/shared/db/UserOrder.ts +++ b/shared/db/UserOrder.ts @@ -1,6 +1,7 @@ import BaseModel from './BaseModel'; import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose'; import { ORDER_STATE } from '../consts'; +import { SearchOrderParam } from '@domain/backEndField/search'; /** * 玩家充值订单 @@ -111,6 +112,44 @@ export default class UserOrder extends BaseModel { { upsert: true, new: true }).lean(true); return result; } + + private static getSearchObj(form: SearchOrderParam) { + let searchObj = {}; + if(form.roleId != undefined) searchObj['roleId'] = form.roleId; + if(form.localOrderID != undefined) searchObj['localOrderID'] = form.localOrderID; + if(form.orderID != undefined) searchObj['orderID'] = form.orderID; + if(form.productID != undefined) searchObj['productID'] = form.productID; + if(form.payType != undefined) searchObj['payType'] = form.payType; + if(form.state != undefined) searchObj['state'] = form.state; + if (form.createTimeStart && form.createTimeEnd) { + searchObj['createdAt'] = { $lte: new Date(form.createTimeEnd * 1000), $gte: new Date(form.createTimeStart * 1000) }; + } + console.log('###', searchObj) + return searchObj + } + + public static async findByCondition(page: number, pageSize: number, sortField: string = 'updatedAt', sortOrder: string = 'descend', form: SearchOrderParam = {}) { + + let searchObj = this.getSearchObj(form); + let sort = {}; + if(sortField && sortOrder) { + if(sortOrder == 'ascend') { + sort[sortField] = 1; + } else if (sortOrder == 'descend') { + sort[sortField] = -1; + } + } + const result: UserOrderModelType[] = await UserOrderModel.find(searchObj).limit(pageSize).skip((page - 1) * pageSize).sort(sort).select('+sort +showStartTime +showEndTime +isEnable').lean({ getters: true, virtuals: true }); + return result; + + } + + public static async countByCondition(form: SearchOrderParam = {}) { + + let searchObj = this.getSearchObj(form); + const result = await UserOrderModel.count(searchObj); + return result; + } } export const UserOrderModel = getModelForClass(UserOrder); diff --git a/shared/domain/backEndField/search.ts b/shared/domain/backEndField/search.ts index b482ea244..04d7dad82 100644 --- a/shared/domain/backEndField/search.ts +++ b/shared/domain/backEndField/search.ts @@ -91,4 +91,15 @@ export interface SearchUserLogParam { roleName?: string; createTimeStart?: number; createTimeEnd?: number; +} + +export interface SearchOrderParam { + roleId?: string; // 角色id + localOrderID?: string; // 本地订单号 + orderID?: string; // 第3方订单号 + productID?: string; // 商品 + payType?: number; // 支付类型 + state?: number; // 订单状态 + createTimeStart?: number; + createTimeEnd?: number; } \ No newline at end of file diff --git a/shared/resource/jsons/dic_api.json b/shared/resource/jsons/dic_api.json index 5317d1982..dfe324dbe 100644 --- a/shared/resource/jsons/dic_api.json +++ b/shared/resource/jsons/dic_api.json @@ -789,5 +789,12 @@ "name": "虚拟充值", "module": "order", "type": "update" + }, + { + "id": 114, + "api": "/api/game/getorderlist", + "name": "获取订单列表", + "module": "order", + "type": "get" } ] \ No newline at end of file