diff --git a/game-server/app/servers/order/handler/orderHandler.ts b/game-server/app/servers/order/handler/orderHandler.ts index 6bd7063da..901cac80e 100644 --- a/game-server/app/servers/order/handler/orderHandler.ts +++ b/game-server/app/servers/order/handler/orderHandler.ts @@ -8,6 +8,7 @@ import { UserOrderModel } from '../../../db/UserOrder'; import _ = require('underscore'); import { applyOrderWX, checkOrderWX } from '../../../services/pay/weixinPay'; import { applyOrderALI, checkOrderALI } from '../../../services/pay/aliPay'; +import { makeOrder } from '../../../services/orderService'; export default function (app: Application) { return new orderHandler(app); @@ -45,8 +46,6 @@ export class orderHandler { let message = productInfo.message;//商品信息 let localOrderID = genCode(32);//本地订单号 let orderID = '';//平台订单号 - - let sdkOrderInfo = null;//客户端需要的平台订单信息 switch (payType) { case PAY_TYPE.WX: @@ -81,14 +80,10 @@ export class orderHandler { console.log('未知支付类型'); return resResult(STATUS.NO_PAY_TYPE); } - await UserOrderModel.applyOrder(serverId, roleId, productID, localOrderID, orderID, price, payType); return resResult(STATUS.SUCCESS, { orderInfo: sdkOrderInfo, productInfo, localOrderID }); - - } - /** * @description 查询订单,结算奖励 * @param {{ localOrderID: string}} msg @@ -105,7 +100,6 @@ export class orderHandler { if (!localOrderID || !_.isString(localOrderID)) { return resResult(STATUS.WRONG_PARMS); } - let orderInfo = await UserOrderModel.findOrder(localOrderID); if (!orderInfo) { return resResult(STATUS.NO_ORDER); @@ -125,17 +119,6 @@ export class orderHandler { let payType = orderInfo.payType;//支付类型 let roleId = orderInfo.roleId;//角色 - switch (productType) { - case ACTIVITY_TYPE.NEW_PLAYER_LIMIT_PACKAGE: - { - break; - } - default: - console.log('未知错误类型'); - return resResult(STATUS.NO_PRODUCT_ID); - - } - orderInfo = await UserOrderModel.check(roleId, localOrderID); if (!orderInfo) { return resResult(STATUS.DUPLICATE_ORDER); @@ -191,8 +174,9 @@ export class orderHandler { orderInfo = await UserOrderModel.success(roleId, localOrderID); if (orderInfo) { //结算奖励 + let result = await makeOrder(localOrderID); console.log('结算完成', localOrderID) - return resResult(STATUS.SUCCESS, Object.assign({})); + return resResult(STATUS.SUCCESS, result); } return resResult(STATUS.DUPLICATE_ORDER); diff --git a/game-server/app/services/orderService.ts b/game-server/app/services/orderService.ts index 61cb08237..6b35c0021 100644 --- a/game-server/app/services/orderService.ts +++ b/game-server/app/services/orderService.ts @@ -1,3 +1,48 @@ import { UserOrderModel } from '../db/UserOrder'; import { ActivitySignInModel, ActivitySignInModelType } from '../db/ActivitySignIn'; import { SignInData, SignInItem } from '../domain/activityField/signInField'; +import { ACTIVITY_TYPE, ORDER_STATE } from '../consts'; +import { dicRMB } from '../pubUtils/dictionary/DicRMB'; + + + + + +/** + * 结算账单 + * @param localOrderID 本地订单号 + */ +export async function makeOrder(localOrderID: string) { + let orderInfo = await UserOrderModel.findOrder(localOrderID); + if (!orderInfo) { + return '查无此订单'; + } + if (orderInfo.state == ORDER_STATE.RESULT_SUCCESS) { + return '结算过'; + } + //商品价格信息 + let productInfo = dicRMB.get(orderInfo.productID) + if (!productInfo) { + return '无效商品'; + } + + let productType = productInfo.type;//类型 + let price = orderInfo.price;//下单时的价格 + let payType = orderInfo.payType;//支付类型 + let roleId = orderInfo.roleId;//角色 + + switch (productType) { + case ACTIVITY_TYPE.NEW_PLAYER_LIMIT_PACKAGE: + { + break; + } + case ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_DAILY: + case ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_WEEKLY: + { + break; + } + default: + return '未知商品类型'; + } + return { goods: [], addHeros: [] } +} \ No newline at end of file