fix: 分销奖励支持充值订单
This commit is contained in:
parent
20156803da
commit
9ba2600b67
|
|
@ -497,11 +497,15 @@ public class PaymentNotifyService : IPaymentNotifyService
|
||||||
// 处理成功后的后续操作
|
// 处理成功后的后续操作
|
||||||
if (processResult)
|
if (processResult)
|
||||||
{
|
{
|
||||||
// 分销奖励(仅对抽盒子订单生效,不包括充值、运费等)
|
// 分销奖励(抽盒子订单和充值生效,运费不生效)
|
||||||
if (attach.StartsWith("order_") || attach.StartsWith("infinite_") ||
|
if (attach == OrderAttachType.UserRecharge)
|
||||||
|
{
|
||||||
|
await ProcessDistributionRewardAsync(orderNo, user.Id, isRecharge: true);
|
||||||
|
}
|
||||||
|
else if (attach.StartsWith("order_") || attach.StartsWith("infinite_") ||
|
||||||
LotteryOrderTypes.Contains(attach) || InfiniteOrderTypes.Contains(attach))
|
LotteryOrderTypes.Contains(attach) || InfiniteOrderTypes.Contains(attach))
|
||||||
{
|
{
|
||||||
await ProcessDistributionRewardAsync(orderNo, user.Id);
|
await ProcessDistributionRewardAsync(orderNo, user.Id, isRecharge: false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 调用微信发货接口
|
// 调用微信发货接口
|
||||||
|
|
@ -1518,17 +1522,33 @@ public class PaymentNotifyService : IPaymentNotifyService
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="orderNo">订单号</param>
|
/// <param name="orderNo">订单号</param>
|
||||||
/// <param name="userId">下级用户ID</param>
|
/// <param name="userId">下级用户ID</param>
|
||||||
private async Task ProcessDistributionRewardAsync(string orderNo, int userId)
|
/// <param name="isRecharge">是否为充值订单</param>
|
||||||
|
private async Task ProcessDistributionRewardAsync(string orderNo, int userId, bool isRecharge = false)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// 1. 获取订单信息
|
// 1. 获取支付金额
|
||||||
var order = await _dbContext.Orders
|
decimal price;
|
||||||
.Where(o => o.OrderNum == orderNo)
|
if (isRecharge)
|
||||||
.Select(o => new { o.Price, o.UserId })
|
{
|
||||||
.FirstOrDefaultAsync();
|
// 充值订单从 UserRecharges 表获取金额
|
||||||
|
var rechargeOrder = await _dbContext.UserRecharges
|
||||||
|
.Where(r => r.OrderNum == orderNo)
|
||||||
|
.Select(r => r.Money)
|
||||||
|
.FirstOrDefaultAsync();
|
||||||
|
price = rechargeOrder;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 抽盒子订单从 Orders 表获取金额
|
||||||
|
var order = await _dbContext.Orders
|
||||||
|
.Where(o => o.OrderNum == orderNo)
|
||||||
|
.Select(o => o.Price)
|
||||||
|
.FirstOrDefaultAsync();
|
||||||
|
price = order;
|
||||||
|
}
|
||||||
|
|
||||||
if (order == null || order.Price <= 0)
|
if (price <= 0)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -1543,7 +1563,7 @@ public class PaymentNotifyService : IPaymentNotifyService
|
||||||
// 3. 计算奖励金额
|
// 3. 计算奖励金额
|
||||||
// fx_bili 是百分比,如 3 表示 3%
|
// fx_bili 是百分比,如 3 表示 3%
|
||||||
var ratio = fxBili / 100m;
|
var ratio = fxBili / 100m;
|
||||||
var rewardRmb = Math.Round(order.Price * ratio, 2);
|
var rewardRmb = Math.Round(price * ratio, 2);
|
||||||
if (rewardRmb <= 0)
|
if (rewardRmb <= 0)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
|
@ -1574,8 +1594,8 @@ public class PaymentNotifyService : IPaymentNotifyService
|
||||||
if (result)
|
if (result)
|
||||||
{
|
{
|
||||||
_logger.LogInformation(
|
_logger.LogInformation(
|
||||||
"分销奖励发放成功: OrderNo={OrderNo}, 下级UserId={UserId}, 上级Pid={Pid}, 支付金额={Price}, 奖励比例={Ratio}%, 奖励哈尼券={Reward}",
|
"分销奖励发放成功: OrderNo={OrderNo}, 下级UserId={UserId}, 上级Pid={Pid}, 支付金额={Price}, 奖励比例={Ratio}%, 奖励哈尼券={Reward}, 类型={Type}",
|
||||||
orderNo, userId, pid, order.Price, fxBili, rewardIntegral);
|
orderNo, userId, pid, price, fxBili, rewardIntegral, isRecharge ? "充值" : "抽盒子");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user