diff --git a/BBWYB.Server.API/Controllers/TimeLimitTaskController.cs b/BBWYB.Server.API/Controllers/TimeLimitTaskController.cs
index deca3ce..6d82ec4 100644
--- a/BBWYB.Server.API/Controllers/TimeLimitTaskController.cs
+++ b/BBWYB.Server.API/Controllers/TimeLimitTaskController.cs
@@ -28,6 +28,16 @@ namespace BBWYB.Server.API.Controllers
timeLimitTaskBusiness.CheckTask();
}
+ ///
+ /// 修复订单缺失的待核算任务
+ ///
+ [HttpPost]
+ [AllowAnonymous]
+ public void RepairOrderComputationTask()
+ {
+ timeLimitTaskBusiness.RepairOrderComputationTask();
+ }
+
///
/// 查询限时任务列表
///
diff --git a/BBWYB.Server.Business/Order/OrderBusiness.cs b/BBWYB.Server.Business/Order/OrderBusiness.cs
index 0b95bf7..6f7f8d3 100644
--- a/BBWYB.Server.Business/Order/OrderBusiness.cs
+++ b/BBWYB.Server.Business/Order/OrderBusiness.cs
@@ -717,6 +717,7 @@ namespace BBWYB.Server.Business
public void CheckSku(CheckSkuRequest request)
{
+ nLogManager.Default().Info($"CheckSku {JsonConvert.SerializeObject(request)}");
var dbOrder = fsql.Select(request.OrderId).ToOne();
if (dbOrder == null)
throw new BusinessException($"订单{request.OrderId}不存在");
diff --git a/BBWYB.Server.Business/TimeLimitTask/TimeLimitTaskBusiness.cs b/BBWYB.Server.Business/TimeLimitTask/TimeLimitTaskBusiness.cs
index 4a016b8..78225b4 100644
--- a/BBWYB.Server.Business/TimeLimitTask/TimeLimitTaskBusiness.cs
+++ b/BBWYB.Server.Business/TimeLimitTask/TimeLimitTaskBusiness.cs
@@ -28,6 +28,40 @@ namespace BBWYB.Server.Business
.ExecuteAffrows();
}
+ ///
+ /// 修复订单待核算任务
+ ///
+ public void RepairOrderComputationTask()
+ {
+ var childSelect = fsql.Select().As("t").Where(t => t.TaskType == Enums.TimeLimitTaskType.待核算任务);
+ var noComputationTaskOrderList = fsql.Select().Where(o => o.OrderState == Enums.OrderState.待核算 &&
+ !childSelect.Where(t => t.OrderId == o.Id).Any())
+ .ToList(o => new
+ {
+ o.Id,
+ o.OrderSn,
+ o.ShopId,
+ });
+ var insertComputationTaskList = noComputationTaskOrderList.Select(o => new TimeLimitTask()
+ {
+ Id = idGenerator.NewLong(),
+ CreateTme = DateTime.Now,
+ OrderId = o.Id,
+ OrderSn = o.OrderSn,
+ ShopId = o.ShopId,
+ TaskType = Enums.TimeLimitTaskType.待核算任务,
+ ExpirationTime = DateTime.Now.AddDays(1),
+ Remark = "RepairOrderComputationTask"
+ }).ToList();
+
+ if (insertComputationTaskList.Count() > 0)
+ {
+ fsql.Transaction(() =>
+ {
+ fsql.Insert(insertComputationTaskList).ExecuteAffrows();
+ });
+ }
+ }
public TimeLimitTaskListResponse QueryTimeLimitTask(QueryTimeLimitTaskRequest request)
{
@@ -122,9 +156,9 @@ namespace BBWYB.Server.Business
var purchaseTaskTimeOutCount = purchaseTaskTimOutCountGroups.FirstOrDefault(x => x.ShopId == response.ShopId)?.TaskCount ?? 0;
response.PurchaseTimeOutPercent = purchaseTaskCount == 0 ? 0 : Math.Round(1.0 * purchaseTaskTimeOutCount / purchaseTaskCount * 100, 2);
- response.CerEditTimeOutCount = cerTimeOutCountGroups.FirstOrDefault(x => x.ShopId == response.ShopId &&
+ response.CerEditTimeOutCount = cerTimeOutCountGroups.FirstOrDefault(x => x.ShopId == response.ShopId &&
x.TaskType == Enums.TimeLimitTaskType.合格证补充任务)?.TaskCount ?? 0;
- response.CerConfigTimeOutCount = cerTimeOutCountGroups.FirstOrDefault(x => x.ShopId == response.ShopId &&
+ response.CerConfigTimeOutCount = cerTimeOutCountGroups.FirstOrDefault(x => x.ShopId == response.ShopId &&
x.TaskType == Enums.TimeLimitTaskType.合格证拟定任务)?.TaskCount ?? 0;
list.Add(response);
}