diff --git a/BBWYB.Server.API/Controllers/OrderController.cs b/BBWYB.Server.API/Controllers/OrderController.cs index 538d1f8..8a3b6a6 100644 --- a/BBWYB.Server.API/Controllers/OrderController.cs +++ b/BBWYB.Server.API/Controllers/OrderController.cs @@ -163,5 +163,15 @@ namespace BBWYB.Server.API.Controllers { orderBusiness.SetSpecialOrder(request); } + + /// + /// 完成议价,此操作将完成相同SKU的议价标记和待议价任务 + /// + /// + [HttpPost] + public void CompleteOptimization([FromBody]CompleteOptimizationRequest request) + { + orderBusiness.CompleteOptimization(request); + } } } diff --git a/BBWYB.Server.Business/Order/OrderBusiness.cs b/BBWYB.Server.Business/Order/OrderBusiness.cs index 6f7f8d3..ed2bba6 100644 --- a/BBWYB.Server.Business/Order/OrderBusiness.cs +++ b/BBWYB.Server.Business/Order/OrderBusiness.cs @@ -12,9 +12,7 @@ using Newtonsoft.Json; using SDKAdapter; using SDKAdapter.OperationPlatform.Client; using SDKAdapter.OperationPlatform.Models; -using System.Collections.Concurrent; using System.Linq.Expressions; -using System.Security.Cryptography; using Yitter.IdGenerator; namespace BBWYB.Server.Business @@ -854,5 +852,30 @@ namespace BBWYB.Server.Business { fsql.Update(request.OrderId).Set(o => o.IsSpecialOrder, request.IsSpecialOrder).ExecuteAffrows(); } + + /// + /// 完成议价 + /// + /// + public void CompleteOptimization(CompleteOptimizationRequest request) + { + fsql.Transaction(() => + { + fsql.Update().Set(osku => osku.IsOptimizationCompleted, 1) + .Where(osku => osku.ShopId == request.ShopId && + osku.SkuId == request.SkuId && + osku.IsNeedOptimization == 1 && + osku.IsOptimizationCompleted == 0) + .ExecuteAffrows(); + + fsql.Update().Set(t => t.CompletionTime, DateTime.Now) + .Set(t => t.IsTimely == (DateTime.Now < t.ExpirationTime ? true : false)) + .Where(t => t.ShopId == request.ShopId && + t.SkuId == request.SkuId && + t.CompletionTime == null && + t.TaskType == Enums.TimeLimitTaskType.待议价任务) + .ExecuteAffrows(); + }); + } } } diff --git a/BBWYB.Server.Model/Dto/Request/Order/CompleteOptimizationRequest.cs b/BBWYB.Server.Model/Dto/Request/Order/CompleteOptimizationRequest.cs new file mode 100644 index 0000000..d47f383 --- /dev/null +++ b/BBWYB.Server.Model/Dto/Request/Order/CompleteOptimizationRequest.cs @@ -0,0 +1,11 @@ +namespace BBWYB.Server.Model.Dto +{ + public class CompleteOptimizationRequest + { + //public string OrderId { get; set; } + + public long ShopId { get; set; } + + public string SkuId { get; set; } + } +}