shanji 2 years ago
parent
commit
38d8e15927
  1. 20
      BBWY.Server.Business/PlatformSDK/JDBusiness.cs
  2. 5
      BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs
  3. 25
      BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs
  4. 101
      BBWY.Server.Model/Db/Order/Serviceorder.cs
  5. 14
      BBWY.Server.Model/Dto/Request/Sync/QueryServiceOrderDetailRequest.cs
  6. 41
      BBWY.Test/Program.cs
  7. 13
      JD.API/Controllers/PlatformSDKController.cs

20
BBWY.Server.Business/PlatformSDK/JDBusiness.cs

@ -1379,5 +1379,25 @@ namespace BBWY.Server.Business
return (JArray)res.Json["jingdong_asc_sync_list_responce"]["pageResult"]["data"]; return (JArray)res.Json["jingdong_asc_sync_list_responce"]["pageResult"]["data"];
} }
public override JToken GetServiceOrderDetail(QueryServiceOrderDetailRequest request)
{
var jdClient = GetJdClient(request.AppKey, request.AppSecret);
var req = new AscQueryViewRequest();
req.buId = request.VenderId;
req.operatePin = "开发测试";
req.operateNick = "开发测试";
req.serviceId = int.Parse(request.ServiceId);
req.orderId = long.Parse(request.OrderId);
var res = jdClient.Execute(req, request.AppToken, DateTime.Now.ToLocalTime());
if (res.IsError)
throw new BusinessException($"查询服务单详情失败-{(string.IsNullOrEmpty(res.ErrorMsg) ? res.ErrMsg : res.ErrorMsg)}");
if (res.Json == null)
res.Json = JsonConvert.DeserializeObject<JObject>(res.Body);
return res.Json["jingdong_asc_query_view_responce"]["result"]["data"];
}
} }
} }

5
BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs

@ -192,5 +192,10 @@ namespace BBWY.Server.Business
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }
public virtual JToken GetServiceOrderDetail(QueryServiceOrderDetailRequest request)
{
throw new NotImplementedException();
}
} }
} }

25
BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs

