feat(充值): 添加英杰币

This commit is contained in:
luying
2023-04-11 11:33:10 +08:00
parent 10d0e13bcc
commit 86c5d08642
7 changed files with 62 additions and 11 deletions

View File

@@ -102,7 +102,7 @@ export class GmOrderHandler {
continue;
}
let paramStr = await getParamStr(activityData, productID, role);
let orderInfo = await UserOrderModel.applyOrder(serverId, roleId, productID, localOrderID, orderID, price, payType, activityId, paramStr, message, false);
let orderInfo = await UserOrderModel.applyOrder(serverId, roleId, productID, localOrderID, orderID, price, payType, activityId, paramStr, message, false, 0);
//订单成功
if(!orderInfo) {

View File

@@ -12,7 +12,7 @@ import { getActivityById } from '../../../services/activity/activityService';
import { reportTAEvent } from '../../../services/sdkService';
import { canPay, isDebugPay } from '../../../pubUtils/sdkUtil';
import { isDevelopEnv } from '../../../services/utilService';
import { getVoucherObject, handleCost } from '../../../services/role/rewardService';
import { getVoucherCoinObject, getVoucherObject, handleCost } from '../../../services/role/rewardService';
import { CheckMeterial } from '../../../services/role/checkMaterial';
export default function (app: Application) {
@@ -60,12 +60,22 @@ export class orderHandler {
let localOrderID = genCode(32);//本地订单号
let orderID = '';//平台订单号
let sdkOrderInfo = null;//客户端需要的平台订单信息
let voucherId = 0;
if(useVoucher) {
let voucher = getVoucherObject(price);
let check = new CheckMeterial(roleId);
let isEnough = await check.decrease([voucher]);
if (!isEnough) return resResult(STATUS.VOUCHER_NOT_ENOUGH);
if (!isEnough) {
let voucher = getVoucherCoinObject(price);
let check = new CheckMeterial(roleId);
let isEnough = await check.decrease([voucher]);
if (!isEnough) return resResult(STATUS.VOUCHER_NOT_ENOUGH);
voucherId = voucher.id;
} else {
voucherId = voucher.id;
}
} else {
switch (payType) {
case PAY_TYPE.THREE_SEVEN:
@@ -128,7 +138,7 @@ export class orderHandler {
}
await UserOrderModel.applyOrder(serverId, roleId, productID, localOrderID, orderID, price, payType, activityId, paramStr, message, useVoucher);
await UserOrderModel.applyOrder(serverId, roleId, productID, localOrderID, orderID, price, payType, activityId, paramStr, message, useVoucher, voucherId);
reportTAEvent(roleId, TA_EVENT.RECHARGE, {
pay_id: localOrderID, chargeId: productID, pay_name: message, pay_amount: price, pay_channel: payType
}, ip)
@@ -171,8 +181,9 @@ export class orderHandler {
}
if(orderInfo.useVoucher) {
let voucher = getVoucherObject(productInfo.price);
let result = await handleCost(roleId, sid, [voucher], ITEM_CHANGE_REASON.USE_VOUCHER);
let voucherId = orderInfo.voucherId;
let voucher = [{ id: voucherId, count: productInfo.price }];
let result = await handleCost(roleId, sid, voucher, ITEM_CHANGE_REASON.USE_VOUCHER);
if(!result) return resResult(STATUS.VOUCHER_NOT_ENOUGH);
let res = await settleOrderFromHandler(localOrderID, roleId, serverId, sid);
@@ -291,7 +302,7 @@ export class orderHandler {
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, false);
let orderInfo = await UserOrderModel.applyOrder(serverId, roleId, productID, localOrderID, orderID, price, payType, activityId, paramStr, message, false, 0);
//订单成功
if(!orderInfo) {

View File

@@ -33,6 +33,7 @@ import { checkParamPrice, needRebate } from '../pubUtils/sdkUtil';
import { checkShopCanBuyInOrder, makeShopOrder } from './shopService';
import { checkWeeklyFund, makeWeeklyFund } from './activity/weeklyFundService';
import { checkMonthlyFund, makeMonthlyFund } from './activity/monthlyFundService';
import { gameData } from '../pubUtils/data';
export async function checkOrderCanBuy(roleId: string, serverId: number, activityData: ActivityModelType, productID: string, paramStr: string) {
let activityId = activityData.activityId;
@@ -270,7 +271,7 @@ export async function settleOrder(order: UserOrderModelType, serverId: number, s
//成长任务
checkTask(serverId, order.roleId, null, TASK_TYPE.ACTIVITY_RMB, { count: order.price });
if(order.payType != PAY_TYPE.TEST) {
reportTAEvent(order.roleId, TA_EVENT.RECHARGE_SUCCESS, { pay_id: order.localOrderID, charge_id: order.productID, pay_name: order.message, pay_amount: order.price, pay_channel: order.payType, pay_type: order.useVoucher? "现金": "代金券" })
reportTAEvent(order.roleId, TA_EVENT.RECHARGE_SUCCESS, { pay_id: order.localOrderID, charge_id: order.productID, pay_name: order.message, pay_amount: order.price, pay_channel: order.payType, pay_type: getVoucherType(order.useVoucher, order.voucherId) })
reportTAUserSet(TA_USERSET_TYPE.SET_ONCE, order.roleId, { first_pay_time: new Date() });
reportTAUserSet(TA_USERSET_TYPE.SET, order.roleId, { last_pay_time: new Date() });
reportTAUserSet(TA_USERSET_TYPE.ADD, order.roleId, { total_revenue: order.price });
@@ -286,6 +287,15 @@ export async function settleOrder(order: UserOrderModelType, serverId: number, s
return result.data;
}
function getVoucherType(useVoucher: boolean, voucherId: number) {
if(useVoucher) {
let dicGood = gameData.goods.get(voucherId);
if(!dicGood) return '未知';
return dicGood.name;
}
return '现金'
}
export async function settleOrderWx(order: UserOrderModelType, serverId: number, sid: string) {
if (order.state == ORDER_STATE.RESULT_SUCCESS) {

View File

@@ -612,6 +612,9 @@ export function getHonourObject(count: number) {
return { id: CURRENCY_BY_TYPE.get(CURRENCY_TYPE.VOUCHER), count };
}
export function getVoucherCoinObject(count: number) {
return { id: CURRENCY_BY_TYPE.get(CURRENCY_TYPE.VOUCHER_COIN), count };
}
/**
* 返回 解锁头像/相框