充值:添加充值前检查

This commit is contained in:
luying
2022-04-29 10:47:33 +08:00
parent d7db67dd2b
commit 57da91f7f4
5 changed files with 54 additions and 2 deletions

View File

@@ -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);
//订单成功

View File

@@ -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
}

View File

@@ -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
}
/**
* 结算账单

View File

@@ -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: '该礼包不可购买' },
}

View File

@@ -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);