【新增】增加【服务订单】超市未支付自定取消订单,后台【商城设置】【平台设置】【订单管理】的tab第一条可以设置超时时间。

This commit is contained in:
大灰灰
2023-01-01 22:13:55 +08:00
parent 0307562fe4
commit 614b05d8b1
7 changed files with 110 additions and 3 deletions

View File

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