充值:添加充值前检查
This commit is contained in:
@@ -7,7 +7,7 @@ import _ = require('underscore');
|
||||
import { applyOrderWX, checkOrderWX } from '../../../services/pay/weixinPay';
|
||||
import { applyOrderALI, checkOrderALI } from '../../../services/pay/aliPay';
|
||||
import { applyOrder37 } from '../../../services/pay/37Pay';
|
||||
import { settleOrder, settleOrderAli, settleOrderWx } from '../../../services/orderService';
|
||||
import { checkOrderCanBuy, settleOrder, settleOrderAli, settleOrderWx } from '../../../services/orderService';
|
||||
import { addRechargeMoney } from '../../../services/activity/rechargeMoneyService';
|
||||
import { addVipRechargeMoney } from '../../../services/activity/vipRechargeMoneyService';
|
||||
import { getActivityById } from '../../../services/activity/activityService';
|
||||
@@ -100,6 +100,14 @@ export class orderHandler {
|
||||
console.log('未知支付类型');
|
||||
return resResult(STATUS.NO_PAY_TYPE);
|
||||
}
|
||||
|
||||
if(activityId > 0) {
|
||||
let activityData = await getActivityById(activityId);
|
||||
let check = await checkOrderCanBuy(roleId, serverId, activityData, productID, paramStr);
|
||||
if(!check) return resResult(STATUS.ORDER_CANNOT_BUY)
|
||||
}
|
||||
|
||||
|
||||
await UserOrderModel.applyOrder(serverId, roleId, productID, localOrderID, orderID, price, payType, activityId, paramStr, message);
|
||||
reportTAEvent(roleId, TA_EVENT.RECHARGE, {
|
||||
pay_id: localOrderID, chargeId: productID, pay_name: message, pay_amount: price, pay_channel: payType
|
||||
@@ -232,6 +240,9 @@ export class orderHandler {
|
||||
// }
|
||||
let activityData = await getActivityById(activityId);
|
||||
if (!activityData) return resResult(STATUS.ACTIVITY_MISSING);
|
||||
let check = await checkOrderCanBuy(roleId, serverId, activityData, productID, paramStr);
|
||||
if(!check) return resResult(STATUS.ORDER_CANNOT_BUY)
|
||||
|
||||
let orderInfo = await UserOrderModel.applyOrder(serverId, roleId, productID, localOrderID, orderID, price, payType, activityId, paramStr, message);
|
||||
|
||||
//订单成功
|
||||
|
||||
@@ -163,4 +163,27 @@ export async function makePopUpShopReward(roleId: string, roleName: string, sid:
|
||||
code: 0,
|
||||
data: Object.assign(result, { item: item, activityId })
|
||||
}
|
||||
}
|
||||
|
||||
export async function checkPopUpShopCanBuy(roleId: string, serverId: number, activityId: number, productID: string, paramStr: string) {
|
||||
if (!paramStr) {
|
||||
return false;
|
||||
}
|
||||
let paramObj = JSON.parse(paramStr);
|
||||
let code = paramObj.code;
|
||||
|
||||
let playerData = await getPopUpShopData(activityId, serverId, roleId);
|
||||
if (!playerData) {
|
||||
return false;
|
||||
}
|
||||
|
||||
let playerRecord: ActivityPopUpShopModelType = await ActivityPopUpShopModel.findByCode(serverId, activityId, roleId, code);
|
||||
if (!playerRecord) {
|
||||
return false;
|
||||
}
|
||||
|
||||
let item = playerData.checkItem(playerRecord, productID);
|
||||
if(!item) return false;
|
||||
|
||||
return true
|
||||
}
|
||||
@@ -6,7 +6,7 @@ import { RoleModel } from '../db/Role';
|
||||
import { makeMonthlyTicketReward } from './activity/monthlyTicketService';
|
||||
import { makeSignInVIP } from './activity/signInService';
|
||||
import { makeDailyRMBGiftsReward } from './activity/dailyRMBGiftsService';
|
||||
import { makePopUpShopReward } from './activity/popUpShopService';
|
||||
import { checkPopUpShopCanBuy, makePopUpShopReward } from './activity/popUpShopService';
|
||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||
import { ActivityFirstGiftModel } from '../db/ActivityFirstGift';
|
||||
import { ServerlistModel } from '../db/Serverlist';
|
||||
@@ -33,6 +33,17 @@ import { makeTaskPass } from './activity/taskPassService';
|
||||
import { addGuildPay } from './activity/guildPayService';
|
||||
import { sendMessageToUserWithSuc } from './pushService';
|
||||
|
||||
export async function checkOrderCanBuy(roleId: string, serverId: number, activityData: ActivityModelType, productID: string, paramStr: string) {
|
||||
let activityId = activityData.activityId;
|
||||
console.log('*****', activityData.type)
|
||||
switch(activityData.type) {
|
||||
case ACTIVITY_TYPE.POP_UP_SHOP:
|
||||
{
|
||||
return await checkPopUpShopCanBuy(roleId, serverId, activityId, productID, paramStr)
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
/**
|
||||
* 结算账单
|
||||
|
||||
@@ -512,6 +512,7 @@ export const STATUS = {
|
||||
ORDER_PARAM_ERROR: { code: 70013, simStr: '订单参数错误' },
|
||||
CHANNEL_INFO_NOT_FOUND: { code: 70014, simStr: '未找到玩家渠道数据' },
|
||||
ACTIVITY_TASK_NOT_COMPLETE: { code: 70015, simStr: '条件未达成' },
|
||||
ORDER_CANNOT_BUY: { code: 70016, simStr: '该礼包不可购买' },
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -114,6 +114,12 @@ export class PopUpShopData extends ActivityBase {
|
||||
return new PopUpShopShow(this);
|
||||
}
|
||||
|
||||
public checkItem(data: ActivityPopUpShopModelType, productID: string) {
|
||||
let pkg = this.findPackageById(data.id);
|
||||
let item = pkg.findItemByProductID(productID);
|
||||
return item.hasBoughtCnt < item.buyCnt;
|
||||
}
|
||||
|
||||
public updateRecord(data: ActivityPopUpShopModelType, productID: string) {
|
||||
let pkg = this.findPackageById(data.id);
|
||||
let dataItem = data.items.find(cur => cur.productID == productID);
|
||||
|
||||
Reference in New Issue
Block a user