diff --git a/BBWY.Server.API/Controllers/OrderSyncController.cs b/BBWY.Server.API/Controllers/OrderSyncController.cs
index 7185a235..0661e0c0 100644
--- a/BBWY.Server.API/Controllers/OrderSyncController.cs
+++ b/BBWY.Server.API/Controllers/OrderSyncController.cs
@@ -59,7 +59,7 @@ namespace BBWY.Server.API.Controllers
}
///
- /// 订单推送
+ /// 接收订单推送
///
///
[HttpPost]
@@ -67,5 +67,23 @@ namespace BBWY.Server.API.Controllers
{
orderSyncBusiness.OrderPublish(request);
}
+
+ ///
+ /// 检查全店暂停订单
+ ///
+ [HttpPost]
+ public void CheckJDPauseOrder()
+ {
+ orderSyncBusiness.CheckJDPauseOrder(null);
+ }
+
+ ///
+ /// 检查全店暂停订单
+ ///
+ [HttpPost("{shopId}")]
+ public void CheckJDPauseOrder(long shopId)
+ {
+ orderSyncBusiness.CheckJDPauseOrder(shopId);
+ }
}
}
diff --git a/BBWY.Server.API/Controllers/ServiceOrderSyncController.cs b/BBWY.Server.API/Controllers/ServiceOrderSyncController.cs
index 305609f0..acc96cd0 100644
--- a/BBWY.Server.API/Controllers/ServiceOrderSyncController.cs
+++ b/BBWY.Server.API/Controllers/ServiceOrderSyncController.cs
@@ -1,12 +1,11 @@
-using BBWY.Server.Business.Sync;
-using Microsoft.AspNetCore.Authorization;
+using BBWY.Server.API.Filters;
+using BBWY.Server.Business.Sync;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
-using Newtonsoft.Json.Linq;
+using System.Linq;
namespace BBWY.Server.API.Controllers
{
-
public class ServiceOrderSyncController : BaseApiController
{
private JDServiceOrderSyncBusiness jdServiceOrderSyncBusiness;
@@ -16,12 +15,24 @@ namespace BBWY.Server.API.Controllers
this.jdServiceOrderSyncBusiness = jdServiceOrderSyncBusiness;
}
-
+
[Consumes("application/x-www-form-urlencoded")]
[HttpPost]
- public void ReceiveKuaiDi100Push([FromForm] string sign, [FromForm] string param)
+ public IActionResult ReceiveKuaiDi100Push([FromForm] string sign, [FromForm] string param)
{
+ var filters = ControllerContext.ActionDescriptor.FilterDescriptors;
+ var filterToRemove = filters.FirstOrDefault(f => f.Filter.GetType() == typeof(ResultFilter));
+ if (filterToRemove != null)
+ {
+ filters.Remove(filterToRemove);
+ }
jdServiceOrderSyncBusiness.ReceiveKuaiDi100Push(param);
+ return new JsonResult(new
+ {
+ result = true,
+ returnCode = "200",
+ message = "成功"
+ });
}
///
diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs
index c3b19cc4..e487ff39 100644
--- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs
+++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs
@@ -809,86 +809,65 @@ namespace BBWY.Server.Business
return orderState;
}
+ ///
+ /// 接收订单推送
+ ///
+ ///
public void OrderPublish(OrderPublishRequest request)
{
- /*
- if (erpOrderStatus.equals(("1"))){
- status="新订单";
-}else if (erpOrderStatus.equals(("2"))){
- status="等待付款";
-}else if (erpOrderStatus.equals(("3"))){
- status="等待付款确认";
-}else if (erpOrderStatus.equals(("4"))){
- status="延迟付款确认";
-}else if (erpOrderStatus.equals(("5"))){
- status="暂停";
-}else if (erpOrderStatus.equals(("6"))){
- status="店长最终审核";
-}else if (erpOrderStatus.equals(("7"))){
- status="等待打印";
-}else if (erpOrderStatus.equals(("8"))){
- status="等待出库";
-}else if (erpOrderStatus.equals(("9"))){
- status="等待打包";
-}else if (erpOrderStatus.equals(("10"))){
- status="等待发货";
-}else if (erpOrderStatus.equals(("11"))){
- status="自提途中";
-}else if (erpOrderStatus.equals(("12"))){
- status="上门提货";
-}else if (erpOrderStatus.equals(("13"))){
- status="自提退货";
-}else if (erpOrderStatus.equals(("14"))){
- status="确认自提";
-}else if (erpOrderStatus.equals(("15"))){
- status="等待回执";
-}else if (erpOrderStatus.equals(("16"))){
- status="等待确认收货";
-}else if (erpOrderStatus.equals(("17"))){
- status="配送退货";
-}else if (erpOrderStatus.equals(("18"))){
- status="货到付款确认";
-}else if (erpOrderStatus.equals(("19"))){
- status="完成";
-}else if (erpOrderStatus.equals(("20"))){
- status="等待分期付款";
-}else if (erpOrderStatus.equals(("21"))){
- status="收款确认";
-}else if (erpOrderStatus.equals(("22"))){
- status="锁定";
-}else if (erpOrderStatus.equals(("23"))){
- status="等待退款";
-}else if (erpOrderStatus.equals(("24"))){
- status="等待客户回复";
-}else if (erpOrderStatus.equals(("25"))){
- status="厂商确认完成";
-}else if (erpOrderStatus.equals(("29"))){
- status="等待三方出库";
-}else if (erpOrderStatus.equals(("30"))){
- status="等待三方发货";
-}else if (erpOrderStatus.equals(("31"))){
- status="等待三方发货完成";
-}else if (erpOrderStatus.equals(("26"))){
- status="等待再审核";
-}else if (erpOrderStatus.equals(("27"))){
- status="对账中";
-}else if (erpOrderStatus.equals(("28"))){
- status="退款中";
-}else if (erpOrderStatus.equals(("-1"))){
- status="未知";
-}else if (erpOrderStatus.equals(("NOT_PAY"))){
- status="新订单";
-}else if (erpOrderStatus.equals(
- */
nLogManager.Default().Info($"订单推送-{JsonConvert.SerializeObject(request)}");
- if (request.orderStatus != "5")
+ if (request.orderStatus != "TRADE_CREATED")
return;
var shop = venderBusiness.GetShopByVenderId(request.venderId);
if (shop == null)
return;
- Task.Factory.StartNew(() => SyncOrder(shop, request.orderId, null, null, isAuto: false, Enums.SortTimeType.StartTime), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.SyncOrderTaskScheduler);
+ var isExists = fsql.Select(request.orderId).Any();
+ if (!isExists)
+ {
+ fsql.Insert(new WaitPayOrder()
+ {
+ CreateTime = DateTime.Now,
+ Id = request.orderId,
+ ShopId = long.Parse(shop.ShopId)
+ }).ExecuteAffrows();
+ }
+ }
+
+ #region 同步暂停订单
+ public void CheckJDPauseOrder(long? shopId)
+ {
+ var shopList = venderBusiness.GetShopList(shopId);
+ var shopIds = shopList.Select(s => long.Parse(s.ShopId)).ToList();
+
+ fsql.Delete().Where(wo => shopIds.Contains(wo.ShopId.Value))
+ .Where(wo => fsql.Select().Where(o => o.Id == wo.Id).Any())
+ .ExecuteAffrows();
+
+
+ var waitPayOrderList = fsql.Select().Where(wo => shopIds.Contains(wo.ShopId.Value)).ToList();
+ if (waitPayOrderList.Count() == 0)
+ return;
+
+ foreach (var shop in shopList)
+ {
+ var currentWaitPayOrderList = waitPayOrderList.Where(wo => wo.ShopId == long.Parse(shop.ShopId)).ToList();
+ if (currentWaitPayOrderList.Count() > 0)
+ {
+ Task.Factory.StartNew(() => CheckJDPauseOrder(shop, currentWaitPayOrderList), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.SyncOrderTaskScheduler);
+ }
+ }
+ }
+
+ private void CheckJDPauseOrder(ShopResponse shop, IList waitPayOrderList)
+ {
+ foreach (var w in waitPayOrderList)
+ {
+ SyncOrder(shop, w.Id);
+ }
}
+
+ #endregion
}
}
diff --git a/BBWY.Server.Business/TaskSchedulerManager.cs b/BBWY.Server.Business/TaskSchedulerManager.cs
index 8ee4567a..93a26df1 100644
--- a/BBWY.Server.Business/TaskSchedulerManager.cs
+++ b/BBWY.Server.Business/TaskSchedulerManager.cs
@@ -14,6 +14,8 @@ namespace BBWY.Server.Business
public LimitedConcurrencyLevelTaskScheduler SyncServiceOrderTaskScheduler { get; private set; }
+ public LimitedConcurrencyLevelTaskScheduler SyncPauseOrderTaskScheduler { get; private set; }
+
public LimitedConcurrencyLevelTaskScheduler PurchaseOrderCallbackTaskScheduler { get; private set; }
public LimitedConcurrencyLevelTaskScheduler JDPopularizeTaskScheduler { get; private set; }
@@ -48,6 +50,8 @@ namespace BBWY.Server.Business
JDPromotionDelayTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(10);
JDPromotionMonitorTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(10);
JDPromotionAutoStartTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(10);
+
+ SyncPauseOrderTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(10);
}
}
}
diff --git a/BBWY.Server.Model/Db/Order/WaitPayOrder.cs b/BBWY.Server.Model/Db/Order/WaitPayOrder.cs
new file mode 100644
index 00000000..adca5525
--- /dev/null
+++ b/BBWY.Server.Model/Db/Order/WaitPayOrder.cs
@@ -0,0 +1,21 @@
+using FreeSql.DataAnnotations;
+using System;
+
+namespace BBWY.Server.Model.Db
+{
+
+ [ Table(Name = "waitpayorder", DisableSyncStructure = true)]
+ public partial class WaitPayOrder
+ {
+
+ [Column(StringLength = 100, IsPrimary = true, IsNullable = false)]
+ public string Id { get; set; }
+
+ [Column(DbType = "datetime")]
+ public DateTime? CreateTime { get; set; }
+
+ public long? ShopId { get; set; }
+
+ }
+
+}