Exemplo n.º 1
0
 /// <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));
     }
 }
Exemplo n.º 2
0
        /// <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);
        }