忽略dll文件git
This commit is contained in:
@@ -1,67 +1,67 @@
|
||||
using Hncore.Infrastructure.Common;
|
||||
using Hncore.Pass.BaseInfo.Models;
|
||||
using Hncore.Pass.BaseInfo.Request.User;
|
||||
using Hncore.Pass.Vpn.Domain;
|
||||
using Hncore.Pass.Vpn.Request.Product;
|
||||
using Hncore.Pass.Vpn.Service;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.Vpn.Job
|
||||
{
|
||||
/// <summary>
|
||||
/// 超时支付的job
|
||||
/// </summary>
|
||||
public class OrderOutTimePayJob
|
||||
{
|
||||
|
||||
public static void Start(IServiceProvider serviceProvider)
|
||||
{
|
||||
Task.Run(async () => { await Execute(serviceProvider); });
|
||||
}
|
||||
|
||||
private static async Task Execute(IServiceProvider serviceProvider)
|
||||
{
|
||||
while (true) // 每轮间隔10分钟
|
||||
{
|
||||
LogHelper.Trace("开始处理超时支付");
|
||||
try
|
||||
{
|
||||
using (var scope = serviceProvider.CreateScope())
|
||||
{
|
||||
var orderService = scope.ServiceProvider.GetService<ProductOrderService>();
|
||||
var userService = scope.ServiceProvider.GetService<Hncore.Pass.BaseInfo.Service.UserService>();
|
||||
var orders = await orderService.GetLimitTimeOrders(Domain.OrderStatus.NoPay, 30);
|
||||
orders.ForEach(async order =>
|
||||
{
|
||||
order.OrderState = Domain.OrderStatus.TimeOutClose;
|
||||
await orderService.Update(order);
|
||||
//返还用户余额支付部分
|
||||
if (order.AccountPayAmount > 0)
|
||||
{
|
||||
var amountInfo = new UpdateAmountRequest()
|
||||
{
|
||||
Amount = order.AccountPayAmount.Value,
|
||||
OpAmountType = ScoreType.AccountRefund,
|
||||
UserId = order.UserId,
|
||||
AttchInfo = order.OrderNo,
|
||||
OperateUserName = order.UserName,
|
||||
};
|
||||
await userService.UpdateAmount(amountInfo);
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LogHelper.Error("处理超时支付失败", e);
|
||||
break;
|
||||
}
|
||||
await Task.Delay(60 * 1000);
|
||||
}
|
||||
}
|
||||
}
|
||||
using Hncore.Infrastructure.Common;
|
||||
using Hncore.Pass.BaseInfo.Models;
|
||||
using Hncore.Pass.BaseInfo.Request.User;
|
||||
using Hncore.Pass.Vpn.Domain;
|
||||
using Hncore.Pass.Vpn.Request.Product;
|
||||
using Hncore.Pass.Vpn.Service;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.Vpn.Job
|
||||
{
|
||||
/// <summary>
|
||||
/// 超时支付的job
|
||||
/// </summary>
|
||||
public class OrderOutTimePayJob
|
||||
{
|
||||
|
||||
public static void Start(IServiceProvider serviceProvider)
|
||||
{
|
||||
Task.Run(async () => { await Execute(serviceProvider); });
|
||||
}
|
||||
|
||||
private static async Task Execute(IServiceProvider serviceProvider)
|
||||
{
|
||||
while (true) // 每轮间隔10分钟
|
||||
{
|
||||
LogHelper.Trace("开始处理超时支付");
|
||||
try
|
||||
{
|
||||
using (var scope = serviceProvider.CreateScope())
|
||||
{
|
||||
var orderService = scope.ServiceProvider.GetService<ProductOrderService>();
|
||||
var userService = scope.ServiceProvider.GetService<Hncore.Pass.BaseInfo.Service.UserService>();
|
||||
var orders = await orderService.GetLimitTimeOrders(Domain.OrderStatus.NoPay, 30);
|
||||
orders.ForEach(async order =>
|
||||
{
|
||||
order.OrderState = Domain.OrderStatus.TimeOutClose;
|
||||
await orderService.Update(order);
|
||||
//返还用户余额支付部分
|
||||
if (order.AccountPayAmount > 0)
|
||||
{
|
||||
var amountInfo = new UpdateAmountRequest()
|
||||
{
|
||||
Amount = order.AccountPayAmount.Value,
|
||||
OpAmountType = ScoreType.AccountRefund,
|
||||
UserId = order.UserId,
|
||||
AttchInfo = order.OrderNo,
|
||||
OperateUserName = order.UserName,
|
||||
};
|
||||
await userService.UpdateAmount(amountInfo);
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LogHelper.Error("处理超时支付失败", e);
|
||||
break;
|
||||
}
|
||||
await Task.Delay(60 * 1000);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user