Browse Source

采购限时任务创建

yijia
shanji 2 years ago
parent
commit
97dd7185ab
  1. 1
      BBWYB.Server.Business/Order/OrderBusiness.cs
  2. 96
      BBWYB.Server.Business/Sync/OrderSyncBusiness.cs
  3. 6
      BBWYB.Server.Model/Db/Order/Order.cs
  4. 71
      BBWYB.Server.Model/Db/TimeLimitTask/TimeLimitTask.cs
  5. 5
      BBWYB.Server.Model/Dto/Response/Order/OrderResponse.cs
  6. 8
      BBWYB.Server.Model/Enums.cs
  7. 1
      SDKAdapter/OperationPlatform/Client/Impl/OP_QuanTanClient.cs
  8. 5
      SDKAdapter/OperationPlatform/Models/Response/Order/OP_OrderResponse.cs

1
BBWYB.Server.Business/Order/OrderBusiness.cs

@ -112,6 +112,7 @@ namespace BBWYB.Server.Business
InPackAmount = o.InPackAmount,
IsWaitPack = o.IsWaitPack,
IntoStoreType = o.IntoStoreType,
PayTime = o.PayTime,
ContactName = ocs.ContactName,
Address = ocs.Address,

96
BBWYB.Server.Business/Sync/OrderSyncBusiness.cs

