/// <summary> /// 卖家评价 (2019.03.31 新作用) /// </summary> /// <param name="orderRate"></param> public ServiceResult Rate(OrderRateInfo orderRate) { var order = Resolve <IOrderService>().GetSingle(r => r.Id == orderRate.OrderId); if (orderRate.Intro.IsNullOrEmpty()) { return(ServiceResult.Failure("详情不能为空")); } if (order == null) { return(ServiceResult.Failure("订单不存在")); } order.OrderExtension.OrderRate.SellerRate = orderRate; order.Extension = ObjectExtension.ToJson(order.OrderExtension); var result = Resolve <IOrderService>().Update(order); if (result) { return(ServiceResult.Success); } return(ServiceResult.Failure("失败")); }
public static CallResult <List <ShippingMethodViewModel> > GetShippingOptionsWithRate(IUnitOfWork db, ILogService log, ITime time, IShipmentApi rateProvider, IShippingService shippingService, AddressDTO fromAddress, AddressDTO toAddress, DateTime shipDate, int weightLb, decimal weightOz, decimal insuredValue, OrderRateInfo orderInfo) { var result = new CallResult <List <ShippingMethodViewModel> >(); var pickupAddress = fromAddress; var rateResult = rateProvider.GetAllRate( fromAddress, pickupAddress, toAddress, shipDate, (double)(weightLb * 16 + weightOz), null, 0, false, orderInfo, RetryModeType.Fast); if (rateResult.Result != GetRateResultType.Success) { result.Status = CallStatus.Fail; result.Message = rateResult.Message; return(result); } var methodList = GetShippingMethods(db, fromAddress.FinalCountry, toAddress.FinalCountry, weightLb, weightOz, rateProvider.Type); result.Data = new List <ShippingMethodViewModel>(); result.Status = CallStatus.Success; foreach (var method in methodList) { var rate = rateResult.Rates.FirstOrDefault(r => r.ServiceIdentifier == method.ServiceIdentifier); if (rate != null) { //var deliveryDays = time.GetBizDaysCount(rate.ShipDate, rate.DeliveryDate); var deliveryDaysInfo = rate.DeliveryDaysInfo; string providerPrefix = ""; switch ((ShipmentProviderType)method.ShipmentProviderType) { case ShipmentProviderType.Amazon: providerPrefix = "AMZ "; break; case ShipmentProviderType.Stamps: providerPrefix = ""; break; case ShipmentProviderType.Dhl: providerPrefix = ""; break; case ShipmentProviderType.DhlECom: providerPrefix = ""; break; } var adjustedAmount = shippingService.ApplyCharges(method.Id, rate.Amount); result.Data.Add(new ShippingMethodViewModel() { Id = method.Id, ProviderPrefix = providerPrefix, Carrier = method.CarrierName, Name = ShippingUtils.PrepareMethodNameToDisplay(method.Name, deliveryDaysInfo), Rate = adjustedAmount, }); } } return(result); }
public ApiResult Rate([FromBody] OrderRateInfo modelIn) { var rs = Ioc.Resolve <IOrderActionService>().Rate(modelIn); return(ToResult(rs)); }