Browse Source

暂停订单同步

qianyi
shanji 2 years ago
parent
commit
8f67f2c6cc
  1. 20
      BBWY.Server.API/Controllers/OrderSyncController.cs
  2. 23
      BBWY.Server.API/Controllers/ServiceOrderSyncController.cs
  3. 121
      BBWY.Server.Business/Sync/OrderSyncBusiness.cs
  4. 4
      BBWY.Server.Business/TaskSchedulerManager.cs
  5. 21
      BBWY.Server.Model/Db/Order/WaitPayOrder.cs

20
BBWY.Server.API/Controllers/OrderSyncController.cs

@ -59,7 +59,7 @@ namespace BBWY.Server.API.Controllers
}
/// <summary>
/// 订单推送
/// 接收订单推送
/// </summary>
/// <param name="request"></param>
[HttpPost]
@ -67,5 +67,23 @@ namespace BBWY.Server.API.Controllers
{
orderSyncBusiness.OrderPublish(request);
}
/// <summary>
/// 检查全店暂停订单
/// </summary>
[HttpPost]
public void CheckJDPauseOrder()
{
orderSyncBusiness.CheckJDPauseOrder(null);
}
/// <summary>
/// 检查全店暂停订单
/// </summary>
[HttpPost("{shopId}")]
public void CheckJDPauseOrder(long shopId)
{
orderSyncBusiness.CheckJDPauseOrder(shopId);
}
}
}

23
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 = "成功"
});
}
/// <summary>

121
BBWY.Server.Business/Sync/OrderSyncBusiness.cs

@ -809,86 +809,65 @@ namespace BBWY.Server.Business
return orderState;
}
/// <summary>
/// 接收订单推送
/// </summary>
/// <param name="request"></param>
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<WaitPayOrder>(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<WaitPayOrder>().Where(wo => shopIds.Contains(wo.ShopId.Value))
.Where(wo => fsql.Select<Order>().Where(o => o.Id == wo.Id).Any())
.ExecuteAffrows();
var waitPayOrderList = fsql.Select<WaitPayOrder>().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<WaitPayOrder> waitPayOrderList)
{
foreach (var w in waitPayOrderList)
{
SyncOrder(shop, w.Id);
}
}
#endregion
}
}

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

21
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; }
}
}
Loading…
Cancel
Save