/// <summary> /// 推送订单 /// </summary> /// <param name="request">订单参数</param> /// <returns></returns> /// <remarks>2016-09-22 周 创建</remarks> private ActionResponse CreatedOrder(CreatedOrderApiRequest request) { WebUtils.HttpPacket packet = WebUtils.DoPost(ApiConfig.ApiUrl + "Order/CreatedOrder?" + CommonUtils.GetUrlParameter(), JsonConvert.SerializeObject(request), "application/json"); try { ApiResponse apiResponse = JsonConvert.DeserializeObject <ApiResponse>(packet.ResponseBody); if (apiResponse.State) { return(ActionResponse.CreateSuccessResponse(apiResponse.Content)); } return(ActionResponse.CreateFailResponse(apiResponse.Content.ToString())); } catch (Exception) { return(ActionResponse.CreateFailResponse(packet.ResponseBody)); } }
/// <summary> /// 添加交易订单 /// </summary> /// <param name="orderId">销售订单系统编号</param> /// <returns></returns> /// <remarks></remarks> /// <remarks>2016-3-8 杨浩 创建</remarks> /// <remarks>2016-09-22 周 重构</remarks> public override Result AddOrderTrade(int orderId) { var result = new Result() { Status = false, StatusCode = 0, Message = "向" + this.Code + "物流推送订单失败" }; #region try { var order = Hyt.BLL.Order.SoOrderBo.Instance.GetEntity(orderId); if (order == null) { result.Status = false; result.Message = string.Format("订单号{0}不存在!", orderId); result.StatusCode = -100; } order.ReceiveAddress = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo); order.OrderItemList = DataAccess.Order.ISoOrderItemDao.Instance.GetOrderItemsByOrderSysNo(order.SysNo); var filter = new ParaOnlinePaymentFilter(); filter.OrderSysNo = orderId; var onlinePayment = BLL.Finance.FinanceBo.Instance.GetOnlinePayments(filter).Rows.Where(o => o.Status == 1).FirstOrDefault(); if (onlinePayment == null) { result.Message = "订单不存在在线支付记录"; return(result); } // 收货人 区 市 省 BsArea receiverDistrict = BLL.Basic.BasicAreaBo.Instance.GetArea(order.ReceiveAddress.AreaSysNo); BsArea receiverCity = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverDistrict.ParentSysNo); BsArea receiverProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverCity.ParentSysNo); // 发货人 市 CBWhWarehouse warehouse = BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(order.DefaultWarehouseSysNo); BsArea shipperCity = BLL.Basic.BasicAreaBo.Instance.GetArea(warehouse.CitySysNo); DsDealer dealer = BLL.Distribution.DsDealerBo.Instance.GetDsDealer(order.DealerSysNo); LgDeliveryType deliveryType = BLL.Logistics.DeliveryTypeBo.Instance.GetDeliveryType(order.DeliveryTypeSysNo); var newOrder = new CreatedOrderApiRequest(); newOrder.OutOrderNo = order.SysNo.ToString(); newOrder.DeliveryCode = "3";//暂时默认1(后期此参数作废) newOrder.ReceiverName = TConvert.ToString(order.ReceiveAddress.Name); newOrder.ReceiverMobile = !string.IsNullOrWhiteSpace(order.ReceiveAddress.MobilePhoneNumber) ? order.ReceiveAddress.MobilePhoneNumber : order.ReceiveAddress.PhoneNumber; newOrder.ReceiverProvince = TConvert.ToString(receiverProvince.AreaName).Trim(); newOrder.ReceiverCity = TConvert.ToString(receiverCity.AreaName).Trim(); newOrder.ReceiverDistrict = TConvert.ToString(receiverDistrict.AreaName).Trim(); newOrder.ReceiverAddress = TConvert.ToString(order.ReceiveAddress.StreetAddress).Trim(); newOrder.ReceiverIdCard = TConvert.ToString(order.ReceiveAddress.IDCardNo); newOrder.ReceiverFrontIdCardImageUrl = HttpContext.Current.Request.Url.Host + TConvert.ToString(order.ReceiveAddress.IDCardImgs); newOrder.ReceiverOppositeIdCardImageUrl = HttpContext.Current.Request.Url.Host + TConvert.ToString(order.ReceiveAddress.IDCardImgs); newOrder.UserRemark = order.Remarks; newOrder.ThirdPlatformPaymentName = Enum.GetName(typeof(Hyt.Model.CommonEnum.PayCode), order.PayTypeSysNo); var payment = Hyt.BLL.Finance.FinanceBo.Instance.GetOnlinePaymentBySourceSysNo(orderId); string PaymentNumber = ""; if (payment != null) { PaymentNumber = payment.VoucherNo; } newOrder.ThirdPlatformPaymentNumber = PaymentNumber; newOrder.Items = new List <CreatedOrderItemRequest>(); CreatedOrderItemRequest orderItem = new CreatedOrderItemRequest(); foreach (var item in order.OrderItemList) { var product = BLL.Product.PdProductBo.Instance.GetProductNoCache(item.ProductSysNo); orderItem.SkuId = product.ErpCode; orderItem.Quantity = item.Quantity; newOrder.Items.Add(orderItem); } var json = Newtonsoft.Json.JsonConvert.SerializeObject(newOrder); //推送订单 var _result = CreatedOrder(newOrder); if (_result.ResultCode == 200) { var soOrderSyncLogisticsLog = new SoOrderSyncLogisticsLog(); soOrderSyncLogisticsLog.OrderSysNo = orderId; soOrderSyncLogisticsLog.Code = (int)this.Code; soOrderSyncLogisticsLog.LastUpdateDate = (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue; soOrderSyncLogisticsLog.StatusCode = ""; soOrderSyncLogisticsLog.StatusMsg = ""; soOrderSyncLogisticsLog.Packets = json; soOrderSyncLogisticsLog.ReceiptContent = _result.Tag.ToString(); soOrderSyncLogisticsLog.LastUpdateBy = 0; soOrderSyncLogisticsLog.LogisticsOrderId = ""; soOrderSyncLogisticsLog.CreateDate = DateTime.Now; soOrderSyncLogisticsLog.CreatedBy = BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base.SysNo; SoOrderSyncLogisticsLogBo.Instance.Insert(soOrderSyncLogisticsLog); BLL.Order.SoOrderBo.Instance.UpdateOrderApiStatus(1, 3, orderId); result.Message = "向" + this.Code + "物流推送订单成功:回执单号:" + _result.Tag.ToString(); } else { result.Message = _result.Message; } } catch (Exception ex) { result.Message = "向" + this.Code + "物流推送订单报错:" + ex.StackTrace; return(result); } #endregion return(result); }