/// <summary> /// 快递100接口查询 /// </summary> /// <param name="num"> //查询的快递单号, 单号的最大长度是32个字符 必须</param> /// <param name="shipExpCo"> 快递公司名称</param> public static ResultDTO <OrderExpressRouteExtendDTO> GetExpressFromKD100DTO(string num, string shipExpCo) { ResultDTO <OrderExpressRouteExtendDTO> result = new ResultDTO <OrderExpressRouteExtendDTO>(); try { string expressJson = GetExpressFromKD100(num, shipExpCo); if (string.IsNullOrEmpty(expressJson)) { result.ResultCode = 1; result.Message = "暂无数据"; return(result); } else { OrderExpressRouteExtendDTO dTO = new OrderExpressRouteExtendDTO(); JObject jObject = JObject.Parse(expressJson); if (jObject["message"].ToString().ToLower().Equals("ok")) { List <ExpressTraceDTO> listDto = new List <ExpressTraceDTO>(); string data = jObject["data"].ToString(); JArray obArr = JArray.Parse(data); foreach (var item in obArr) { string time = item["time"].ToString(); string ftime = item["ftime"].ToString(); string context = item["context"].ToString(); listDto.Add(new ExpressTraceDTO { Id = Guid.NewGuid(), ExpRouteId = Guid.NewGuid(), AcceptStation = context, AcceptTime = DateTime.Parse(ftime) }); } dTO.Traces = listDto; } else { result.ResultCode = 1; result.Message = jObject["message"].ToString(); } result.Data = dTO; return(result); } } catch (Exception ex) { LogHelper.Error("GetExpressFromKD100DTO 错误--->快递单号【" + num + "】快递公司名称-->【" + shipExpCo + "】", ex); } return(result); }
/// <summary> /// 按快递单号获取快递路由信息。 /// </summary> /// <returns></returns> public ResultDTO <OrderExpressRouteExtendDTO> GetExpressRouteByExpNoExt(Jinher.AMP.BTP.Deploy.OrderExpressRouteDTO express) { ResultDTO <OrderExpressRouteExtendDTO> result = new ResultDTO <OrderExpressRouteExtendDTO>(); try { if (express == null) { result.ResultCode = 1; result.Message = "参数错误,参数不能为空!"; return(result); } else if (string.IsNullOrWhiteSpace(express.ShipExpCo)) { result.ResultCode = 2; result.Message = "参数错误,物流公司名称不能为空!"; return(result); } else if (string.IsNullOrWhiteSpace(express.ExpOrderNo)) { result.ResultCode = 3; result.Message = "参数错误,运单号不能为空!"; return(result); } var cname = express.ShipExpCo.Replace("快递", "").Replace("速递", "").Replace("物流", "").Replace("配送", "").Replace("货运", "").Replace("快运", "").Replace("速运", "").ToUpper(); var ocInfo = ExpressCode.AllExpCodes.Where(ec => ec.ExpCompanyName.ToUpper().Contains(cname)); if (!ocInfo.Any()) { result.ResultCode = 4; result.Message = "暂不支持该物流公司的快递单号查询!"; return(result); } express.ShipperCode = ocInfo.First().ExpCode; var oerQuery = (from oer in OrderExpressRoute.ObjectSet() where oer.ShipperCode == express.ShipperCode && oer.ExpOrderNo == express.ExpOrderNo select oer).FirstOrDefault(); if (oerQuery == null) { return(result); } OrderExpressRouteExtendDTO oerDto = new OrderExpressRouteExtendDTO(); oerDto.FillWith(oerQuery); var etQuery = (from et in ExpressTrace.ObjectSet() where et.ExpRouteId == oerQuery.Id orderby et.AcceptTime descending select et).ToList(); if (etQuery.Any()) { List <ExpressTraceDTO> oerList = etQuery.ConvertAll <ExpressTraceDTO>(exp => exp.ToEntityData()); oerDto.Traces = oerList; } result.Data = oerDto; } catch (Exception ex) { result.ResultCode = -1; result.Message = string.Format("按快递单号获取快递路由信息异常,异常信息:{0}", ex); return(result); } return(result); }