public async Task <GetLogisticsForEditOutput> GetLogisticsForEdit(NullableIdDto <int> input) { GetLogisticsForEditOutput logisticsDto; if (input.Id.HasValue) { var logistics = await _logisticsManager.GetByIdAsync(input.Id.Value); logisticsDto = ObjectMapper.Map <GetLogisticsForEditOutput>(logistics); } else { logisticsDto = new GetLogisticsForEditOutput(); } return(logisticsDto); }
/// <summary> /// 回传物流信息 /// </summary> /// <param name="shipment"></param> /// <returns></returns> public async Task <bool> UploadOrderTrackingAsync(Shipment shipment) { if (!shipment.Order.AdvertAccountId.HasValue) { return(false); } if (!shipment.LogisticsId.HasValue) { return(false); } var account = await _advertAccountManager.GetByIdAsync(Convert.ToInt32(shipment.Order.AdvertAccountId.Value)); if (account == null) { return(false); } if (account.IsAuthExpires()) { await RefreshAccessTokenAsync(account); } var postUrl = OrderUpdateAddress() + GetRequestPara(account); if (shipment == null) { return(false); } using (var client = new HttpClient()) { var logistics = await _logisticsManager.GetByIdAsync(shipment.LogisticsId.Value); var content = new FormUrlEncodedContent(new Dictionary <string, string>() { { "account_id", account.ThirdpartyId }, { "ecommerce_order_id", shipment.OrderNumber }, { "delivery_tracking_number", shipment.LogisticsNumber }, { "express_company", GetFxShipEnum(logistics.Memo) }, { "ecommerce_order_status", "ORDER_DELIVERING" } }); var response = client.PostAsync(postUrl, content).Result; var responseString = response.Content.ReadAsStringAsync().Result; } return(true); }
/// <summary> /// 更新物流信息 /// </summary> /// <param name="trace"></param> /// <param name="shipment"></param> /// <returns></returns> public async Task UpdateShipmentTracesAsync(Shipment shipment, TraceResult trace) { var logistics = await _logisticsManager.GetByIdAsync(shipment.LogisticsId.Value); shipment.ShipmentDetail = JsonConvert.SerializeObject(trace); if (!trace.UpdateTime.IsNullOrEmpty()) { shipment.ReceivedOn = Convert.ToDateTime(trace.UpdateTime).LocalTimeConverUtcTime(_dateTimeHelper); } var shipmentStatus = GetShippingStatus(logistics, shipment.ShipmentDetail, trace.State); shipment.Order.ShippingStatus = shipmentStatus; shipment.Status = shipmentStatus; await _orderManager.UpdateAsync(shipment.Order); }