diff --git a/game-server/app/servers/order/handler/orderHandler.ts b/game-server/app/servers/order/handler/orderHandler.ts index e9e4bb4e3..c5c1d8de5 100644 --- a/game-server/app/servers/order/handler/orderHandler.ts +++ b/game-server/app/servers/order/handler/orderHandler.ts @@ -1,6 +1,6 @@ import { Application, BackendSession } from 'pinus'; import { genCode, resResult } from '../../../pubUtils/util'; -import { ACTIVITY_TYPE, ORDER_STATE, PAY_TYPE, STATUS } from '../../../consts'; +import { ACTIVITY_TYPE, DEBUG_MAGIC_WORD, ORDER_STATE, PAY_TYPE, STATUS } from '../../../consts'; import { dicRMB } from '../../../pubUtils/dictionary/DicRMB'; import { UserOrderModel } from '../../../db/UserOrder'; import _ = require('underscore'); @@ -8,6 +8,7 @@ import { applyOrderWX, checkOrderWX } from '../../../services/pay/weixinPay'; import { applyOrderALI, checkOrderALI } from '../../../services/pay/aliPay'; import { makeOrder } from '../../../services/orderService'; import { addRechargeMoney } from '../../../services/rechargeMoneyService'; +import { ActivityModel, ActivityModelType } from '../../../db/Activity'; export default function (app: Application) { return new orderHandler(app); @@ -184,4 +185,63 @@ export class orderHandler { return resResult(STATUS.DUPLICATE_ORDER); } + + /** + * @description 支付测试 + * @param {{productID:string, magicWord:string }} msg + * @param {BackendSession} session + * @memberof orderHandler + */ + async debugOrder(msg: { productID: string, magicWord: string }, session: BackendSession) { + const { magicWord, productID, } = msg; + if (magicWord !== DEBUG_MAGIC_WORD) { + return resResult(STATUS.TOKEN_ERR); + } + + const roleId = session.get('roleId'); + const serverId = session.get('serverId'); + const sid = session.get('sid'); + const roleName = session.get('roleName'); + const funcs: number[] = session.get('funcs'); + + let payType = PAY_TYPE.TEST + //如果有特殊情况,activityId可为0 + if (!productID || !_.isString(productID)) { + return resResult(STATUS.WRONG_PARMS); + } + + //商品价格信息 + let productInfo = dicRMB.get(productID) + if (!productInfo) { + return resResult(STATUS.NO_PRODUCT_ID); + } + + let price = productInfo.price;//价格 + let productType = productInfo.type;//类型 + let message = productInfo.message;//商品信息 + let localOrderID = genCode(32);//本地订单号 + let orderID = '';//平台订单号 + let sdkOrderInfo = null;//客户端需要的平台订单信息 + + let activityArray: ActivityModelType[] = await ActivityModel.findActivityByType(serverId, productType, -1); + if (activityArray.length === 0) { + return resResult(STATUS.ACTIVITY_MISSING); + } + let activityData = activityArray[0]; + let activityId = activityData.activityId; + await UserOrderModel.applyOrder(serverId, roleId, productID, localOrderID, orderID, price, payType, activityId); + + //订单成功 + let orderInfo = await UserOrderModel.success(roleId, localOrderID); + if (orderInfo) { + //结算奖励 + let result = await makeOrder(localOrderID, sid); + //活动统计 + await addRechargeMoney(roleId, serverId, price); + console.log(`测试支付完成!!!!!!!!!!!!! serverId:${serverId}, productID:${productID}, roleId:${roleId}, localOrderID:${localOrderID}`) + return resResult(STATUS.SUCCESS, result); + } + + return resResult(STATUS.NO_ORDER, {}); + } } diff --git a/shared/consts/constModules/activityConst.ts b/shared/consts/constModules/activityConst.ts index 3f46f75c1..713c39617 100644 --- a/shared/consts/constModules/activityConst.ts +++ b/shared/consts/constModules/activityConst.ts @@ -71,6 +71,7 @@ export enum FIRST_GIFT_STATE { * 支付类型 */ export enum PAY_TYPE { + TEST = 0, // 测试 WX = 1, // 微信 ALI = 2, // 阿里 APPLE = 3, // 苹果