diff --git a/game-server/app/servers/order/handler/orderHandler.ts b/game-server/app/servers/order/handler/orderHandler.ts index 1f4c1e5ea..f86bdf290 100644 --- a/game-server/app/servers/order/handler/orderHandler.ts +++ b/game-server/app/servers/order/handler/orderHandler.ts @@ -178,14 +178,18 @@ export class orderHandler { //结算奖励 let result = await makeOrder(localOrderID, sid, orderInfo); + if (result.code !== 0) {//结算失败 + console.log(`测试支付失败..... ${JSON.stringify(result)}`) + return resResult(result); + } //推送 this.app.channelService.pushMessageByUids('onOrder', resResult(STATUS.SUCCESS, { - data: result, + data: result.data, }), [{ uid: roleId, sid: sid }]); //活动统计 await addRechargeMoney(roleId, serverId, price); console.log('结算完成', localOrderID) - return resResult(STATUS.SUCCESS, result); + return resResult(STATUS.SUCCESS, result.data); } return resResult(STATUS.DUPLICATE_ORDER); @@ -243,14 +247,18 @@ export class orderHandler { if (orderInfo) { //结算奖励 let result = await makeOrder(localOrderID, sid, orderInfo); + if (result.code !== 0) {//结算失败 + console.log(`测试支付失败..... ${JSON.stringify(result)}`) + return resResult(result); + } //推送 this.app.channelService.pushMessageByUids('onOrder', resResult(STATUS.SUCCESS, { - data: result, + data: result.data, }), [{ uid: roleId, sid: sid }]); //活动统计 await addRechargeMoney(roleId, serverId, price); console.log(`测试支付完成!!!!!!!!!!!!! serverId:${serverId}, productID:${productID}, productType:${productType}, roleId:${roleId}, localOrderID:${localOrderID}, payType:${payType}`) - return resResult(STATUS.SUCCESS, result); + return resResult(STATUS.SUCCESS, result.data); } return resResult(STATUS.NO_ORDER, {}); diff --git a/game-server/app/services/dailyRMBGiftsService.ts b/game-server/app/services/dailyRMBGiftsService.ts index e3cba9934..4f24bce5d 100644 --- a/game-server/app/services/dailyRMBGiftsService.ts +++ b/game-server/app/services/dailyRMBGiftsService.ts @@ -1,4 +1,4 @@ -import { ACTIVITY_TYPE, TASK_TYPE } from '../consts'; +import { ACTIVITY_TYPE, STATUS, TASK_TYPE } from '../consts'; import { ActivityModel, ActivityModelType } from '../db/Activity'; import { ActivityDailyRMBGiftsModel, ActivityDailyRMBGiftsModelType } from '../db/ActivityDailyRMBGifts'; import { DailyRMBGiftsData, DailyRMBGiftsItem } from '../domain/activityField/dailyRMBGiftsField'; @@ -72,20 +72,26 @@ export async function makeDailyRMBGiftsReward(roleId: string, roleName: string, activityId: number, productID: string) { let activityData: ActivityModelType = await ActivityModel.findActivity(activityId); if (activityData.type !== ACTIVITY_TYPE.RECHARGE_MONEY) { - return null; + return STATUS.ACTIVITY_TYPE_ERROR; } let playerData = new DailyRMBGiftsData(activityData); let bigGiftProductID = playerData.productID; if (bigGiftProductID == productID) {//一次性购买7天礼包 let buyTime = moment(new Date()).startOf('d').toDate() let endTime = moment(buyTime).add(7, 'd').endOf('d').toDate() - return Object.assign({}, { item: { endTime, receiveCount: 0 } }) + return { + code: 0, + data: Object.assign({}, { item: { endTime, receiveCount: 0 } }) + } } else { let item = playerData.findProduct(productID); let rewardParamArr: Array = stringToRewardParam(item.reward); let result = await addReward(roleId, roleName, sid, serverId, funcs, rewardParamArr) item.isBuy = true; item.isReceive = true; - return Object.assign(result, { item }) + return { + code: 0, + data: Object.assign(result, { item }) + } } } diff --git a/game-server/app/services/growthFundService.ts b/game-server/app/services/growthFundService.ts index 54269256d..350153432 100644 --- a/game-server/app/services/growthFundService.ts +++ b/game-server/app/services/growthFundService.ts @@ -1,4 +1,4 @@ -import { ACTIVITY_TYPE, TASK_TYPE } from '../consts'; +import { ACTIVITY_TYPE, STATUS, TASK_TYPE } from '../consts'; import { ActivityModel, ActivityModelType } from '../db/Activity'; import { ActivityGrowthFundModel, ActivityGrowthFundModelType } from '../db/ActivityGrowthFund'; import { ActivityBuyRecordsModel, ActivityBuyRecordsModelType } from '../db/ActivityBuyRecords'; @@ -126,15 +126,18 @@ export async function getPlayerGrowthFundData(activityId: number, serverId: numb export async function makeGrowthFund(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[], activityId: number, productID: string) { let activityData: ActivityModelType = await ActivityModel.findActivity(activityId); - if (activityData.type !== ACTIVITY_TYPE.GROWTH_FUND_MAIN_VIP && activityData.type !== ACTIVITY_TYPE.GROWTH_FUND_TOWER_VIP && activityData.type !== ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE_VIP) { - return null; - } if (!activityData) { - return null; + return STATUS.ACTIVITY_MISSING; + } + if (activityData.type !== ACTIVITY_TYPE.GROWTH_FUND_MAIN_VIP && activityData.type !== ACTIVITY_TYPE.GROWTH_FUND_TOWER_VIP && activityData.type !== ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE_VIP) { + return STATUS.ACTIVITY_TYPE_ERROR; } let playerData = new GrowthFundData(activityData); let pageData = playerData.findPageByProductID(productID); let pageIndex = pageData.pageIndex; await ActivityBuyRecordsModel.addRecord(activityId, roleId, activityData.type, pageIndex, true); - return Object.assign({}, { item: { pageIndex }, activityId: activityId }) + return { + code: 0, + data: Object.assign({}, { item: { pageIndex }, activityId: activityId }) + } } \ No newline at end of file diff --git a/game-server/app/services/limitPackageService.ts b/game-server/app/services/limitPackageService.ts index 3ad250c9e..2babc6a64 100644 --- a/game-server/app/services/limitPackageService.ts +++ b/game-server/app/services/limitPackageService.ts @@ -1,5 +1,5 @@ import moment = require('moment'); -import { ACTIVITY_TYPE, TASK_TYPE } from '../consts'; +import { ACTIVITY_TYPE, STATUS, TASK_TYPE } from '../consts'; import { ActivityModel, ActivityModelType } from '../db/Activity'; import { ActivityShopModel, ActivityShopModelType } from '../db/ActivityShop'; import { RoleModel } from '../db/Role'; @@ -103,12 +103,12 @@ export async function makeLimitPackageReward(roleId: string, roleName: string, s activityId: number, productID: string) { let activityData: ActivityModelType = await ActivityModel.findActivity(activityId); if (!activityData) { - return null; + return STATUS.ACTIVITY_MISSING; } if (activityData.type !== ACTIVITY_TYPE.NEW_PLAYER_LIMIT_PACKAGE && activityData.type !== ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_DAILY && activityData.type !== ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_WEEKLY) { - return null; + return STATUS.ACTIVITY_TYPE_ERROR; } let playerData = new LimitShopData(activityData); @@ -117,10 +117,10 @@ export async function makeLimitPackageReward(roleId: string, roleName: string, s let item = playerData.findItemByProductID(productID); if (!item) { - return null; + return STATUS.ACTIVITY_NO_PRODUCT; } if (item.countMax > 0 && item.buyCount >= item.countMax) { - return null; + return STATUS.ACTIVITY_MAX_COUNT; } let rewardArray = stringToRewardParam(item.reward) @@ -129,5 +129,8 @@ export async function makeLimitPackageReward(roleId: string, roleName: string, s await ActivityShopModel.addRecord(activityId, roleId, playerData.roundIndex, item.id); item.buyCount += 1; - return Object.assign(result, { item: item, activityId: activityId }) + return { + code: 0, + data: Object.assign(result, { item: item, activityId: activityId }) + } } diff --git a/game-server/app/services/monthlyTicketService.ts b/game-server/app/services/monthlyTicketService.ts index c843b5072..d3a67b33d 100644 --- a/game-server/app/services/monthlyTicketService.ts +++ b/game-server/app/services/monthlyTicketService.ts @@ -115,7 +115,7 @@ export async function makeMonthlyTicketReward(roleId: string, roleName: string, activityId: number, productID: string) { let activityData: ActivityModelType = await ActivityModel.findActivity(activityId); if (activityData.type !== ACTIVITY_TYPE.MONTHLY_TICKET_1 && activityData.type !== ACTIVITY_TYPE.MONTHLY_TICKET_2) { - return null; + return STATUS.ACTIVITY_TYPE_ERROR; } let playerData = new MonthlyTicketData(activityData); @@ -127,5 +127,8 @@ export async function makeMonthlyTicketReward(roleId: string, roleName: string, let firstReward = playerData.firstReward; let rewardParamArr: Array = stringToRewardParam(firstReward); let result = await addReward(roleId, roleName, sid, serverId, funcs, rewardParamArr) - return Object.assign(result, { item: { isOpen: true, todayIndex: 1 }, activityId: activityData.activityId }) + return { + code: 0, + data: Object.assign(result, { item: { isOpen: true, todayIndex: 1 }, activityId: activityData.activityId }) + } } diff --git a/game-server/app/services/orderService.ts b/game-server/app/services/orderService.ts index 95fc5823b..d57ffe24c 100644 --- a/game-server/app/services/orderService.ts +++ b/game-server/app/services/orderService.ts @@ -37,7 +37,7 @@ export async function makeOrder(localOrderID: string, sid: string, orderInfo: Us const roleInfo = await RoleModel.findByRoleId(roleId); - let rewardResult: any = {}; + let rewardResult: any = { code: 0, data: null }; //首冲礼包 { diff --git a/game-server/app/services/popUpShopService.ts b/game-server/app/services/popUpShopService.ts index 11cf4b3ee..141c0a2b0 100644 --- a/game-server/app/services/popUpShopService.ts +++ b/game-server/app/services/popUpShopService.ts @@ -1,4 +1,4 @@ -import { ACTIVITY_TYPE, TASK_TYPE } from '../consts'; +import { ACTIVITY_TYPE, STATUS, TASK_TYPE } from '../consts'; import { ActivityModel, ActivityModelType } from '../db/Activity'; import { PopUpShopData, } from '../domain/activityField/popUpShopField'; import { RewardParam } from '../domain/activityField/rewardField'; @@ -69,23 +69,26 @@ export async function makePopUpShopReward(roleId: string, roleName: string, sid: activityId: number, productID: string) { let activityData: ActivityModelType = await ActivityModel.findActivity(activityId); if (!activityData) { - return null; + return STATUS.ACTIVITY_MISSING; } if (activityData.type !== ACTIVITY_TYPE.POP_UP_SHOP) { - return null; + return STATUS.ACTIVITY_TYPE_ERROR; } let allTaskData: any[] = JSON.parse(activityData.data); let taskIndex = allTaskData.findIndex(obj => { return obj && obj.data.productID == productID }); if (taskIndex == -1) { - return null; + return STATUS.ACTIVITY_NO_PRODUCT; } let playerData = new PopUpShopData(allTaskData[taskIndex]); let playerRecords: ActivityPopUpShopModelType = await ActivityPopUpShopModel.addRecord(serverId, activityId, roleId, playerData.id); if (!playerRecords) { - return null; + return STATUS.APPLY_ORDER_ERROR; } let rewardParamArr: Array = stringToRewardParam(playerData.reward); let result = await addReward(roleId, roleName, sid, serverId, funcs, rewardParamArr) - return Object.assign(result, { item: { isBuy: true }, activityId: activityData.activityId }) + return { + code: 0, + data: Object.assign(result, { item: { isBuy: true }, activityId: activityData.activityId }) + } } \ No newline at end of file diff --git a/game-server/app/services/signInService.ts b/game-server/app/services/signInService.ts index 848a32aa6..4b53e1f41 100644 --- a/game-server/app/services/signInService.ts +++ b/game-server/app/services/signInService.ts @@ -1,5 +1,5 @@ import moment = require('moment'); -import { ACTIVITY_TYPE, SERVER_OPEN_TIME, SIGNIN_CLOSE, SIGNIN_OPEN, SIGNIN_VIP_OPEN_LIMIT } from '../consts'; +import { ACTIVITY_TYPE, SERVER_OPEN_TIME, SIGNIN_CLOSE, SIGNIN_OPEN, SIGNIN_VIP_OPEN_LIMIT, STATUS } from '../consts'; import { ActivityModel, ActivityModelType } from '../db/Activity'; import { ActivitySignInModel, ActivitySignInModelType } from '../db/ActivitySignIn'; import { ServerlistModel } from '../db/Serverlist'; @@ -94,13 +94,16 @@ export async function makeSignInVIP(roleId: string, roleName: string, sid: strin activityId: number, productID: string) { let activityData: ActivityModelType = await ActivityModel.findActivity(activityId); if (activityData.type !== ACTIVITY_TYPE.SIGN_IN_VIP) { - return null; + return STATUS.ACTIVITY_TYPE_ERROR; } let playerData = new SignInData(activityData); await ActivitySignInModel.buyVIP(activityId, roleId, playerData.roundIndex); - return Object.assign({}, { item: { isVip: true }, activityId: activityData.activityId }) + return { + code: 0, + data: Object.assign({}, { item: { isVip: true }, activityId: activityData.activityId }) + } } //高级签到开启条件 diff --git a/game-server/app/services/yuanbaoService.ts b/game-server/app/services/yuanbaoService.ts index f4bfd7af1..201946a61 100644 --- a/game-server/app/services/yuanbaoService.ts +++ b/game-server/app/services/yuanbaoService.ts @@ -1,4 +1,4 @@ -import { ACTIVITY_TYPE, TASK_TYPE } from '../consts'; +import { ACTIVITY_TYPE, STATUS, TASK_TYPE } from '../consts'; import { ActivityModel, ActivityModelType } from '../db/Activity'; import { ServerlistModel } from '../db/Serverlist'; import { UserOrderModel, UserOrderModelType } from '../db/UserOrder'; @@ -60,7 +60,7 @@ export async function makeYuanbaoShopReward(roleId: string, roleName: string, si let records = await UserOrderModel.findSuccessOrderByProductID(productID, roleId, activityId); let activityData: ActivityModelType = await ActivityModel.findActivity(activityId); if (activityData.type !== ACTIVITY_TYPE.YUAN_BAO_SHOP) { - return null; + return STATUS.ACTIVITY_TYPE_ERROR; } let playerData = new YuanBaoShopData(activityData); let item = playerData.findItem(productID); @@ -85,5 +85,8 @@ export async function makeYuanbaoShopReward(roleId: string, roleName: string, si let result = await addReward(roleId, roleName, sid, serverId, funcs, arr) item.buyCount += 1; - return Object.assign(result, { item, activityId: activityData.activityId }) + return { + code: 0, + data: Object.assign(result, { item, activityId: activityData.activityId }) + } } diff --git a/shared/consts/statusCode.ts b/shared/consts/statusCode.ts index 2c741b2b7..613216b97 100644 --- a/shared/consts/statusCode.ts +++ b/shared/consts/statusCode.ts @@ -386,6 +386,8 @@ export const STATUS = { ORDER_ERROR: { code: 70006, simStr: '订单错误' }, PRICE_ERROR: { code: 70007, simStr: '价格错误' }, NO_PAY: { code: 70008, simStr: '未支付' }, - NO_MOTHLY_TICKET_REWARD: { code: 70009, simStr: '没有可领取的月卡奖励' } + NO_MOTHLY_TICKET_REWARD: { code: 70009, simStr: '没有可领取的月卡奖励' }, + ACTIVITY_TYPE_ERROR: { code: 70010, simStr: '活动类型错误' }, + ACTIVITY_NO_PRODUCT: { code: 70011, simStr: '活动数据错误' } } diff --git a/shared/db/ActivityPopUpShop.ts b/shared/db/ActivityPopUpShop.ts index b57bcfb0e..3f5b23149 100644 --- a/shared/db/ActivityPopUpShop.ts +++ b/shared/db/ActivityPopUpShop.ts @@ -23,7 +23,7 @@ export default class Activity_Pop_Up_Shop extends BaseModel { @prop({ required: true }) isBuy: boolean; // 是否购买 - //购买奖励的记录 + //购买记录 public static async addRecord(serverId: number, activityId: number, roleId: string, id: number) { let nowDate = new Date(); let result: ActivityPopUpShopModelType = await ActivityPopUpShopModel.findOneAndUpdate({ diff --git a/shared/db/ActivitySignIn.ts b/shared/db/ActivitySignIn.ts index 960b91753..cf74d63c0 100644 --- a/shared/db/ActivitySignIn.ts +++ b/shared/db/ActivitySignIn.ts @@ -34,7 +34,7 @@ export default class Activity_Sign_In extends BaseModel { records.push(record) } let result: ActivitySignInModelType = await ActivitySignInModel.findOneAndUpdate({ roleId, activityId, roundIndex }, - { $push: { records: { $each: records } } }, { new: true }).lean(true); + { $push: { records: { $each: records } } }, { upsert: true, new: true }).lean(true); return result; }