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); }