Browse Source

1

updatebug
shanji 2 years ago
parent
commit
92c4e29781
  1. 27
      BBWYB.Server.API/Controllers/OrderController.cs
  2. 51
      BBWYB.Server.Business/Order/OrderBusiness.cs
  3. 20
      BBWYB.Server.Business/Sync/OrderSyncBusiness.cs
  4. 66
      BBWYB.Server.Model/Db/Order/Order.cs
  5. 48
      BBWYB.Server.Model/Db/Order/OrderCost.cs
  6. 17
      BBWYB.Server.Model/Db/Order/OrderCostDetail.cs
  7. 77
      BBWYB.Server.Model/Dto/Response/Order/ConsigneeResponse.cs
  8. 14
      BBWYB.Server.Model/Dto/Response/Order/OrderCostDetailResponse.cs
  9. 3
      BBWYB.Server.Model/Dto/Response/Order/OrderCostResponse.cs
  10. 4
      BBWYB.Server.Model/Dto/Response/Order/OrderResponse.cs
  11. 24
      BBWYB.Server.Model/Dto/Response/Order/OrderSkuResponse.cs
  12. 50
      BBWYB.Server.Model/MappingProfiles.cs

27
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;
}
/// <summary>
/// 订单查询
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
public OrderListResponse GetOrderList(QueryOrderRequest request)
{
return orderBusiness.GetOrderList(request);
}
}
}

51
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<Func<Model.Db.Order, OrderConsignee, OrderCost, Order>> GetOrderListField()
private Expression<Func<Model.Db.Order, OrderConsignee, OrderCost, Model.Db.Order>> 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<IList<OrderResponse>>();
var orderIdList = orderList.Select(o => o.Id).ToList();
if (orderList.Count() > 0)
{
#region 处理Sku
var orderSkuList = fsql.Select<OrderSku>().Where(osku => osku.Price != 0 &&
orderIdList.Contains(osku.OrderId)).ToList<OrderSkuResponse>();
foreach (var order in orderList)
{
order.ItemList = orderSkuList.Where(osku => osku.OrderId == order.Id).ToList();
}
#endregion
#region 处理订单成本明细
var orderCostDetailList = fsql.Select<OrderCostDetail>().Where(ocd => orderIdList.Contains(ocd.OrderId) && ocd.IsEnabled == true).ToList<OrderCostDetailResponse>();
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
};
}
}

20
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<Order>(qtOrderIdList).ToList();
var dbOrderList = fsql.Select<Model.Db.Order>(qtOrderIdList).ToList();
List<Order> insertOrderList = new List<Order>();
List<Model.Db.Order> insertOrderList = new List<Model.Db.Order>();
List<OrderSku> insertOrderSkuList = new List<OrderSku>();
List<OrderConsignee> insertOrderConsigneeList = new List<OrderConsignee>();
List<IUpdate<Order>> updateOrderList = new List<IUpdate<Order>>();
List<IUpdate<Model.Db.Order>> updateOrderList = new List<IUpdate<Model.Db.Order>>();
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<Order>(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<Model.Db.Order>(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);
}
}

66
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 订单成本
/// <summary>
/// 平台扣点金额
/// </summary>
[Column(IsIgnore = true)]
public decimal? PlatformCommissionAmount { get; set; }
/// <summary>
/// 平台扣点百分比
/// </summary>
[Column(IsIgnore = true)]
public decimal? PlatformCommissionRatio { get; set; }
/// <summary>
/// 利润
/// </summary>
[Column(IsIgnore = true)]
public decimal? Profit { get; set; }
/// <summary>
/// 采购金额
/// </summary>
[Column(IsIgnore = true)]
public decimal? PurchaseAmount { get; set; } = 0.00M;
/// <summary>
/// 发货快递费
/// </summary>
[Column(IsIgnore = true)]
public decimal? DeliveryExpressFreight { get; set; } = 0.00M;
/// <summary>
/// 是否手动编辑过成本
/// </summary>
[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
}
}