@ -74,12 +74,19 @@ namespace BBWYB.Server.Business.Sync
var qtOrderIdList = qtOrderList.Items.Select(qto => qto.OrderId).ToList();
var dbOrderList = fsql.Select<Model.Db.Order>(qtOrderIdList).ToList();
//采购限时任务列表
var payedQTOrderIdList = qtOrderList.Items.Where(qto => qto.IsPay).Select(qto => qto.OrderId).ToList();
var dbPurchaseTimeLimitTaskList = fsql.Select<TimeLimitTask>().Where(t => t.TaskType == Enums.TimeLimitTaskType. &&
payedQTOrderIdList.Contains(t.OrderId)).ToList();
List<Model.Db.Order> insertOrderList = new List<Model.Db.Order>();
List<OrderSku> insertOrderSkuList = new List<OrderSku>();
List<OrderConsignee> insertOrderConsigneeList = new List<OrderConsignee>();
List<TimeLimitTask> insertTimeLimitTaskList = new List<TimeLimitTask>();
List<IUpdate<Model.Db.Order>> updateOrderList = new List<IUpdate<Model.Db.Order>>();
foreach (var qtOrder in qtOrderList.Items)
{
var dbOrder = dbOrderList.FirstOrDefault(o => o.Id == qtOrder.OrderId);
@ -113,7 +120,8 @@ namespace BBWYB.Server.Business.Sync
OrderState = orderState,
ClientOrderId = qtOrder.ClientOrderId,
BuyerAccount = qtOrder.UserAccount,
InPackAmount = qtOrder.PackAmount
InPackAmount = qtOrder.PackAmount,
PayTime = qtOrder.PayTime,
};
JArray belongSkus = null;
if (!string.IsNullOrEmpty(qtOrder.Extended))
@ -178,14 +186,8 @@ namespace BBWYB.Server.Business.Sync
}
else
{
Enums.OrderState? updateOrderState = null;
var updateModifyTime = false;
var updateBuyerRemark = false;
var updateVenderRemark = false;
var updateBuyerAccount = false;
var updateOrderSn = false;
#region 订单状态脱离拳探 只处理付款和取消
Enums.OrderState? updateOrderState = null;
if (dbOrder.OrderState == Enums.OrderState. && orderState != Enums.OrderState.)
updateOrderState = Enums.OrderState.;
@ -193,30 +195,29 @@ namespace BBWYB.Server.Business.Sync
updateOrderState = Enums.OrderState.;
#endregion
if (dbOrder.ModifyTime != qtOrder.ModifyTime)
updateModifyTime = true;
if (dbOrder.BuyerRemark != qtOrder.BuyerRemark)
updateBuyerRemark = true;
if (dbOrder.VenderRemark != qtOrder.VenderRemark)
updateVenderRemark = true;
if (dbOrder.BuyerAccount != qtOrder.UserAccount)
updateBuyerAccount = true;
if (dbOrder.OrderSn != qtOrder.OrderSn)
updateOrderSn = true;
if (updateOrderState != null || updateModifyTime || updateBuyerRemark || updateVenderRemark || updateBuyerAccount || updateOrderSn)
var updateModifyTime = dbOrder.ModifyTime != qtOrder.ModifyTime;
var updateBuyerRemark = dbOrder.BuyerRemark != qtOrder.BuyerRemark;
var updateVenderRemark = dbOrder.VenderRemark != qtOrder.VenderRemark;
var updateBuyerAccount = dbOrder.BuyerAccount != qtOrder.UserAccount;
var updateOrderSn = dbOrder.OrderSn != qtOrder.OrderSn;
var updatePayTime = dbOrder.PayTime != qtOrder.PayTime;
if (updateOrderState != null || updateModifyTime || updateBuyerRemark || updateVenderRemark || updateBuyerAccount || updateOrderSn || updatePayTime)
{
var update = fsql.Update<Model.Db.Order>(dbOrder.Id).SetIf(updateOrderState != null, o => o.OrderState, orderState)
var update = fsql.Update<Model.Db.Order>(dbOrder.Id).SetIf(updateOrderState != null, o => o.OrderState, updateOrderState)
.SetIf(updateModifyTime, o => o.ModifyTime, qtOrder.ModifyTime)
.SetIf(updateBuyerRemark, o => o.BuyerRemark, qtOrder.BuyerRemark)
.SetIf(updateVenderRemark, o => o.VenderRemark, qtOrder.VenderRemark)
.SetIf(updateBuyerAccount, o => o.BuyerAccount, qtOrder.UserAccount)
.SetIf(updateOrderSn, o => o.OrderSn, qtOrder.OrderSn);
.SetIf(updateOrderSn, o => o.OrderSn, qtOrder.OrderSn)
.SetIf(updatePayTime, o => o.PayTime, qtOrder.PayTime);
updateOrderList.Add(update);
}
}
}
CheckPurchaseTimeLimitTask(shopId, qtOrderList.Items, dbPurchaseTimeLimitTaskList, insertTimeLimitTaskList);
fsql.Transaction(() =>
{
if (insertOrderList.Count > 0)
@ -228,6 +229,9 @@ namespace BBWYB.Server.Business.Sync
if (insertOrderConsigneeList.Count() > 0)
fsql.Insert(insertOrderConsigneeList).ExecuteAffrows();
if (insertTimeLimitTaskList.Count() > 0)
fsql.Insert(insertTimeLimitTaskList).ExecuteAffrows();
if (updateOrderList.Count() > 0)
foreach (var update in updateOrderList)
update.ExecuteAffrows();
@ -239,6 +243,54 @@ namespace BBWYB.Server.Business.Sync
}
}
private void CheckPurchaseTimeLimitTask(long shopId, IList<OP_OrderResponse> orderList, IList<TimeLimitTask> dbTimeLimits, List<TimeLimitTask> insertTimeLimitTasks)
{
foreach (var order in orderList)
{
if (!order.IsPay || order.PayTime == null)
continue;
var waitInserTimeLimitTasks = order.OrderSkuList.Where(osku => !dbTimeLimits.Any(x => x.OrderId == order.OrderId && x.SkuId == osku.SkuId))
.Select(osku => new TimeLimitTask()
{
Id = idGenerator.NewLong(),
CreateTme = DateTime.Now,
OrderId = order.OrderId,
SkuId = osku.SkuId,
TaskType = Enums.TimeLimitTaskType.,
ShopId = shopId,
ExpirationTime = CalculationPurcashTimeLimitTaskExpirationTime(order.PayTime.Value),
PayTime = order.PayTime
}).ToList();
if (waitInserTimeLimitTasks != null && waitInserTimeLimitTasks.Count() > 0)
insertTimeLimitTasks.AddRange(waitInserTimeLimitTasks);
}
}
/// <summary>
/// 计算采购限时任务的到期时间
/// </summary>
/// <param name="payTime">付款时间</param>
/// <returns></returns>
private DateTime CalculationPurcashTimeLimitTaskExpirationTime(DateTime payTime)
{
var addDays = 0;
if (payTime.DayOfWeek == DayOfWeek.Sunday ||
payTime.DayOfWeek == DayOfWeek.Monday ||
payTime.DayOfWeek == DayOfWeek.Tuesday ||
payTime.DayOfWeek == DayOfWeek.Wednesday ||
payTime.DayOfWeek == DayOfWeek.Thursday ||
payTime.DayOfWeek == DayOfWeek.Friday)
{
if (payTime.Hour >= 0 && payTime.Hour < 15)
addDays = 0; //当日
else
addDays = payTime.DayOfWeek == DayOfWeek.Friday ? 2 : 1; //次日,星期五是后天
}
else if (payTime.DayOfWeek == DayOfWeek.Saturday)
addDays = 1;
return payTime.Date.AddDays(addDays).AddHours(16);
}
private Enums.OrderState? ConvertQuanTanOrderState(string qtOrderState, bool isPay, bool isPurchased)
{
/*

6
BBWYB.Server.Model/Db/Order/Order.cs

@ -50,6 +50,12 @@ namespace BBWYB.Server.Model.Db
[Column(DbType = "datetime")]
public DateTime? ModifyTime { get; set; }
/// <summary>
/// 支付时间
/// </summary>
[Column(DbType = "datetime", IsNullable = true)]
public DateTime? PayTime { get; set; }
/// <summary>
/// 用户应付金额
/// </summary>

71
BBWYB.Server.Model/Db/TimeLimitTask/TimeLimitTask.cs

@ -0,0 +1,71 @@
using FreeSql.DataAnnotations;
namespace BBWYB.Server.Model.Db
{
/// <summary>
/// 时限任务表
/// </summary>
[Table(Name = "timelimittask", DisableSyncStructure = true)]
public partial class TimeLimitTask {
[Column(IsPrimary = true)]
public long Id { get; set; }
/// <summary>
/// 完成时间
/// </summary>
[Column(DbType = "datetime")]
public DateTime? CompletionTime { get; set; }
/// <summary>
/// 创建时间
/// </summary>
[Column(DbType = "datetime")]
public DateTime? CreateTme { get; set; }
/// <summary>
/// 付款时间
/// </summary>
[Column(DbType = "datetime")]
public DateTime? PayTime { get; set; }
/// <summary>
/// 到期时间(非时间长度,而是具体的时间)
/// </summary>
[Column(DbType = "datetime")]
public DateTime? ExpirationTime { get; set; }
/// <summary>
/// 是否及时完成
/// </summary>
public bool? IsTimely { get; set; }
/// <summary>
/// 订单Id (采购任务时有效)
/// </summary>
[Column(StringLength = 50)]
public string OrderId { get; set; }
/// <summary>
/// 店铺Id
/// </summary>
public long? ShopId { get; set; }
/// <summary>
/// SKU
/// </summary>
[Column(StringLength = 50)]
public string SkuId { get; set; }
/// <summary>
/// 任务类型(采购任务=0,合格证拟定任务=10,合格证补充任务=11)
/// </summary>
[Column(MapType = typeof(int?))]
public Enums.TimeLimitTaskType? TaskType { get; set; }
}
}

5
BBWYB.Server.Model/Dto/Response/Order/OrderResponse.cs

@ -26,6 +26,11 @@
/// </summary>
public DateTime ModifyTime { get; set; }
/// <summary>
/// 支付时间
/// </summary>
public DateTime? PayTime { get; set; }
/// <summary>
/// 订单平台
/// </summary>

8
BBWYB.Server.Model/Enums.cs

@ -305,5 +305,13 @@
{
= 0, = 1
}
/// <summary>
/// 限时任务类型 采购任务 = 0, 合格证拟定任务 = 10, 合格证补充任务 = 11
/// </summary>
public enum TimeLimitTaskType
{
= 0, = 10, = 11
}
}
}

1
SDKAdapter/OperationPlatform/Client/Impl/OP_QuanTanClient.cs

@ -146,6 +146,7 @@ namespace SDKAdapter.OperationPlatform.Client
PackAmount = qto.PackingCharge,
PayType = 0,
IsPay = qto.Paid == 1,
PayTime = qto.Paid == 1 ? qto.PayTime : null,
PreferentialAmount = 0,
SellerPreferentialAmount = 0,
OrderSkuList = qto.OrderProduct.Select(qtosku => new OP_OrderProductSkuResponse()

5
SDKAdapter/OperationPlatform/Models/Response/Order/OP_OrderResponse.cs

@ -42,6 +42,11 @@
/// </summary>
public bool IsPay { get; set; }
/// <summary>
/// 支付时间
/// </summary>
public DateTime? PayTime { get; set; }
/// <summary>
/// 下单来源
/// <para>京东【】</para>

Loading…
Cancel
Save