diff --git a/BBWY.Server.API/Controllers/AfterSaleOrderController.cs b/BBWY.Server.API/Controllers/AfterSaleOrderController.cs
new file mode 100644
index 00000000..2e19509a
--- /dev/null
+++ b/BBWY.Server.API/Controllers/AfterSaleOrderController.cs
@@ -0,0 +1,28 @@
+using BBWY.Server.Business;
+using BBWY.Server.Model.Dto;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+
+namespace BBWY.Server.API.Controllers
+{
+ public class AfterSaleOrderController : BaseApiController
+ {
+ private AfterSaleOrderBusiness afterSaleOrderBusiness;
+
+ public AfterSaleOrderController(IHttpContextAccessor httpContextAccessor, AfterSaleOrderBusiness afterSaleOrderBusiness) : base(httpContextAccessor)
+ {
+ this.afterSaleOrderBusiness = afterSaleOrderBusiness;
+ }
+
+ ///
+ /// 获取服务单列表
+ ///
+ ///
+ ///
+ [HttpPost]
+ public AfterSaleOrderListResponse GetAfterSaleOrderList([FromBody] SearchAfterSaleOrderRequest request)
+ {
+ return afterSaleOrderBusiness.GetAfterSaleOrderList(request);
+ }
+ }
+}
diff --git a/BBWY.Server.Business/AfterSaleOrder/AfterSaleOrderBusiness.cs b/BBWY.Server.Business/AfterSaleOrder/AfterSaleOrderBusiness.cs
new file mode 100644
index 00000000..39bb4095
--- /dev/null
+++ b/BBWY.Server.Business/AfterSaleOrder/AfterSaleOrderBusiness.cs
@@ -0,0 +1,74 @@
+using BBWY.Common.Models;
+using BBWY.Server.Model.Db;
+using BBWY.Server.Model.Dto;
+using BBWY.Server.Model.Dto.Request;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using Yitter.IdGenerator;
+
+namespace BBWY.Server.Business
+{
+ public class AfterSaleOrderBusiness : BaseBusiness, IDenpendency
+ {
+ public AfterSaleOrderBusiness(IFreeSql fsql, NLog.ILogger logger, IIdGenerator idGenerator) : base(fsql, logger, idGenerator)
+ {
+
+ }
+
+ public AfterSaleOrderListResponse GetAfterSaleOrderList(SearchAfterSaleOrderRequest request)
+ {
+ var select = fsql.Select().InnerJoin((aso, osku) => aso.SkuId == osku.SkuId);
+ if (!string.IsNullOrEmpty(request.ServiceId))
+ {
+ select = select.Where((aso, osku) => aso.ServiceId == request.ServiceId);
+ }
+ else
+ {
+ select = select.WhereIf(request.StartDate != null, (aso, osku) => aso.ApplyTime >= request.StartDate)
+ .WhereIf(request.EndDate != null, (aso, osku) => aso.ApplyTime <= request.EndDate)
+ .WhereIf(!string.IsNullOrEmpty(request.Spu), (aso, osku) => aso.ProductId == request.Spu)
+ .WhereIf(!string.IsNullOrEmpty(request.Sku), (aso, osku) => aso.SkuId == request.Sku)
+ .WhereIf(!string.IsNullOrEmpty(request.OrderId), (aso, osku) => aso.OrderId == request.OrderId);
+ }
+ select = select.Where((aso, osku) => aso.ShopId == request.ShopId)
+ .OrderByDescending((aso, osku) => aso.CreateTime)
+ .Count(out var total)
+ .Page(request.PageIndex, request.PageSize);
+
+ var list = select.ToList((aso, osku) => new AfterSaleOrderResponse
+ {
+ Id = aso.Id,
+ ApplyTime = aso.ApplyTime,
+ ConsumableAmount = aso.ConsumableAmount,
+ CreateTime = aso.CreateTime,
+ DeliveryExpressFreight = aso.DeliveryExpressFreight,
+ FirstFreight = aso.FirstFreight,
+ InStorageAmount = aso.InStorageAmount,
+ Logo = osku.Logo,
+ OrderId = aso.OrderId,
+ OutStorageAmount = aso.OutStorageAmount,
+ ProductHealth = aso.ProductHealth,
+ ProductId = aso.ProductId,
+ ProductResult = aso.ProductResult,
+ RefundAmount = aso.RefundAmount,
+ RefundInStorageAmount = aso.RefundInStorageAmount,
+ RefundPurchaseAmount = aso.RefundPurchaseAmount,
+ RefundTime = aso.RefundTime,
+ ReissueAfterSaleAmount = aso.ReissueAfterSaleAmount,
+ ReissueFreight = aso.ReissueFreight,
+ ReissueProductAmount = aso.ReissueProductAmount,
+ ServiceId = aso.ServiceId,
+ ServiceResult = aso.ServiceResult,
+ ShopId = aso.ShopId,
+ SkuId = aso.SkuId,
+ Title = osku.Title
+ });
+ return new AfterSaleOrderListResponse()
+ {
+ Count = total,
+ Items = list
+ };
+ }
+ }
+}
diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs
index 83496dc9..82643af8 100644
--- a/BBWY.Server.Business/Order/OrderBusiness.cs
+++ b/BBWY.Server.Business/Order/OrderBusiness.cs
@@ -156,14 +156,6 @@ namespace BBWY.Server.Business
ReissueAfterSaleAmount = oct.ReissueAfterSaleAmount,
ReissueFreight = oct.ReissueFreight,
ReissueProductAmount = oct.ReissueProductAmount
-
- //BuyerAccount = ods.BuyerAccount,
- //DeliveryFreight = ods.DeliveryFreight,
- //PurchaseOrderId = ods.PurchaseOrderId,
- //PurchasePlatform = ods.PurchasePlatform,
- //SellerAccount = ods.SellerAccount,
- //OrderDropShippingSkuAmount = ods.SkuAmount,
- //OrderDropShippingPurchaseFreight = ods.PurchaseFreight,
});
var orderList = orderSourceList.Map>();
@@ -206,11 +198,11 @@ namespace BBWY.Server.Business
order.OrderCostDetailList = orderCostDetailList.Where(ocd => ocd.OrderId == order.Id).ToList();
#endregion
- #region 处理售后信息
- var afterSaleOrderList = fsql.Select().Where(aso => orderIdList.Contains(aso.OrderId)).ToList();
- foreach (var order in orderList)
- order.AfterSaleOrderList = afterSaleOrderList.Where(aso => aso.OrderId == order.Id).ToList();
- #endregion
+ //#region 处理售后信息
+ //var afterSaleOrderList = fsql.Select().Where(aso => orderIdList.Contains(aso.OrderId)).ToList();
+ //foreach (var order in orderList)
+ // order.AfterSaleOrderList = afterSaleOrderList.Where(aso => aso.OrderId == order.Id).ToList();
+ //#endregion
#region 翻译仓库Id
foreach (var order in orderList)
diff --git a/BBWY.Server.Business/Sync/AfterSaleOrderSyncBusiness.cs b/BBWY.Server.Business/Sync/AfterSaleOrderSyncBusiness.cs
index e69861b0..05866f1d 100644
--- a/BBWY.Server.Business/Sync/AfterSaleOrderSyncBusiness.cs
+++ b/BBWY.Server.Business/Sync/AfterSaleOrderSyncBusiness.cs
@@ -1,4 +1,5 @@
-using BBWY.Common.Http;
+using BBWY.Common.Extensions;
+using BBWY.Common.Http;
using BBWY.Common.Models;
using BBWY.Server.Model;
using BBWY.Server.Model.Db;
@@ -76,7 +77,7 @@ namespace BBWY.Server.Business
{
var orderId = afterOrderJToken.Value("orderId");
var skuId = afterOrderJToken.Value("skuId");
- var serviceId = afterOrderJToken.Value("serviceId");
+ var serviceId = afterOrderJToken.Value("serviceId");
var processResult = processResultDic[afterOrderJToken.Value("processResult")];
var afterOrder = afterOrders.FirstOrDefault(aso => aso.ServiceId == serviceId);
@@ -96,7 +97,8 @@ namespace BBWY.Server.Business
SkuId = skuId,
ShopId = shopId,
ServiceResult = processResult,
- ServiceId = serviceId
+ ServiceId = serviceId,
+ ApplyTime = afterOrderJToken.Value("applyTime").StampToDateTime()
});
}
else
diff --git a/BBWY.Server.Business/Sync/RefundOrderSyncBusiness.cs b/BBWY.Server.Business/Sync/RefundOrderSyncBusiness.cs
index 404215e5..19de66a5 100644
--- a/BBWY.Server.Business/Sync/RefundOrderSyncBusiness.cs
+++ b/BBWY.Server.Business/Sync/RefundOrderSyncBusiness.cs
@@ -67,7 +67,7 @@ namespace BBWY.Server.Business
var refundAmount = refundOrderJToken.Value("refoundAmount");
var refundCompleteTime = refundOrderJToken.Value("completeTime").StampToDateTime();
- var serviceId = long.Parse(refundOrderJToken["sameOrderServiceBill"]["serviceId"].ToString());
+ var serviceId = refundOrderJToken["sameOrderServiceBill"]["serviceId"].ToString();
var afterOrder = afterOrders.FirstOrDefault(aso => aso.ServiceId == serviceId);
if (afterOrder == null)
@@ -85,7 +85,8 @@ namespace BBWY.Server.Business
RefundTime = refundCompleteTime,
SkuId = skuId,
ShopId = shopId,
- ServiceId = serviceId
+ ServiceId = serviceId,
+ ApplyTime = long.Parse(refundOrderJToken["sameOrderServiceBill"]["afsApplyTime"].ToString()).StampToDateTime()
});
}
else if (afterOrder.RefundAmount == 0)
diff --git a/BBWY.Server.Model/Db/Aftersaleorder.cs b/BBWY.Server.Model/Db/Aftersaleorder.cs
deleted file mode 100644
index ea505cc1..00000000
--- a/BBWY.Server.Model/Db/Aftersaleorder.cs
+++ /dev/null
@@ -1,131 +0,0 @@
-using FreeSql.DatabaseModel;using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reflection;
-using System.Threading.Tasks;
-using Newtonsoft.Json;
-using FreeSql.DataAnnotations;
-
-namespace BBWY.Server.Model.Db {
-
- [JsonObject(MemberSerialization.OptIn), Table(Name = "aftersaleorder", DisableSyncStructure = true)]
- public partial class Aftersaleorder {
-
- [JsonProperty, Column(IsPrimary = true)]
- public long Id { get; set; }
-
- ///
- /// 耗材费
- ///
- [JsonProperty, Column(DbType = "decimal(18,2)")]
- public decimal? ConsumableAmount { get; set; } = 0.00M;
-
- [JsonProperty, Column(DbType = "datetime")]
- public DateTime? CreateTime { get; set; }
-
- ///
- /// 发货快递费
- ///
- [JsonProperty, Column(DbType = "decimal(18,2)")]
- public decimal? DeliveryExpressFreight { get; set; } = 0.00M;
-
- ///
- /// 头程费
- ///
- [JsonProperty, Column(DbType = "decimal(18,2)")]
- public decimal? FirstFreight { get; set; } = 0.00M;
-
- ///
- /// 入仓操作费
- ///
- [JsonProperty, Column(DbType = "decimal(18,2)")]
- public decimal? InStorageAmount { get; set; } = 0.00M;
-
- [JsonProperty, Column(StringLength = 50)]
- public string OrderId { get; set; }
-
- ///
- /// 出仓操作费
- ///
- [JsonProperty, Column(DbType = "decimal(18,2)")]
- public decimal? OutStorageAmount { get; set; } = 0.00M;
-
- ///
- /// 商品情况
- ///
- [JsonProperty, Column(DbType = "int(1)")]
- public int? ProductHealth { get; set; }
-
- [JsonProperty, Column(StringLength = 50)]
- public string ProductId { get; set; }
-
- ///
- /// 商品处理方式
- ///
- [JsonProperty, Column(DbType = "int(255)")]
- public int? ProductResult { get; set; }
-
- ///
- /// 退款金额
- ///
- [JsonProperty, Column(DbType = "decimal(20,2)")]
- public decimal? RefundAmount { get; set; } = 0.00M;
-
- ///
- /// 退货入仓操作费
- ///
- [JsonProperty, Column(DbType = "decimal(18,2)")]
- public decimal? RefundInStorageAmount { get; set; } = 0.00M;
-
- ///
- /// 退款采购成本
- ///
- [JsonProperty, Column(DbType = "decimal(18,2)")]
- public decimal? RefundPurchaseAmount { get; set; } = 0.00M;
-
- ///
- /// 退款时间
- ///
- [JsonProperty, Column(DbType = "datetime")]
- public DateTime? RefundTime { get; set; }
-
- ///
- /// 售后补发成本
- ///
- [JsonProperty, Column(DbType = "decimal(20,2)")]
- public decimal? ReissueAfterSaleAmount { get; set; } = 0.00M;
-
- ///
- /// 补发快递费
- ///
- [JsonProperty, Column(DbType = "decimal(20,2)")]
- public decimal? ReissueFreight { get; set; } = 0.00M;
-
- ///
- /// 补发货款成本
- ///
- [JsonProperty, Column(DbType = "decimal(20,2)")]
- public decimal? ReissueProductAmount { get; set; } = 0.00M;
-
- ///
- /// 服务单号
- ///
- [JsonProperty]
- public long? ServiceId { get; set; }
-
- ///
- /// 服务单处理结果
- ///
- [JsonProperty, Column(DbType = "int(1)")]
- public int? ServiceResult { get; set; }
-
- [JsonProperty]
- public long? ShopId { get; set; }
-
- [JsonProperty, Column(StringLength = 50)]
- public string SkuId { get; set; }
-
- }
-
-}
diff --git a/BBWY.Server.Model/Db/Order/AfterSaleOrder.cs b/BBWY.Server.Model/Db/Order/AfterSaleOrder.cs
index 7fc94395..c98ee04b 100644
--- a/BBWY.Server.Model/Db/Order/AfterSaleOrder.cs
+++ b/BBWY.Server.Model/Db/Order/AfterSaleOrder.cs
@@ -14,6 +14,12 @@ namespace BBWY.Server.Model.Db
[Column(DbType = "datetime")]
public DateTime? CreateTime { get; set; }
+ ///
+ /// 申请时间
+ ///
+ [Column(DbType = "datetime")]
+ public DateTime? ApplyTime { get; set; }
+
[Column(StringLength = 50)]
public string OrderId { get; set; }
@@ -68,9 +74,10 @@ namespace BBWY.Server.Model.Db
public string SkuId { get; set; }
///
- /// 服务单号
- ///
- public long? ServiceId { get; set; }
+ /// 服务单号
+ ///
+ [Column(StringLength = 20)]
+ public string ServiceId { get; set; }
///
/// 退货入仓操作费
diff --git a/BBWY.Server.Model/Dto/Request/AfterSaleOrder/SearchAfterSaleOrderRequest.cs b/BBWY.Server.Model/Dto/Request/AfterSaleOrder/SearchAfterSaleOrderRequest.cs
new file mode 100644
index 00000000..aa67f3e7
--- /dev/null
+++ b/BBWY.Server.Model/Dto/Request/AfterSaleOrder/SearchAfterSaleOrderRequest.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace BBWY.Server.Model.Dto
+{
+ public class SearchAfterSaleOrderRequest
+ {
+ public long ShopId { get; set; }
+
+ public string OrderId { get; set; }
+
+ public DateTime? StartDate { get; set; }
+
+ public DateTime? EndDate { get; set; }
+
+ public string Spu { get; set; }
+
+ public string Sku { get; set; }
+
+ public string ServiceId { get; set; }
+
+ public int PageIndex { get; set; }
+
+ public int PageSize { get; set; }
+ }
+}
diff --git a/BBWY.Server.Model/Dto/Response/AfterSaleOrder/AfterSaleOrderListResponse.cs b/BBWY.Server.Model/Dto/Response/AfterSaleOrder/AfterSaleOrderListResponse.cs
new file mode 100644
index 00000000..0ab1b573
--- /dev/null
+++ b/BBWY.Server.Model/Dto/Response/AfterSaleOrder/AfterSaleOrderListResponse.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace BBWY.Server.Model.Dto
+{
+ public class AfterSaleOrderListResponse
+ {
+ public long Count { get; set; }
+
+ public IList Items { get; set; }
+ }
+}
diff --git a/BBWY.Server.Model/Dto/Response/Order/AfterSaleOrderResponse.cs b/BBWY.Server.Model/Dto/Response/AfterSaleOrder/AfterSaleOrderResponse.cs
similarity index 61%
rename from BBWY.Server.Model/Dto/Response/Order/AfterSaleOrderResponse.cs
rename to BBWY.Server.Model/Dto/Response/AfterSaleOrder/AfterSaleOrderResponse.cs
index cdd94b2b..8dfc7b75 100644
--- a/BBWY.Server.Model/Dto/Response/Order/AfterSaleOrderResponse.cs
+++ b/BBWY.Server.Model/Dto/Response/AfterSaleOrder/AfterSaleOrderResponse.cs
@@ -1,11 +1,11 @@
using BBWY.Server.Model.Db;
-using System;
-using System.Collections.Generic;
-using System.Text;
namespace BBWY.Server.Model.Dto
{
public class AfterSaleOrderResponse : AfterSaleOrder
{
+ public string Logo { get; set; }
+
+ public string Title { get; set; }
}
}
diff --git a/BBWY.Test/Program.cs b/BBWY.Test/Program.cs
index cd143f02..d1669bdb 100644
--- a/BBWY.Test/Program.cs
+++ b/BBWY.Test/Program.cs
@@ -1,19 +1,8 @@
-using BBWY.Common.Models;
-using BBWY.JDSDK.Request;
-using BBWY.Server.Model.Db;
-using BBWY.Server.Model.Dto;
-using Jd.Api;
+using Jd.Api;
using Jd.Api.Request;
using Jd.Api.Response;
using Newtonsoft.Json;
-using Newtonsoft.Json.Linq;
using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Text.RegularExpressions;
-using System.Threading.Tasks;
-using io = System.IO;
namespace BBWY.Test
{
internal class Program
@@ -30,19 +19,26 @@ namespace BBWY.Test
var token = "2ace3023200c4ea9aa682bbf8bffee18jztm";
var jdClient = GetJdClient(appKey, appSecret);
- var req = new AscQueryListRequest();
- req.buId = "10598776";
- req.operatePin = "开发测试";
- req.operateNick = "开发测试";
- req.pageNumber = "1";
- req.pageSize ="50";
+ //var req = new AscQueryListRequest();
+ //req.buId = "10598776";
+ //req.operatePin = "开发测试";
+ //req.operateNick = "开发测试";
+ //req.pageNumber = "1";
+ //req.pageSize ="50";
+ //req.serviceId = 1472302469;
+ //AscQueryListResponse response1 = jdClient.Execute(req, token, DateTime.Now.ToLocalTime());
- req.orderId = null;
+ //Console.WriteLine(JsonConvert.SerializeObject(response1));
- req.serviceId = 1377757485;
+ //250134673037
- AscQueryListResponse response = jdClient.Execute(req, token, DateTime.Now.ToLocalTime());
+ AscServiceAndRefundViewRequest req = new AscServiceAndRefundViewRequest();
+ req.orderId = 250134673037;
+ req.pageNumber = 1.ToString();
+ req.pageSize = 10.ToString();
+
+ var response = jdClient.Execute(req, token, DateTime.Now.ToLocalTime());
Console.WriteLine(JsonConvert.SerializeObject(response));
Console.ReadKey();
}