48
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; }
/// <summary>
/// 所有服务单的售后成本(不含退款采购成本)
/// </summary>
[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
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal? PurchaseAmount { get; set; } = 0.00M;
/// <summary>
/// 退款金额
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal? RefundAmount { get; set; } = 0.00M;
/// <summary>
/// 退款采购成本
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal? RefundPurchaseAmount { get; set; } = 0.00M;
/// <summary>
/// 售后补发成本
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal? ReissueAfterSaleAmount { get; set; } = 0.00M;
/// <summary>
/// 补发快递费
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal? ReissueFreight { get; set; } = 0.00M;
/// <summary>
/// 补发货款成本
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal? ReissueProductAmount { get; set; } = 0.00M;
/// <summary>
/// 刷单佣金
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal? SDCommissionAmount { get; set; } = 0.00M;
/// <summary>
/// 刷单号费
/// </summary>
[Column(DbType = "decimal(18,2)")]
public decimal? SDOrderAmount { get; set; } = 0.00M;
}
}

17
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; }
/// <summary>
/// 采购单Id
/// </summary>
[Column(StringLength = 100)]
public string PurchaseOrderId { get; set; }
public long? ShopId { get; set; }
/// <summary>
@ -103,7 +110,13 @@ namespace BBWYB.Server.Model.Db
public decimal? StorageAmount { get; set; } = 0.00M;
/// <summary>
/// Sku合计成本(不含发货运费)
/// 采购成本(不含发货运费)
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal? PurchaseAmount { get; set; } = 0.00M;
/// <summary>
/// 成本总计
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal? TotalCost { get; set; } = 0.00M;

77
BBWYB.Server.Model/Dto/Response/Order/ConsigneeResponse.cs

@ -1,79 +1,10 @@
namespace BBWY.Server.Model.Dto
{
public class ConsigneeResponse
{
/// <summary>
/// 联系人名称
/// </summary>
public string ContactName { get; set; }
/// <summary>
/// 座机
/// </summary>
public string TelePhone { get; set; }
/// <summary>
/// 手机
/// </summary>
public string Mobile { get; set; }
public string Address { get; set; }
/// <summary>
/// 省
/// </summary>
public string Province { get; set; }
/// <summary>
/// 市
/// </summary>
public string City { get; set; }
/// <summary>
/// 县
/// </summary>
public string County { get; set; }
using BBWYB.Server.Model.Db;
/// <summary>
/// 镇
/// </summary>
public string Town { get; set; }
/// <summary>
/// 是否解码
/// </summary>
public bool? IsDecode { get; set; }
}
/// <summary>
/// 收货人信息(不含省市区)
/// </summary>
public class ConsigneeSimpleResponse
namespace BBWYB.Server.Model.Dto
{
public class ConsigneeResponse : OrderConsignee
{
/// <summary>
/// 联系人名称
/// </summary>
public string ContactName { get; set; }
/// <summary>
/// 座机
/// </summary>
public string TelePhone { get; set; }
/// <summary>
/// 手机
/// </summary>
public string Mobile { get; set; }
/// <summary>
/// 地址
/// </summary>
public string Address { get; set; }
/// <summary>
/// 买家账号
/// </summary>
public string BuyerAccount { get; set; }
}
}

14
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
{
/// <summary>
/// 总成本(包含销售运费)
/// </summary>
public decimal TotalCost2
{
get { return TotalCost + DeliveryExpressFreight; }
}
}
}

3
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
{

4
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
{

24
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; }
/// <summary>
/// 购买数量
/// </summary>
public int ItemTotal { get; set; }
public string ProductNo { get; set; }
/// <summary>
/// 代发信息Id
/// </summary>
public long? OrderDropShippingId { get; set; }
/// <summary>
/// 是否退款
/// </summary>
public bool IsRefund { get; set; } = false;
}
}

50
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<OrderDropShippingRequest, OrderDropShipping>();
//CreateMap<OrderDropShipping, OrderDropShippingResponse>();
//CreateMap<OrderCostDetailRequest, OrderCostDetail>();
//CreateMap<OrderCostDetail, OrderCostDetailResponse>();
//CreateMap<OrderConsignee, ConsigneeResponse>();
//CreateMap<OrderCost, OrderCostResponse>();
CreateMap<OrderCostDetail, OrderCostDetailResponse>();
CreateMap<OrderConsignee, ConsigneeResponse>();
CreateMap<OrderCost, OrderCostResponse>();
//CreateMap<OrderCoupon, OrderCouponResponse>();
//CreateMap<OrderSku, OrderSkuResponse>().ForMember(t => t.Id, opt => opt.MapFrom(f => f.SkuId));
//CreateMap<Order, OrderResponse>().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<OrderSku, OrderSkuResponse>().ForMember(t => t.Id, opt => opt.MapFrom(f => f.SkuId));
CreateMap<Order, OrderResponse>().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<AddOrEditPromotionTaskRequest, PromotionTask>();

Loading…
Cancel
Save