mirror of
http://git.coreshop.cn/jianweie/coreshoppro.git
synced 2025-12-06 18:13:26 +08:00
【新增】增加【服务订单】超市未支付自定取消订单,后台【商城设置】【平台设置】【订单管理】的tab第一条可以设置超时时间。
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Threading.Tasks;
|
||||
using CoreCms.Net.Configuration;
|
||||
@@ -17,10 +18,13 @@ using CoreCms.Net.IRepository;
|
||||
using CoreCms.Net.IRepository.UnitOfWork;
|
||||
using CoreCms.Net.IServices;
|
||||
using CoreCms.Net.Model.Entities;
|
||||
using CoreCms.Net.Model.Entities.Expression;
|
||||
using CoreCms.Net.Model.ViewModels.Basics;
|
||||
using CoreCms.Net.Model.ViewModels.UI;
|
||||
using CoreCms.Net.Utility.Extensions;
|
||||
using CoreCms.Net.Utility.Helper;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Newtonsoft.Json;
|
||||
using SqlSugar;
|
||||
|
||||
|
||||
@@ -33,13 +37,17 @@ namespace CoreCms.Net.Services
|
||||
{
|
||||
private readonly ICoreCmsUserServicesOrderRepository _dal;
|
||||
private readonly IServiceProvider _serviceProvider;
|
||||
private readonly ICoreCmsSettingServices _settingServices;
|
||||
private readonly ISysTaskLogServices _taskLogServices;
|
||||
|
||||
|
||||
private readonly IUnitOfWork _unitOfWork;
|
||||
public CoreCmsUserServicesOrderServices(IUnitOfWork unitOfWork, ICoreCmsUserServicesOrderRepository dal, IServiceProvider serviceProvider)
|
||||
public CoreCmsUserServicesOrderServices(IUnitOfWork unitOfWork, ICoreCmsUserServicesOrderRepository dal, IServiceProvider serviceProvider, ICoreCmsSettingServices settingServices, ISysTaskLogServices taskLogServices)
|
||||
{
|
||||
this._dal = dal;
|
||||
_serviceProvider = serviceProvider;
|
||||
_settingServices = settingServices;
|
||||
_taskLogServices = taskLogServices;
|
||||
base.BaseDal = dal;
|
||||
_unitOfWork = unitOfWork;
|
||||
}
|
||||
@@ -130,5 +138,51 @@ namespace CoreCms.Net.Services
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 自动取消订单(定时任务使用)
|
||||
/// <summary>
|
||||
/// 自动取消订单(定时任务使用)
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task<WebApiCallBack> AutoCancelOrder()
|
||||
{
|
||||
var jm = new WebApiCallBack();
|
||||
|
||||
var allConfigs = await _settingServices.GetConfigDictionaries();
|
||||
var time = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ServiceOrderCancelTime).ObjectToInt(30);
|
||||
var endTime = DateTime.Now.AddMinutes(-time);
|
||||
|
||||
var where = PredicateBuilder.True<CoreCmsUserServicesOrder>();
|
||||
where = where.And(p => p.isPay == false);
|
||||
where = where.And(p => p.status == (int)GlobalEnumVars.ServicesOrderStatus.正常);
|
||||
where = where.And(p => p.createTime <= endTime);
|
||||
|
||||
var orderInfos = await _dal.QueryListByClauseAsync(where);
|
||||
|
||||
jm.status = true;
|
||||
jm.msg = "取消成功";
|
||||
|
||||
|
||||
if (orderInfos.Any())
|
||||
{
|
||||
orderInfos.ForEach(p => p.status = (int)GlobalEnumVars.ServicesOrderStatus.作废);
|
||||
|
||||
await _dal.UpdateAsync(orderInfos);
|
||||
}
|
||||
|
||||
//插入日志
|
||||
var model = new SysTaskLog
|
||||
{
|
||||
createTime = DateTime.Now,
|
||||
isSuccess = jm.status,
|
||||
name = "自动取消服务订单",
|
||||
parameters = JsonConvert.SerializeObject(jm)
|
||||
};
|
||||
await _taskLogServices.InsertAsync(model);
|
||||
|
||||
return jm;
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user