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); }