@ -94,12 +94,22 @@ namespace BBWY.Server.Business.Sync
#endregion #endregion
var serviceIdList = jtokenList.Select(j => j.Value<string>("serviceId")).ToList(); var serviceIdList = jtokenList.Select(j => j.Value<string>("serviceId")).ToList();
var dbServiceOrderList = fsql.Select<ServiceOrder>().Where(s => serviceIdList.Contains(s.ServiceId)).ToList(); var dbServiceOrderList = fsql.Select<ServiceOrder>().Where(s => s.ShopId == shop.ShopId && serviceIdList.Contains(s.ServiceId)).ToList();
var dbServiceIdList = dbServiceOrderList.Select(s => s.ServiceId).ToList(); var dbServiceIdList = dbServiceOrderList.Select(s => s.ServiceId).ToList();
var exceptServiceIdList = serviceIdList.Except(dbServiceIdList); var exceptServiceIdList = serviceIdList.Except(dbServiceIdList);
var apiOrderIdList = jtokenList.Where(j => exceptServiceIdList.Contains(j.Value<string>("serviceId"))).Select(j => j.Value<string>("orderId")).ToList(); var apiOrderIdList = jtokenList.Where(j => exceptServiceIdList.Contains(j.Value<string>("serviceId"))).Select(j => j.Value<string>("orderId")).ToList();
var dbOrderSkuList = fsql.Select<OrderSku>().Where(osku => osku.ShopId == shopId && apiOrderIdList.Contains(osku.OrderId)).ToList(); var dbOrderSkuList = fsql.Select<OrderSku, Order>().InnerJoin((osku, o) => osku.OrderId == o.Id)
.Where((osku, o) => osku.ShopId == shopId && apiOrderIdList.Contains(osku.OrderId))
.ToList((osku, o) => new
{
Id = osku.Id,
ProductId = osku.ProductId,
SkuId = osku.SkuId,
OrderId = osku.OrderId,
ItemTotal = osku.ItemTotal,
StorageType = o.StorageType
});
foreach (var serviceOrderJToken in jtokenList) foreach (var serviceOrderJToken in jtokenList)
{ {
@ -112,6 +122,16 @@ namespace BBWY.Server.Business.Sync
var dbOsku = dbOrderSkuList.FirstOrDefault(osku => osku.OrderId == serviceOrderId && osku.SkuId == skuId); var dbOsku = dbOrderSkuList.FirstOrDefault(osku => osku.OrderId == serviceOrderId && osku.SkuId == skuId);
if (dbOsku == null) if (dbOsku == null)
continue; continue;
var isNeedSubscribeKuaiDi100 = false;
if (dbOsku.StorageType == Enums.StorageType.)
isNeedSubscribeKuaiDi100 = true;
else
{
//检查退货城市是否为泉州
}
dbServiceOrder = new ServiceOrder() dbServiceOrder = new ServiceOrder()
{ {
Id = idGenerator.NewLong(), Id = idGenerator.NewLong(),
@ -125,6 +145,7 @@ namespace BBWY.Server.Business.Sync
SkuId = skuId, SkuId = skuId,
StatusUpdateTime = serviceOrderJToken.Value<DateTime>("updateTime"), StatusUpdateTime = serviceOrderJToken.Value<DateTime>("updateTime"),
IsSubscribeKuaiDi100 = false, IsSubscribeKuaiDi100 = false,
IsNeedSubscribeKuaiDi100 = isNeedSubscribeKuaiDi100,
WaybillNo = string.Empty, WaybillNo = string.Empty,
ExpressName = string.Empty, ExpressName = string.Empty,
ApplyTime = serviceOrderJToken.Value<DateTime>("applyTime") ApplyTime = serviceOrderJToken.Value<DateTime>("applyTime")

101
BBWY.Server.Model/Db/Order/Serviceorder.cs

@ -12,271 +12,276 @@ namespace BBWY.Server.Model.Db {
/// <summary> /// <summary>
/// 服务单表(new) /// 服务单表(new)
/// </summary> /// </summary>
[JsonObject(MemberSerialization.OptIn), Table(Name = "serviceorder", DisableSyncStructure = true)] [ Table(Name = "serviceorder", DisableSyncStructure = true)]
public partial class ServiceOrder { public partial class ServiceOrder {
[JsonProperty, Column(IsPrimary = true, IsIdentity = true)] [Column(IsPrimary = true, IsIdentity = true)]
public long Id { get; set; } public long Id { get; set; }
/// <summary> /// <summary>
/// 售后成本(不含退款采购成本) /// 售后成本(不含退款采购成本)
/// </summary> /// </summary>
[JsonProperty, Column(DbType = "decimal(18,2)")] [Column(DbType = "decimal(18,2)")]
public decimal? AfterTotalCost { get; set; } = 0.00M; public decimal? AfterTotalCost { get; set; } = 0.00M;
/// <summary> /// <summary>
/// 申请时间 /// 申请时间
/// </summary> /// </summary>
[JsonProperty, Column(DbType = "datetime")] [Column(DbType = "datetime")]
public DateTime? ApplyTime { get; set; } public DateTime? ApplyTime { get; set; }
/// <summary> /// <summary>
/// 耗材费 /// 耗材费
/// </summary> /// </summary>
[JsonProperty, Column(DbType = "decimal(18,2)")] [Column(DbType = "decimal(18,2)")]
public decimal? ConsumableAmount { get; set; } = 0.00M; public decimal? ConsumableAmount { get; set; } = 0.00M;
[JsonProperty, Column(DbType = "datetime")] [Column(DbType = "datetime")]
public DateTime? CreateTime { get; set; } public DateTime? CreateTime { get; set; }
/// <summary> /// <summary>
/// 发货快递费 /// 发货快递费
/// </summary> /// </summary>
[JsonProperty, Column(DbType = "decimal(18,2)")] [Column(DbType = "decimal(18,2)")]
public decimal? DeliveryExpressFreight { get; set; } = 0.00M; public decimal? DeliveryExpressFreight { get; set; } = 0.00M;
/// <summary> /// <summary>
/// 快递公司名称 /// 快递公司名称
/// </summary> /// </summary>
[JsonProperty, Column(StringLength = 100)] [Column(StringLength = 100)]
public string ExpressName { get; set; } public string ExpressName { get; set; }
/// <summary> /// <summary>
/// 头程费 /// 头程费
/// </summary> /// </summary>
[JsonProperty, Column(DbType = "decimal(18,2)")] [Column(DbType = "decimal(18,2)")]
public decimal? FirstFreight { get; set; } = 0.00M; public decimal? FirstFreight { get; set; } = 0.00M;
/// <summary> /// <summary>
/// 退货拍摄图(名称) /// 退货拍摄图(名称)
/// </summary> /// </summary>
[JsonProperty, Column(StringLength = 1000)] [Column(StringLength = 1000)]
public string ImageName { get; set; } public string ImageName { get; set; }
/// <summary> /// <summary>
/// 入仓操作费 /// 入仓操作费
/// </summary> /// </summary>
[JsonProperty, Column(DbType = "decimal(18,2)")] [Column(DbType = "decimal(18,2)")]
public decimal? InStorageAmount { get; set; } = 0.00M; public decimal? InStorageAmount { get; set; } = 0.00M;
/// <summary> /// <summary>
/// 是否订阅快递100 /// 是否订阅快递100
/// </summary> /// </summary>
[JsonProperty]
public bool? IsSubscribeKuaiDi100 { get; set; } public bool? IsSubscribeKuaiDi100 { get; set; }
[JsonProperty, Column(StringLength = 50)] /// <summary>
/// 是否需要订阅快递100
/// </summary>
public bool? IsNeedSubscribeKuaiDi100 { get; set; }
[Column(StringLength = 50)]
public string OrderId { get; set; } public string OrderId { get; set; }
/// <summary> /// <summary>
/// 出仓操作费 /// 出仓操作费
/// </summary> /// </summary>
[JsonProperty, Column(DbType = "decimal(18,2)")] [Column(DbType = "decimal(18,2)")]
public decimal? OutStorageAmount { get; set; } = 0.00M; public decimal? OutStorageAmount { get; set; } = 0.00M;
/// <summary> /// <summary>
/// 产品外观 (严重损=0 轻微损=1 新=2) /// 产品外观 (严重损=0 轻微损=1 新=2)
/// </summary> /// </summary>
[JsonProperty]
public int? ProductAppearance { get; set; } public int? ProductAppearance { get; set; }
/// <summary> /// <summary>
/// 产品功能 (坏=0 好=1) /// 产品功能 (坏=0 好=1)
/// </summary> /// </summary>
[JsonProperty]
public int? ProductFunction { get; set; } public int? ProductFunction { get; set; }
/// <summary> /// <summary>
/// 商品健康状态 (残次品=0 良品=1) /// 商品健康状态 (残次品=0 良品=1)
/// </summary> /// </summary>
[JsonProperty]
public int? ProductHealth { get; set; } public int? ProductHealth { get; set; }
/// <summary> /// <summary>
/// 商品情况(定义待变更);名称待定,以前的商品情况,叶总需要更换定义 /// 商品情况(定义待变更);名称待定,以前的商品情况,叶总需要更换定义
/// </summary> /// </summary>
[JsonProperty]
public int? ProductHealth2 { get; set; } public int? ProductHealth2 { get; set; }
[JsonProperty, Column(StringLength = 50)] [Column(StringLength = 50)]
public string ProductId { get; set; } public string ProductId { get; set; }
/// <summary> /// <summary>
/// 产品包装(无=0 非新=1 新=2) /// 产品包装(无=0 非新=1 新=2)
/// </summary> /// </summary>
[JsonProperty]
public int? ProductPackage { get; set; } public int? ProductPackage { get; set; }
/// <summary> /// <summary>
/// 商品处理方式;弃用 /// 商品处理方式;弃用
/// </summary> /// </summary>
[JsonProperty]
public int? ProductResult { get; set; } public int? ProductResult { get; set; }
/// <summary> /// <summary>
/// 采购方式 /// 采购方式
/// </summary> /// </summary>
[JsonProperty]
public int? PurchaseMethod { get; set; } public int? PurchaseMethod { get; set; }
/// <summary> /// <summary>
/// 采购单号 /// 采购单号
/// </summary> /// </summary>
[JsonProperty, Column(StringLength = 100)] [Column(StringLength = 100)]
public string PurchaseOrderId { get; set; } public string PurchaseOrderId { get; set; }
/// <summary> /// <summary>
/// 采购单主键 /// 采购单主键
/// </summary> /// </summary>
[JsonProperty]
public long? PurchaseOrderPKId { get; set; } public long? PurchaseOrderPKId { get; set; }
/// <summary> /// <summary>
/// 采购平台 /// 采购平台
/// </summary> /// </summary>
[JsonProperty]
public int? PurchasePlatform { get; set; } public int? PurchasePlatform { get; set; }
/// <summary> /// <summary>
/// 退款支付宝订单号 /// 退款支付宝订单号
/// </summary> /// </summary>
[JsonProperty, Column(StringLength = 100)] [Column(StringLength = 100)]
public string RefundAlipayOrderNo { get; set; } public string RefundAlipayOrderNo { get; set; }
/// <summary> /// <summary>
/// 退款金额 /// 退款金额
/// </summary> /// </summary>
[JsonProperty, Column(DbType = "decimal(20,2)")] [Column(DbType = "decimal(20,2)")]
public decimal? RefundAmount { get; set; } = 0.00M; public decimal? RefundAmount { get; set; } = 0.00M;
/// <summary> /// <summary>
/// 退货入仓操作费 /// 退货入仓操作费
/// </summary> /// </summary>
[JsonProperty, Column(DbType = "decimal(18,2)")] [Column(DbType = "decimal(18,2)")]
public decimal? RefundInStorageAmount { get; set; } = 0.00M; public decimal? RefundInStorageAmount { get; set; } = 0.00M;
/// <summary> /// <summary>
/// 退款商户订单号 /// 退款商户订单号
/// </summary> /// </summary>
[JsonProperty, Column(StringLength = 100)] [Column(StringLength = 100)]
public string RefundMerchantOrderNo { get; set; } public string RefundMerchantOrderNo { get; set; }
/// <summary> /// <summary>
/// 退款采购成本 /// 退款采购成本
/// </summary> /// </summary>
[JsonProperty, Column(DbType = "decimal(18,2)")] [Column(DbType = "decimal(18,2)")]
public decimal? RefundPurchaseAmount { get; set; } = 0.00M; public decimal? RefundPurchaseAmount { get; set; } = 0.00M;
/// <summary> /// <summary>
/// 退款时间 /// 退款时间
/// </summary> /// </summary>
[JsonProperty, Column(DbType = "datetime")] [Column(DbType = "datetime")]
public DateTime? RefundTime { get; set; } public DateTime? RefundTime { get; set; }
/// <summary> /// <summary>
/// 售后补发成本 /// 售后补发成本
/// </summary> /// </summary>
[JsonProperty, Column(DbType = "decimal(20,2)")] [Column(DbType = "decimal(20,2)")]
public decimal? ReissueAfterSaleAmount { get; set; } = 0.00M; public decimal? ReissueAfterSaleAmount { get; set; } = 0.00M;
/// <summary> /// <summary>
/// 补发快递费 /// 补发快递费
/// </summary> /// </summary>
[JsonProperty, Column(DbType = "decimal(20,2)")] [Column(DbType = "decimal(20,2)")]
public decimal? ReissueFreight { get; set; } = 0.00M; public decimal? ReissueFreight { get; set; } = 0.00M;
/// <summary> /// <summary>
/// 补发货款成本 /// 补发货款成本
/// </summary> /// </summary>
[JsonProperty, Column(DbType = "decimal(20,2)")] [Column(DbType = "decimal(20,2)")]
public decimal? ReissueProductAmount { get; set; } = 0.00M; public decimal? ReissueProductAmount { get; set; } = 0.00M;
/// <summary> /// <summary>
/// 退货去向(退货仓=0,采购商=1,原返=2,无退货=3) /// 退货去向(退货仓=0,采购商=1,原返=2,无退货=3)
/// </summary> /// </summary>
[JsonProperty]
public int? ReturnDirection { get; set; } public int? ReturnDirection { get; set; }
/// <summary> /// <summary>
/// SD退货运费 /// SD退货运费
/// </summary> /// </summary>
[JsonProperty, Column(DbType = "decimal(18,2)")] [Column(DbType = "decimal(18,2)")]
public decimal? SDRefundFreight { get; set; } = 0.00M; public decimal? SDRefundFreight { get; set; } = 0.00M;
/// <summary> /// <summary>
/// 服务单号 /// 服务单号
/// </summary> /// </summary>
[JsonProperty, Column(StringLength = 20)] [Column(StringLength = 20)]
public string ServiceId { get; set; } public string ServiceId { get; set; }
/// <summary> /// <summary>
/// 服务单租备注 /// 服务单租备注
/// </summary> /// </summary>
[JsonProperty, Column(StringLength = 100)] [Column(StringLength = 100)]
public string ServiceOrderRemark { get; set; } public string ServiceOrderRemark { get; set; }
/// <summary> /// <summary>
/// 服务单处理结果 /// 服务单处理结果
/// </summary> /// </summary>
[JsonProperty]
public int? ServiceResult { get; set; } public int? ServiceResult { get; set; }
[JsonProperty, Column(StringLength = 20)] [Column(StringLength = 20)]
public string ShopId { get; set; } public string ShopId { get; set; }
[JsonProperty, Column(StringLength = 50)] [Column(StringLength = 50)]
public string SkuId { get; set; } public string SkuId { get; set; }
/// <summary> /// <summary>
/// SKU销售件数 /// SKU销售件数
/// </summary> /// </summary>
[JsonProperty]
public int? SkuItemCount { get; set; } public int? SkuItemCount { get; set; }
/// <summary> /// <summary>
/// 服务单状态 /// 服务单状态
/// </summary> /// </summary>
[JsonProperty]
public int? Status { get; set; } public int? Status { get; set; }
/// <summary> /// <summary>
/// 变更时间 /// 变更时间
/// </summary> /// </summary>
[JsonProperty, Column(DbType = "datetime")] [Column(DbType = "datetime")]
public DateTime? StatusUpdateTime { get; set; } public DateTime? StatusUpdateTime { get; set; }
/// <summary> /// <summary>
/// 仓储费 /// 仓储费
/// </summary> /// </summary>
[JsonProperty, Column(DbType = "decimal(18,2)")] [Column(DbType = "decimal(18,2)")]
public decimal? StorageAmount { get; set; } = 0.00M; public decimal? StorageAmount { get; set; } = 0.00M;
/// <summary> /// <summary>
/// 服务单物流状态(0=待入库,1=已入库,2=派送中,3=运输中) /// 服务单物流状态(0=待入库,1=已入库,2=派送中,3=运输中)
/// </summary> /// </summary>
[JsonProperty]
public int? TransportDetails { get; set; } public int? TransportDetails { get; set; }
/// <summary> /// <summary>
/// 仓库组备注 /// 仓库组备注
/// </summary> /// </summary>
[JsonProperty, Column(StringLength = 100)] [Column(StringLength = 100)]
public string WareHouseGrounpRemark { get; set; } public string WareHouseGrounpRemark { get; set; }
/// <summary> /// <summary>
/// 退货运单号 /// 退货运单号
/// </summary> /// </summary>
[JsonProperty, Column(StringLength = 100)] [Column(StringLength = 100)]
public string WaybillNo { get; set; } public string WaybillNo { get; set; }
} }

14
BBWY.Server.Model/Dto/Request/Sync/QueryServiceOrderDetailRequest.cs

@ -0,0 +1,14 @@
namespace BBWY.Server.Model.Dto
{
public class QueryServiceOrderDetailRequest : PlatformRequest
{
public QueryServiceOrderDetailRequest()
{
}
public string ServiceId { get; set; }
public string OrderId { get; set; }
public string VenderId { get; set; }
}
}

41
BBWY.Test/Program.cs

@ -37,13 +37,13 @@ namespace BBWY.Test
var appSecret = "8a42bc2301e8439b896e99f5475e0a9b"; var appSecret = "8a42bc2301e8439b896e99f5475e0a9b";
////0e61c4a8ec3e4df4b5836e10884db9220yth 齐盛 ////0e61c4a8ec3e4df4b5836e10884db9220yth 齐盛
//var token = "2ace3023200c4ea9aa682bbf8bffee18jztm"; //布莱特玩具 var token = "2ace3023200c4ea9aa682bbf8bffee18jztm"; //布莱特玩具
//var token = "01f5be2cb4d741dda66bce2356941597mdfm"; //布莱特玩具 token2 //var token = "01f5be2cb4d741dda66bce2356941597mdfm"; //布莱特玩具 token2
//var token = "01dc6f6e7fc34dcd99090d690312556cmdfk"; //齐盛 //var token = "01dc6f6e7fc34dcd99090d690312556cmdfk"; //齐盛
//var token = "9fffa982da23446fb035499ae5622f49odjk"; //腾奇 //var token = "9fffa982da23446fb035499ae5622f49odjk"; //腾奇
//var token = "c22ff4d37b6c4bbd82cd9e8d0dab42dbziyz"; //森王车品 //var token = "c22ff4d37b6c4bbd82cd9e8d0dab42dbziyz"; //森王车品
//var token = "44c19a1c1fbd4641957e6e8985ed1358jmtl"; //森王玩具 //var token = "44c19a1c1fbd4641957e6e8985ed1358jmtl"; //森王玩具
var token = "4a0ddc095e054c7aa90adcaccb14f83cwzgr"; //可比车品 //var token = "4a0ddc095e054c7aa90adcaccb14f83cwzgr"; //可比车品
//var dt1 = DateTime.Now; //var dt1 = DateTime.Now;
//List<string> list = new List<string>(); //List<string> list = new List<string>();
@ -60,19 +60,19 @@ namespace BBWY.Test
var jdClient = GetJdClient(appkey, appSecret); var jdClient = GetJdClient(appkey, appSecret);
var req = new AdsIbgUniversalJosServiceAdQueryRequest(); //var req = new AdsIbgUniversalJosServiceAdQueryRequest();
req.accessPin = "可比玩具"; //req.accessPin = "可比玩具";
req.businessType = "2"; //req.businessType = "2";
req.isDaily = "true"; //req.isDaily = "true";
req.clickOrOrderDay = "0"; //req.clickOrOrderDay = "0";
req.pageSize = "100"; //req.pageSize = "100";
req.page = "1"; //req.page = "1";
req.clickOrOrderCaliber = "1"; //req.clickOrOrderCaliber = "1";
req.startDay = "2023-03-10"; //req.startDay = "2023-03-10";
req.endDay = "2023-03-10"; //req.endDay = "2023-03-10";
req.giftFlag = "0"; //req.giftFlag = "0";
req.orderStatusCategory = "1"; //req.orderStatusCategory = "1";
var res = jdClient.Execute(req, token, DateTime.Now.ToLocalTime()); //var res = jdClient.Execute(req, token, DateTime.Now.ToLocalTime());
/* /*
@ -97,6 +97,17 @@ namespace BBWY.Test
var res = jdClient.Execute(req, token, DateTime.Now.ToLocalTime()); var res = jdClient.Execute(req, token, DateTime.Now.ToLocalTime());
*/ */
var req = new AscQueryViewRequest();
req.buId = "10598776";
req.operatePin = "开发测试";
req.operateNick = "开发测试";
req.serviceId = 1688379598;
req.orderId = 262837096353;
var res = jdClient.Execute(req, token, DateTime.Now.ToLocalTime());
//var res = jdClient.Execute(req, token, DateTime.Now.ToLocalTime()); //var res = jdClient.Execute(req, token, DateTime.Now.ToLocalTime());

13
JD.API/Controllers/PlatformSDKController.cs

@ -340,9 +340,20 @@ namespace JD.API.API.Controllers
/// <param name="request"></param> /// <param name="request"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public JArray GetServiceOrderList([FromBody]QueryServiceOrderRequest request) public JArray GetServiceOrderList([FromBody] QueryServiceOrderRequest request)
{ {
return platformSDKBusinessList.FirstOrDefault(p => p.Platform == request.Platform).GetServiceOrderList(request); return platformSDKBusinessList.FirstOrDefault(p => p.Platform == request.Platform).GetServiceOrderList(request);
} }
/// <summary>
/// 查询服务单详情
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
public JToken GetServiceOrderDetail(QueryServiceOrderDetailRequest request)
{
return platformSDKBusinessList.FirstOrDefault(p => p.Platform == request.Platform).GetServiceOrderDetail(request);
}
} }
} }

Loading…
Cancel
Save