public IActionResult SandChangeOrder(long orderId, string logisticsCode, string waybillNumber)
        {
            OrderChangeStatus changeStatus = OrderChangeStatus.UnknownFailure;

            orderInfoService.SandOrder(orderId, UserContext.CurrentUser.UserId, out changeStatus, logisticsCode, waybillNumber);

            StatusMessageData statusMessageData = null;

            switch (changeStatus)
            {
            case OrderChangeStatus.UnknownFailure:
                statusMessageData = new StatusMessageData(StatusMessageType.Error, "对不起,发货时产生了一个未知错误");
                break;

            case OrderChangeStatus.StatusException:
                statusMessageData = new StatusMessageData(StatusMessageType.Error, "对不起,当前订单状态与该业务不符");
                break;

            case OrderChangeStatus.OperationNULL:
                statusMessageData = new StatusMessageData(StatusMessageType.Error, "对不起,未能获取发货操作员信息,请重新登录再尝试");
                break;

            case OrderChangeStatus.LogisticsCodeOrWaybillNumberNULL:
                statusMessageData = new StatusMessageData(StatusMessageType.Error, "对不起,请确保运单号和快递公司都填写正确");
                break;

            default:
                break;
            }

            return(View());
        }
        /// <summary>
        /// 发货订单
        /// </summary>
        /// <param name="orderId"></param>
        /// <param name="logisticsCode"></param>
        /// <param name="waybillNumber"></param>
        /// <returns></returns>
        public bool SandOrder(long orderId, long userId, out OrderChangeStatus changeStauts, string logisticsCode = "", string waybillNumber = "")
        {
            changeStauts = OrderChangeStatus.Updated;
            if (orderId <= 0 || userId <= 0)
            {
                changeStauts = OrderChangeStatus.UnknownFailure;
                return(false);
            }
            OrderInfo entity = orderInfoRepository.GetOrderInfoByOrderid(orderId);

            if (entity == null)
            {
                changeStauts = OrderChangeStatus.UnknownFailure;
                return(false);
            }

            User userEntity = userRepository.GetUser(userId);

            if (userEntity == null)
            {
                changeStauts = OrderChangeStatus.UnknownFailure;
                return(false);
            }

            if (string.IsNullOrWhiteSpace(logisticsCode) || string.IsNullOrWhiteSpace(waybillNumber))
            {
                changeStauts = OrderChangeStatus.LogisticsCodeOrWaybillNumberNULL;
                return(false);
            }

            OrderModifyStatus currentStatus = (OrderModifyStatus)Enum.Parse(typeof(OrderModifyStatus), entity.Status.ToString());

            if (currentStatus != OrderModifyStatus.Send)
            {
                changeStauts = OrderChangeStatus.StatusException;
                return(false);
            }

            entity.LogisticsCode = logisticsCode;
            entity.WaybillNumber = waybillNumber;
            entity.Status        = (int)OrderModifyStatus.Complete;
            entity.LogisticsType = (int)OrderLogisticsMode.ExpressSend;
            entity.SendDate      = DateTime.Now;


            var result = HandleOrder(entity, currentStatus, userEntity);

            return(result != null ? true : false);
        }