From c09067b955472ea71bfdb353c28e3cc3c5fb4c9e Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Fri, 15 Sep 2023 00:53:01 +0800
Subject: [PATCH] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A0=E9=BD=90=E5=BA=93sku?=
=?UTF-8?q?=E6=A3=80=E6=9F=A5=E6=8E=A8=E9=80=81=E6=97=A5=E5=BF=97=202.?=
=?UTF-8?q?=E5=AE=9A=E6=9C=9F=E4=BF=AE=E5=A4=8D=E5=BE=85=E6=A0=B8=E7=AE=97?=
=?UTF-8?q?=E7=BC=BA=E5=A4=B1=E4=BB=BB=E5=8A=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/TimeLimitTaskController.cs | 10 +++++
BBWYB.Server.Business/Order/OrderBusiness.cs | 1 +
.../TimeLimitTask/TimeLimitTaskBusiness.cs | 38 ++++++++++++++++++-
3 files changed, 47 insertions(+), 2 deletions(-)
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);
}