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"];
}
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();
}
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
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 exceptServiceIdList = serviceIdList.Except(dbServiceIdList);
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)
{
@ -112,6 +122,16 @@ namespace BBWY.Server.Business.Sync
var dbOsku = dbOrderSkuList.FirstOrDefault(osku => osku.OrderId == serviceOrderId && osku.SkuId == skuId);
if (dbOsku == null)
continue;
var isNeedSubscribeKuaiDi100 = false;
if (dbOsku.StorageType == Enums.StorageType.)
isNeedSubscribeKuaiDi100 = true;
else
{
//检查退货城市是否为泉州
}
dbServiceOrder = new ServiceOrder()
{
Id = idGenerator.NewLong(),
@ -125,6 +145,7 @@ namespace BBWY.Server.Business.Sync
SkuId = skuId,
StatusUpdateTime = serviceOrderJToken.Value<DateTime>("updateTime"),
IsSubscribeKuaiDi100 = false,
IsNeedSubscribeKuaiDi100 = isNeedSubscribeKuaiDi100,
WaybillNo = string.Empty,
ExpressName = string.Empty,
ApplyTime = serviceOrderJToken.Value<DateTime>("applyTime")

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

@ -12,271 +12,276 @@ namespace BBWY.Server.Model.Db {
/// <summary>
/// 服务单表(new)
/// </summary>
[JsonObject(MemberSerialization.OptIn), Table(Name = "serviceorder", DisableSyncStructure = true)]
[ Table(Name = "serviceorder", DisableSyncStructure = true)]
public partial class ServiceOrder {
[JsonProperty, Column(IsPrimary = true, IsIdentity = true)]
[Column(IsPrimary = true, IsIdentity = true)]
public long Id { get; set; }
/// <summary>
/// 售后成本(不含退款采购成本)
/// </summary>
[JsonProperty, Column(DbType = "decimal(18,2)")]
[Column(DbType = "decimal(18,2)")]
public decimal? AfterTotalCost { get; set; } = 0.00M;
/// <summary>
/// 申请时间
/// </summary>
[JsonProperty, Column(DbType = "datetime")]
[Column(DbType = "datetime")]
public DateTime? ApplyTime { get; set; }
/// <summary>
/// 耗材费
/// </summary>
[JsonProperty, Column(DbType = "decimal(18,2)")]
[Column(DbType = "decimal(18,2)")]
public decimal? ConsumableAmount { get; set; } = 0.00M;
[JsonProperty, Column(DbType = "datetime")]
[Column(DbType = "datetime")]
public DateTime? CreateTime { get; set; }
/// <summary>
/// 发货快递费
/// </summary>
[JsonProperty, Column(DbType = "decimal(18,2)")]
[Column(DbType = "decimal(18,2)")]
public decimal? DeliveryExpressFreight { get; set; } = 0.00M;
/// <summary>
/// 快递公司名称
/// </summary>
[JsonProperty, Column(StringLength = 100)]
[Column(StringLength = 100)]
public string ExpressName { get; set; }
/// <summary>
/// 头程费
/// </summary>
[JsonProperty, Column(DbType = "decimal(18,2)")]
[Column(DbType = "decimal(18,2)")]
public decimal? FirstFreight { get; set; } = 0.00M;
/// <summary>
/// 退货拍摄图(名称)
/// </summary>
[JsonProperty, Column(StringLength = 1000)]
[Column(StringLength = 1000)]
public string ImageName { get; set; }
/// <summary>
/// 入仓操作费
/// </summary>
[JsonProperty, Column(DbType = "decimal(18,2)")]
[Column(DbType = "decimal(18,2)")]
public decimal? InStorageAmount { get; set; } = 0.00M;
/// <summary>
/// 是否订阅快递100
/// </summary>
[JsonProperty]
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; }
/// <summary>
/// 出仓操作费
/// </summary>
[JsonProperty, Column(DbType = "decimal(18,2)")]
[Column(DbType = "decimal(18,2)")]
public decimal? OutStorageAmount { get; set; } = 0.00M;
/// <summary>
/// 产品外观 (严重损=0 轻微损=1 新=2)
/// </summary>
[JsonProperty]
public int? ProductAppearance { get; set; }
/// <summary>
/// 产品功能 (坏=0 好=1)
/// </summary>
[JsonProperty]
public int? ProductFunction { get; set; }
/// <summary>
/// 商品健康状态 (残次品=0 良品=1)
/// </summary>
[JsonProperty]
public int? ProductHealth { get; set; }
/// <summary>
/// 商品情况(定义待变更);名称待定,以前的商品情况,叶总需要更换定义
/// </summary>
[JsonProperty]
public int? ProductHealth2 { get; set; }
[JsonProperty, Column(StringLength = 50)]
[Column(StringLength = 50)]
public string ProductId { get; set; }
/// <summary>
/// 产品包装(无=0 非新=1 新=2)
/// </summary>
[JsonProperty]
public int? ProductPackage { get; set; }
/// <summary>
/// 商品处理方式;弃用
/// </summary>
[JsonProperty]
public int? ProductResult { get; set; }
/// <summary>
/// 采购方式
/// </summary>
[JsonProperty]
public int? PurchaseMethod { get; set; }
/// <summary>
/// 采购单号
/// </summary>
[JsonProperty, Column(StringLength = 100)]
[Column(StringLength = 100)]
public string PurchaseOrderId { get; set; }
/// <summary>
/// 采购单主键
/// </summary>
[JsonProperty]
public long? PurchaseOrderPKId { get; set; }
/// <summary>
/// 采购平台
/// </summary>
[JsonProperty]
public int? PurchasePlatform { get; set; }
/// <summary>
/// 退款支付宝订单号
/// </summary>
[JsonProperty, Column(StringLength = 100)]
[Column(StringLength = 100)]
public string RefundAlipayOrderNo { get; set; }
/// <summary>
/// 退款金额
/// </summary>
[JsonProperty, Column(DbType = "decimal(20,2)")]
[Column(DbType = "decimal(20,2)")]
public decimal? RefundAmount { get; set; } = 0.00M;
/// <summary>
/// 退货入仓操作费
/// </summary>
[JsonProperty, Column(DbType = "decimal(18,2)")]
[Column(DbType = "decimal(18,2)")]
public decimal? RefundInStorageAmount { get; set; } = 0.00M;
/// <summary>
/// 退款商户订单号
/// </summary>
[JsonProperty, Column(StringLength = 100)]
[Column(StringLength = 100)]
public string RefundMerchantOrderNo { get; set; }
/// <summary>
/// 退款采购成本
/// </summary>
[JsonProperty, Column(DbType = "decimal(18,2)")]
[Column(DbType = "decimal(18,2)")]
public decimal? RefundPurchaseAmount { get; set; } = 0.00M;
/// <summary>
/// 退款时间
/// </summary>
[JsonProperty, Column(DbType = "datetime")]
[Column(DbType = "datetime")]
public DateTime? RefundTime { get; set; }
/// <summary>
/// 售后补发成本
/// </summary>
[JsonProperty, Column(DbType = "decimal(20,2)")]
[Column(DbType = "decimal(20,2)")]
public decimal? ReissueAfterSaleAmount { get; set; } = 0.00M;
/// <summary>
/// 补发快递费
/// </summary>
[JsonProperty, Column(DbType = "decimal(20,2)")]
[Column(DbType = "decimal(20,2)")]
public decimal? ReissueFreight { get; set; } = 0.00M;
/// <summary>
/// 补发货款成本
/// </summary>
[JsonProperty, Column(DbType = "decimal(20,2)")]
[Column(DbType = "decimal(20,2)")]
public decimal? ReissueProductAmount { get; set; } = 0.00M;
/// <summary>
/// 退货去向(退货仓=0,采购商=1,原返=2,无退货=3)
/// </summary>
[JsonProperty]
public int? ReturnDirection { get; set; }
/// <summary>
/// SD退货运费
/// </summary>
[JsonProperty, Column(DbType = "decimal(18,2)")]
[Column(DbType = "decimal(18,2)")]
public decimal? SDRefundFreight { get; set; } = 0.00M;
/// <summary>
/// 服务单号
/// </summary>
[JsonProperty, Column(StringLength = 20)]
[Column(StringLength = 20)]
public string ServiceId { get; set; }
/// <summary>
/// 服务单租备注
/// </summary>
[JsonProperty, Column(StringLength = 100)]
[Column(StringLength = 100)]
public string ServiceOrderRemark { get; set; }
/// <summary>
/// 服务单处理结果
/// </summary>
[JsonProperty]
public int? ServiceResult { get; set; }
[JsonProperty, Column(StringLength = 20)]
[Column(StringLength = 20)]
public string ShopId { get; set; }
[JsonProperty, Column(StringLength = 50)]
[Column(StringLength = 50)]
public string SkuId { get; set; }
/// <summary>
/// SKU销售件数
/// </summary>
[JsonProperty]
public int? SkuItemCount { get; set; }
/// <summary>
/// 服务单状态
/// </summary>
[JsonProperty]
public int? Status { get; set; }
/// <summary>
/// 变更时间
/// </summary>
[JsonProperty, Column(DbType = "datetime")]
[Column(DbType = "datetime")]
public DateTime? StatusUpdateTime { get; set; }
/// <summary>
/// 仓储费
/// </summary>
[JsonProperty, Column(DbType = "decimal(18,2)")]
[Column(DbType = "decimal(18,2)")]
public decimal? StorageAmount { get; set; } = 0.00M;
/// <summary>
/// 服务单物流状态(0=待入库,1=已入库,2=派送中,3=运输中)
/// </summary>
[JsonProperty]
public int? TransportDetails { get; set; }
/// <summary>
/// 仓库组备注
/// </summary>
[JsonProperty, Column(StringLength = 100)]
[Column(StringLength = 100)]
public string WareHouseGrounpRemark { get; set; }
/// <summary>
/// 退货运单号
/// </summary>
[JsonProperty, Column(StringLength = 100)]
[Column(StringLength = 100)]
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";
////0e61c4a8ec3e4df4b5836e10884db9220yth 齐盛
//var token = "2ace3023200c4ea9aa682bbf8bffee18jztm"; //布莱特玩具
var token = "2ace3023200c4ea9aa682bbf8bffee18jztm"; //布莱特玩具
//var token = "01f5be2cb4d741dda66bce2356941597mdfm"; //布莱特玩具 token2
//var token = "01dc6f6e7fc34dcd99090d690312556cmdfk"; //齐盛
//var token = "9fffa982da23446fb035499ae5622f49odjk"; //腾奇
//var token = "c22ff4d37b6c4bbd82cd9e8d0dab42dbziyz"; //森王车品
//var token = "44c19a1c1fbd4641957e6e8985ed1358jmtl"; //森王玩具
var token = "4a0ddc095e054c7aa90adcaccb14f83cwzgr"; //可比车品
//var token = "4a0ddc095e054c7aa90adcaccb14f83cwzgr"; //可比车品
//var dt1 = DateTime.Now;
//List<string> list = new List<string>();
@ -60,19 +60,19 @@ namespace BBWY.Test
var jdClient = GetJdClient(appkey, appSecret);
var req = new AdsIbgUniversalJosServiceAdQueryRequest();
req.accessPin = "可比玩具";
req.businessType = "2";
req.isDaily = "true";
req.clickOrOrderDay = "0";
req.pageSize = "100";
req.page = "1";
req.clickOrOrderCaliber = "1";
req.startDay = "2023-03-10";
req.endDay = "2023-03-10";
req.giftFlag = "0";
req.orderStatusCategory = "1";
var res = jdClient.Execute(req, token, DateTime.Now.ToLocalTime());
//var req = new AdsIbgUniversalJosServiceAdQueryRequest();
//req.accessPin = "可比玩具";
//req.businessType = "2";
//req.isDaily = "true";
//req.clickOrOrderDay = "0";
//req.pageSize = "100";
//req.page = "1";
//req.clickOrOrderCaliber = "1";
//req.startDay = "2023-03-10";
//req.endDay = "2023-03-10";
//req.giftFlag = "0";
//req.orderStatusCategory = "1";
//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 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());

13
JD.API/Controllers/PlatformSDKController.cs

@ -340,9 +340,20 @@ namespace JD.API.API.Controllers
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
public JArray GetServiceOrderList([FromBody]QueryServiceOrderRequest request)
public JArray GetServiceOrderList([FromBody] QueryServiceOrderRequest 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