diff --git a/BBWYB.Server.API/Controllers/OrderController.cs b/BBWYB.Server.API/Controllers/OrderController.cs
new file mode 100644
index 0000000..b2c77dc
--- /dev/null
+++ b/BBWYB.Server.API/Controllers/OrderController.cs
@@ -0,0 +1,27 @@
+using BBWYB.Server.Business.Order;
+using BBWYB.Server.Model.Dto;
+using Microsoft.AspNetCore.Mvc;
+
+namespace BBWYB.Server.API.Controllers
+{
+
+ public class OrderController : BaseApiController
+ {
+ private OrderBusiness orderBusiness;
+ public OrderController(IHttpContextAccessor httpContextAccessor, OrderBusiness orderBusiness) : base(httpContextAccessor)
+ {
+ this.orderBusiness = orderBusiness;
+ }
+
+ ///
+ /// 订单查询
+ ///
+ ///
+ ///
+ [HttpPost]
+ public OrderListResponse GetOrderList(QueryOrderRequest request)
+ {
+ return orderBusiness.GetOrderList(request);
+ }
+ }
+}
diff --git a/BBWYB.Server.Business/Order/OrderBusiness.cs b/BBWYB.Server.Business/Order/OrderBusiness.cs
index 2edbbd0..281dea9 100644
--- a/BBWYB.Server.Business/Order/OrderBusiness.cs
+++ b/BBWYB.Server.Business/Order/OrderBusiness.cs
@@ -6,6 +6,8 @@ using FreeSql;
using Yitter.IdGenerator;
using BBWYB.Server.Model.Db;
using System.Linq.Expressions;
+using BBWYB.Common.Extensions;
+using BBWYB.Server.Model;
namespace BBWYB.Server.Business.Order
{
@@ -49,9 +51,9 @@ namespace BBWYB.Server.Business.Order
return select;
}
- private Expression> GetOrderListField()
+ private Expression> GetOrderListField()
{
- return (o, ocs, oct, sh) => new Order()
+ return (o, ocs, oct) => new Model.Db.Order()
{
Id = o.Id,
BuyerRemark = o.BuyerRemark,
@@ -68,17 +70,10 @@ namespace BBWYB.Server.Business.Order
ShopId = o.ShopId,
StartTime = o.StartTime,
StorageType = o.StorageType,
- StoreId = o.StoreId,
- StoreOrder = o.StoreOrder,
VenderRemark = o.VenderRemark,
PurchaseRemark = o.PurchaseRemark,
WaybillNo = o.WaybillNo,
Flag = o.Flag,
- SDType = o.SDType,
- SDKey = o.SDKey,
- SDOperator = o.SDOperator,
- SDPayBillNo = o.SDPayBillNo,
- SDPayChannel = o.SDPayChannel,
IsAfterSaleOrder = o.IsAfterSaleOrder,
SellerPreferentialAmount = o.SellerPreferentialAmount,
PreferentialAmount = o.PreferentialAmount,
@@ -89,7 +84,7 @@ namespace BBWYB.Server.Business.Order
County = ocs.County,
Town = ocs.Town,
City = ocs.City,
- IsDecode = ocs.IsDecode,
+ //IsDecode = ocs.IsDecode,
Mobile = ocs.Mobile,
TelePhone = ocs.TelePhone,
@@ -100,13 +95,10 @@ namespace BBWYB.Server.Business.Order
Profit = oct.Profit,
PurchaseAmount = oct.PurchaseAmount,
IsManualEdited = oct.IsManualEdited,
- SDCommissionAmount = oct.SDCommissionAmount,
- SDOrderAmount = oct.SDOrderAmount,
- RefundAmount = oct.RefundAmount,
- RefundPurchaseAmount = oct.RefundPurchaseAmount,
- AfterTotalCost = oct.AfterTotalCost,
-
- StoreName = sh.Name
+ //SDCommissionAmount = oct.SDCommissionAmount,
+ //SDOrderAmount = oct.SDOrderAmount,
+ //RefundAmount = oct.RefundAmount,
+ //RefundPurchaseAmount = oct.RefundPurchaseAmount,
};
}
@@ -115,9 +107,32 @@ namespace BBWYB.Server.Business.Order
var select = GetOrderListQueryConditions(request).OrderByDescending((o, ocs, oct) => o.StartTime)
.Count(out var total)
.Page(request.PageIndex, request.PageSize);
+
+ var orderSourceList = select.ToList(GetOrderListField());
+ var orderList = orderSourceList.Map>();
+ var orderIdList = orderList.Select(o => o.Id).ToList();
+
+ if (orderList.Count() > 0)
+ {
+ #region 处理Sku
+ var orderSkuList = fsql.Select().Where(osku => osku.Price != 0 &&
+ orderIdList.Contains(osku.OrderId)).ToList();
+ foreach (var order in orderList)
+ {
+ order.ItemList = orderSkuList.Where(osku => osku.OrderId == order.Id).ToList();
+ }
+ #endregion
+
+ #region 处理订单成本明细
+ var orderCostDetailList = fsql.Select().Where(ocd => orderIdList.Contains(ocd.OrderId) && ocd.IsEnabled == true).ToList();
+ foreach (var order in orderList)
+ order.OrderCostDetailList = orderCostDetailList.Where(ocd => ocd.OrderId == order.Id).ToList();
+ #endregion
+ }
return new OrderListResponse()
{
- Count = total
+ Count = total,
+ Items = orderList
};
}
}
diff --git a/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs b/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs
index 15ed45a..c8664c9 100644
--- a/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs
+++ b/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs
@@ -72,13 +72,13 @@ namespace BBWYB.Server.Business.Sync
return;
var qtOrderIdList = qtOrderList.Items.Select(qto => qto.OrderId).ToList();
- var dbOrderList = fsql.Select(qtOrderIdList).ToList();
+ var dbOrderList = fsql.Select(qtOrderIdList).ToList();
- List insertOrderList = new List();
+ List insertOrderList = new List();
List insertOrderSkuList = new List();
List insertOrderConsigneeList = new List();
- List> updateOrderList = new List>();
+ List> updateOrderList = new List>();
foreach (var qtOrder in qtOrderList.Items)
{
@@ -87,7 +87,7 @@ namespace BBWYB.Server.Business.Sync
if (dbOrder == null)
{
//新订单
- dbOrder = new Order()
+ dbOrder = new Model.Db.Order()
{
Id = qtOrder.OrderId,
BuyerRemark = qtOrder.BuyerRemark,
@@ -188,12 +188,12 @@ namespace BBWYB.Server.Business.Sync
if (updateOrderState || updateWaybillNo || updateModifyTime || updateBuyerRemark || updateVenderRemark)
{
- var update = fsql.Update(dbOrder.Id).SetIf(updateOrderState, o => o.OrderState == orderState)
- .SetIf(updateWaybillNo, o => o.WaybillNo, qtOrder.DeliveryResponse.WayBillNo)
- .SetIf(updateExpressName, o => o.ExpressName, qtOrder.DeliveryResponse.ExpressName)
- .SetIf(updateModifyTime, o => o.ModifyTime, qtOrder.ModifyTime)
- .SetIf(updateBuyerRemark, o => o.BuyerRemark, qtOrder.BuyerRemark)
- .SetIf(updateVenderRemark, o => o.VenderRemark, qtOrder.VenderRemark);
+ var update = fsql.Update(dbOrder.Id).SetIf(updateOrderState, o => o.OrderState == orderState)
+ .SetIf(updateWaybillNo, o => o.WaybillNo, qtOrder.DeliveryResponse.WayBillNo)
+ .SetIf(updateExpressName, o => o.ExpressName, qtOrder.DeliveryResponse.ExpressName)
+ .SetIf(updateModifyTime, o => o.ModifyTime, qtOrder.ModifyTime)
+ .SetIf(updateBuyerRemark, o => o.BuyerRemark, qtOrder.BuyerRemark)
+ .SetIf(updateVenderRemark, o => o.VenderRemark, qtOrder.VenderRemark);
updateOrderList.Add(update);
}
}
diff --git a/BBWYB.Server.Model/Db/Order/Order.cs b/BBWYB.Server.Model/Db/Order/Order.cs
index 361cb3c..e7390f8 100644
--- a/BBWYB.Server.Model/Db/Order/Order.cs
+++ b/BBWYB.Server.Model/Db/Order/Order.cs
@@ -166,6 +166,72 @@ namespace BBWYB.Server.Model.Db
[Column(StringLength = 100)]
public string ClientOrderId { get; set; }
+
+ #region 订单成本
+ ///
+ /// 平台扣点金额
+ ///
+ [Column(IsIgnore = true)]
+ public decimal? PlatformCommissionAmount { get; set; }
+
+ ///
+ /// 平台扣点百分比
+ ///
+ [Column(IsIgnore = true)]
+ public decimal? PlatformCommissionRatio { get; set; }
+
+ ///
+ /// 利润
+ ///
+ [Column(IsIgnore = true)]
+ public decimal? Profit { get; set; }
+
+ ///
+ /// 采购金额
+ ///
+ [Column(IsIgnore = true)]
+ public decimal? PurchaseAmount { get; set; } = 0.00M;
+
+ ///
+ /// 发货快递费
+ ///
+ [Column(IsIgnore = true)]
+ public decimal? DeliveryExpressFreight { get; set; } = 0.00M;
+
+ ///
+ /// 是否手动编辑过成本
+ ///
+ [Column(IsIgnore = true)]
+ public bool? IsManualEdited { get; set; } = false;
+
+ #endregion
+
+ #region 收货人信息
+ [Column(IsIgnore = true)]
+ public string Address { get; set; }
+
+ [Column(IsIgnore = true)]
+ public string City { get; set; }
+
+ [Column(IsIgnore = true)]
+ public string ContactName { get; set; }
+
+ [Column(IsIgnore = true)]
+ public string County { get; set; }
+
+ [Column(IsIgnore = true)]
+ public string Mobile { get; set; }
+
+ [Column(IsIgnore = true)]
+ public string Province { get; set; }
+
+ [Column(IsIgnore = true)]
+ public string TelePhone { get; set; }
+
+ [Column(IsIgnore = true)]
+ public string Town { get; set; }
+ #endregion
+
}
}
diff --git a/BBWYB.Server.Model/Db/Order/OrderCost.cs b/BBWYB.Server.Model/Db/Order/OrderCost.cs
index 840e088..776a6c8 100644
--- a/BBWYB.Server.Model/Db/Order/OrderCost.cs
+++ b/BBWYB.Server.Model/Db/Order/OrderCost.cs
@@ -12,11 +12,6 @@ namespace BBWYB.Server.Model.Db
[Column(StringLength = 50, IsPrimary = true, IsNullable = false)]
public string OrderId { get; set; }
- ///
- /// 所有服务单的售后成本(不含退款采购成本)
- ///
- [Column(DbType = "decimal(18,2)")]
- public decimal? AfterTotalCost { get; set; } = 0.00M;
[Column(DbType = "datetime")]
public DateTime? CreateTime { get; set; }
@@ -62,49 +57,6 @@ namespace BBWYB.Server.Model.Db
///
[Column(DbType = "decimal(20,2)")]
public decimal? PurchaseAmount { get; set; } = 0.00M;
-
- ///
- /// 退款金额
- ///
- [Column(DbType = "decimal(20,2)")]
- public decimal? RefundAmount { get; set; } = 0.00M;
-
- ///
- /// 退款采购成本
- ///
- [Column(DbType = "decimal(20,2)")]
- public decimal? RefundPurchaseAmount { get; set; } = 0.00M;
-
- ///
- /// 售后补发成本
- ///
- [Column(DbType = "decimal(20,2)")]
- public decimal? ReissueAfterSaleAmount { get; set; } = 0.00M;
-
- ///
- /// 补发快递费
- ///
- [Column(DbType = "decimal(20,2)")]
- public decimal? ReissueFreight { get; set; } = 0.00M;
-
- ///
- /// 补发货款成本
- ///
- [Column(DbType = "decimal(20,2)")]
- public decimal? ReissueProductAmount { get; set; } = 0.00M;
-
- ///
- /// 刷单佣金
- ///
- [Column(DbType = "decimal(20,2)")]
- public decimal? SDCommissionAmount { get; set; } = 0.00M;
-
- ///
- /// 刷单号费
- ///
- [Column(DbType = "decimal(18,2)")]
- public decimal? SDOrderAmount { get; set; } = 0.00M;
-
}
}
diff --git a/BBWYB.Server.Model/Db/Order/OrderCostDetail.cs b/BBWYB.Server.Model/Db/Order/OrderCostDetail.cs
index 2afaf46..9fb06f8 100644
--- a/BBWYB.Server.Model/Db/Order/OrderCostDetail.cs
+++ b/BBWYB.Server.Model/Db/Order/OrderCostDetail.cs
@@ -78,7 +78,14 @@ namespace BBWYB.Server.Model.Db
[Column(DbType = "bigint(1)")]
public long? PurchaseOrderPKId { get; set; }
-
+ ///
+ /// 采购单Id
+ ///
+ [Column(StringLength = 100)]
+ public string PurchaseOrderId { get; set; }
+
+
+
public long? ShopId { get; set; }
///
@@ -103,7 +110,13 @@ namespace BBWYB.Server.Model.Db
public decimal? StorageAmount { get; set; } = 0.00M;
///
- /// Sku合计成本(不含发货运费)
+ /// 采购成本(不含发货运费)
+ ///
+ [Column(DbType = "decimal(20,2)")]
+ public decimal? PurchaseAmount { get; set; } = 0.00M;
+
+ ///
+ /// 成本总计
///
[Column(DbType = "decimal(20,2)")]
public decimal? TotalCost { get; set; } = 0.00M;
diff --git a/BBWYB.Server.Model/Dto/Response/Order/ConsigneeResponse.cs b/BBWYB.Server.Model/Dto/Response/Order/ConsigneeResponse.cs
index e818d7c..6e8f76e 100644
--- a/BBWYB.Server.Model/Dto/Response/Order/ConsigneeResponse.cs
+++ b/BBWYB.Server.Model/Dto/Response/Order/ConsigneeResponse.cs
@@ -1,79 +1,10 @@
-namespace BBWY.Server.Model.Dto
-{
- public class ConsigneeResponse
- {
- ///
- /// 联系人名称
- ///
- public string ContactName { get; set; }
-
- ///
- /// 座机
- ///
- public string TelePhone { get; set; }
-
- ///
- /// 手机
- ///
- public string Mobile { get; set; }
-
- public string Address { get; set; }
-
- ///
- /// 省
- ///
- public string Province { get; set; }
-
- ///
- /// 市
- ///
- public string City { get; set; }
-
- ///
- /// 县
- ///
- public string County { get; set; }
+using BBWYB.Server.Model.Db;
- ///
- /// 镇
- ///
- public string Town { get; set; }
-
- ///
- /// 是否解码
- ///
- public bool? IsDecode { get; set; }
- }
-
- ///
- /// 收货人信息(不含省市区)
- ///
- public class ConsigneeSimpleResponse
+namespace BBWYB.Server.Model.Dto
+{
+ public class ConsigneeResponse : OrderConsignee
{
- ///
- /// 联系人名称
- ///
- public string ContactName { get; set; }
-
- ///
- /// 座机
- ///
- public string TelePhone { get; set; }
-
- ///
- /// 手机
- ///
- public string Mobile { get; set; }
-
- ///
- /// 地址
- ///
- public string Address { get; set; }
- ///
- /// 买家账号
- ///
- public string BuyerAccount { get; set; }
}
}
diff --git a/BBWYB.Server.Model/Dto/Response/Order/OrderCostDetailResponse.cs b/BBWYB.Server.Model/Dto/Response/Order/OrderCostDetailResponse.cs
index 2f24ee1..2f7ab7c 100644
--- a/BBWYB.Server.Model/Dto/Response/Order/OrderCostDetailResponse.cs
+++ b/BBWYB.Server.Model/Dto/Response/Order/OrderCostDetailResponse.cs
@@ -1,15 +1,11 @@
-using BBWY.Server.Model.Db;
+
-namespace BBWY.Server.Model.Dto
+using BBWYB.Server.Model.Db;
+
+namespace BBWYB.Server.Model.Dto
{
public class OrderCostDetailResponse : OrderCostDetail
{
- ///
- /// 总成本(包含销售运费)
- ///
- public decimal TotalCost2
- {
- get { return TotalCost + DeliveryExpressFreight; }
- }
+
}
}
diff --git a/BBWYB.Server.Model/Dto/Response/Order/OrderCostResponse.cs b/BBWYB.Server.Model/Dto/Response/Order/OrderCostResponse.cs
index 8a2d31f..ebbbab1 100644
--- a/BBWYB.Server.Model/Dto/Response/Order/OrderCostResponse.cs
+++ b/BBWYB.Server.Model/Dto/Response/Order/OrderCostResponse.cs
@@ -1,6 +1,7 @@
using BBWY.Server.Model.Db;
+using BBWYB.Server.Model.Db;
-namespace BBWY.Server.Model.Dto
+namespace BBWYB.Server.Model.Dto
{
public class OrderCostResponse : OrderCost
{
diff --git a/BBWYB.Server.Model/Dto/Response/Order/OrderResponse.cs b/BBWYB.Server.Model/Dto/Response/Order/OrderResponse.cs
index 3e1b6e1..e9cfd6b 100644
--- a/BBWYB.Server.Model/Dto/Response/Order/OrderResponse.cs
+++ b/BBWYB.Server.Model/Dto/Response/Order/OrderResponse.cs
@@ -1,6 +1,4 @@
-using BBWYB.Server.Model;
-
-namespace BBWY.Server.Model.Dto
+namespace BBWYB.Server.Model.Dto
{
public class OrderResponse
{
diff --git a/BBWYB.Server.Model/Dto/Response/Order/OrderSkuResponse.cs b/BBWYB.Server.Model/Dto/Response/Order/OrderSkuResponse.cs
index c2198e9..32a0b3c 100644
--- a/BBWYB.Server.Model/Dto/Response/Order/OrderSkuResponse.cs
+++ b/BBWYB.Server.Model/Dto/Response/Order/OrderSkuResponse.cs
@@ -1,24 +1,8 @@
-namespace BBWY.Server.Model.Dto
+using BBWYB.Server.Model.Db;
+
+namespace BBWYB.Server.Model.Dto
{
- public class OrderSkuResponse : ProductSkuResponse
+ public class OrderSkuResponse : OrderSku
{
- public string OrderId { get; set; }
-
- ///
- /// 购买数量
- ///
- public int ItemTotal { get; set; }
-
- public string ProductNo { get; set; }
-
- ///
- /// 代发信息Id
- ///
- public long? OrderDropShippingId { get; set; }
-
- ///
- /// 是否退款
- ///
- public bool IsRefund { get; set; } = false;
}
}
diff --git a/BBWYB.Server.Model/MappingProfiles.cs b/BBWYB.Server.Model/MappingProfiles.cs
index 9f29c5f..37472d5 100644
--- a/BBWYB.Server.Model/MappingProfiles.cs
+++ b/BBWYB.Server.Model/MappingProfiles.cs
@@ -1,4 +1,5 @@
using AutoMapper;
+using BBWY.Server.Model.Dto;
using BBWYB.Server.Model.Db;
using BBWYB.Server.Model.Dto;
@@ -25,36 +26,27 @@ namespace BBWYB.Server.Model
//CreateMap();
//CreateMap();
//CreateMap();
- //CreateMap();
- //CreateMap();
- //CreateMap();
+ CreateMap();
+ CreateMap();
+ CreateMap();
//CreateMap();
- //CreateMap().ForMember(t => t.Id, opt => opt.MapFrom(f => f.SkuId));
- //CreateMap().ForMember(t => t.OrderStartTime, opt => opt.MapFrom(f => f.StartTime))
- // .ForMember(t => t.OrderEndTime, opt => opt.MapFrom(f => f.EndTime))
- // .ForMember(t => t.OrderModifyTime, opt => opt.MapFrom(f => f.ModifyTime))
- // .ForPath(t => t.Consignee.IsDecode, opt => opt.MapFrom(f => f.IsDecode))
- // .ForPath(t => t.Consignee.Province, opt => opt.MapFrom(f => f.Province))
- // .ForPath(t => t.Consignee.City, opt => opt.MapFrom(f => f.City))
- // .ForPath(t => t.Consignee.County, opt => opt.MapFrom(f => f.County))
- // .ForPath(t => t.Consignee.Town, opt => opt.MapFrom(f => f.Town))
- // .ForPath(t => t.Consignee.Address, opt => opt.MapFrom(f => f.Address))
- // .ForPath(t => t.Consignee.Mobile, opt => opt.MapFrom(f => f.Mobile))
- // .ForPath(t => t.Consignee.TelePhone, opt => opt.MapFrom(f => f.TelePhone))
- // .ForPath(t => t.Consignee.ContactName, opt => opt.MapFrom(f => f.ContactName))
- // .ForPath(t => t.OrderCost.OrderId, opt => opt.MapFrom(f => f.Id))
- // .ForPath(t => t.OrderCost.PurchaseAmount, opt => opt.MapFrom(f => f.PurchaseAmount ?? 0))
- // .ForPath(t => t.OrderCost.Profit, opt => opt.MapFrom(f => f.Profit ?? 0))
- // .ForPath(t => t.OrderCost.DeliveryExpressFreight, opt => opt.MapFrom(f => f.DeliveryExpressFreight ?? 0))
- // .ForPath(t => t.OrderCost.PlatformCommissionAmount, opt => opt.MapFrom(f => f.PlatformCommissionAmount ?? 0))
- // .ForPath(t => t.OrderCost.PlatformCommissionRatio, opt => opt.MapFrom(f => f.PlatformCommissionRatio ?? 0))
- // .ForPath(t => t.OrderCost.PreferentialAmount, opt => opt.MapFrom(f => f.PreferentialAmount))
- // .ForPath(t => t.OrderCost.IsManualEdited, opt => opt.MapFrom(f => f.IsManualEdited))
- // .ForPath(t => t.OrderCost.SDCommissionAmount, opt => opt.MapFrom(f => f.SDCommissionAmount))
- // .ForPath(t => t.OrderCost.SDOrderAmount, opt => opt.MapFrom(f => f.SDOrderAmount))
- // .ForPath(t => t.OrderCost.RefundAmount, opt => opt.MapFrom(f => f.RefundAmount))
- // .ForPath(t => t.OrderCost.RefundPurchaseAmount, opt => opt.MapFrom(f => f.RefundPurchaseAmount))
- // .ForPath(t => t.OrderCost.AfterTotalCost, opt => opt.MapFrom(f => f.AfterTotalCost));
+ CreateMap().ForMember(t => t.Id, opt => opt.MapFrom(f => f.SkuId));
+ CreateMap().ForPath(t => t.Consignee.Province, opt => opt.MapFrom(f => f.Province))
+ .ForPath(t => t.Consignee.City, opt => opt.MapFrom(f => f.City))
+ .ForPath(t => t.Consignee.County, opt => opt.MapFrom(f => f.County))
+ .ForPath(t => t.Consignee.Town, opt => opt.MapFrom(f => f.Town))
+ .ForPath(t => t.Consignee.Address, opt => opt.MapFrom(f => f.Address))
+ .ForPath(t => t.Consignee.Mobile, opt => opt.MapFrom(f => f.Mobile))
+ .ForPath(t => t.Consignee.TelePhone, opt => opt.MapFrom(f => f.TelePhone))
+ .ForPath(t => t.Consignee.ContactName, opt => opt.MapFrom(f => f.ContactName))
+ .ForPath(t => t.OrderCost.OrderId, opt => opt.MapFrom(f => f.Id))
+ .ForPath(t => t.OrderCost.PurchaseAmount, opt => opt.MapFrom(f => f.PurchaseAmount ?? 0))
+ .ForPath(t => t.OrderCost.Profit, opt => opt.MapFrom(f => f.Profit ?? 0))
+ .ForPath(t => t.OrderCost.DeliveryExpressFreight, opt => opt.MapFrom(f => f.DeliveryExpressFreight ?? 0))
+ .ForPath(t => t.OrderCost.PlatformCommissionAmount, opt => opt.MapFrom(f => f.PlatformCommissionAmount ?? 0))
+ .ForPath(t => t.OrderCost.PlatformCommissionRatio, opt => opt.MapFrom(f => f.PlatformCommissionRatio ?? 0))
+ .ForPath(t => t.OrderCost.PreferentialAmount, opt => opt.MapFrom(f => f.PreferentialAmount))
+ .ForPath(t => t.OrderCost.IsManualEdited, opt => opt.MapFrom(f => f.IsManualEdited));
//CreateMap();