public static decimal GetDeliveryFee(List <CartInfo> cartInfoList, AddressInfo addressInfo, DeliveryInfo deliveryInfo) { if (cartInfoList == null || deliveryInfo == null) { return(0); } var startStandards = deliveryInfo.StartStandards; var startFees = deliveryInfo.StartFees; var addStandards = deliveryInfo.AddStandards; var addFees = deliveryInfo.AddFees; if (addressInfo != null) { var areaInfoList = AreaDao.GetAreaInfoList(deliveryInfo.Id); foreach (var areaInfo in areaInfoList) { var cities = areaInfo.Cities.Split(',').ToList(); foreach (var city in cities) { if (!addressInfo.Location.Contains(city)) { continue; } startStandards = areaInfo.StartStandards; startFees = areaInfo.StartFees; addStandards = areaInfo.AddStandards; addFees = areaInfo.AddFees; } } } var count = 0; foreach (var cartInfo in cartInfoList) { if (cartInfo.IsDelivery) { count += cartInfo.Count; } } var deliveryFee = startFees; if (count > startStandards) { var add = count - startStandards; if (addStandards > 0 && addFees > 0) { deliveryFee += Math.Floor(Convert.ToDecimal(add / addStandards)) * addFees; } } return(deliveryFee); }
private void RptContents_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType != ListItemType.Item && e.Item.ItemType != ListItemType.AlternatingItem) { return; } var deliveryInfo = (DeliveryInfo)e.Item.DataItem; var ltlDeliveryName = (Literal)e.Item.FindControl("ltlDeliveryName"); var ltlDeliveryType = (Literal)e.Item.FindControl("ltlDeliveryType"); var ltlStartStandards = (Literal)e.Item.FindControl("ltlStartStandards"); var ltlStartFees = (Literal)e.Item.FindControl("ltlStartFees"); var ltlAddStandards = (Literal)e.Item.FindControl("ltlAddStandards"); var ltlAddFees = (Literal)e.Item.FindControl("ltlAddFees"); var rptAreas = (Repeater)e.Item.FindControl("rptAreas"); var ltlActions = (Literal)e.Item.FindControl("ltlActions"); ltlDeliveryName.Text = deliveryInfo.DeliveryName; ltlDeliveryType.Text = deliveryInfo.DeliveryType; ltlStartStandards.Text = deliveryInfo.StartStandards.ToString(); ltlStartFees.Text = deliveryInfo.StartFees.ToString("N2"); ltlAddStandards.Text = deliveryInfo.AddStandards.ToString(); ltlAddFees.Text = deliveryInfo.AddFees.ToString("N2"); rptAreas.DataSource = AreaDao.GetAreaInfoList(deliveryInfo.Id); rptAreas.ItemDataBound += RptAreas_ItemDataBound; rptAreas.DataBind(); ltlActions.Text = $@"<a class=""m-r-10"" href=""{PageDeliveryAdd.GetRedirectUrl(_siteId, deliveryInfo.Id)}"">编 辑</a> <a class=""m-r-10"" href=""{GetRedirectUrl(_siteId)}&up={true}&deliveryId={deliveryInfo.Id}"">上 升</a> <a class=""m-r-10"" href=""{GetRedirectUrl(_siteId)}&down={true}&deliveryId={deliveryInfo.Id}"">下 降</a> <a class=""m-r-10"" href=""javascript:;"" onclick=""{Utils.SwalWarning("删除运费", $"此操作将删除运费“{deliveryInfo.DeliveryName}”,确定吗?", "取 消", "删 除", $"location.href='{GetRedirectUrl(_siteId)}&delete={true}&deliveryId={deliveryInfo.Id}'")};return false;"">删 除</a>"; }
public void Page_Load(object sender, EventArgs e) { var request = SiteServer.Plugin.Context.GetCurrentRequest(); _siteId = request.GetQueryInt("siteId"); _deliveryId = request.GetQueryInt("deliveryId"); _areaId = request.GetQueryInt("areaId"); if (!request.AdminPermissions.HasSitePermissions(_siteId, Main.PluginId)) { Response.Write("<h1>未授权访问</h1>"); Response.End(); return; } if (!string.IsNullOrEmpty(Request.QueryString["delete"]) && !string.IsNullOrEmpty(Request.QueryString["idCollection"])) { var array = Request.QueryString["idCollection"].Split(','); var list = array.Select(s => Utils.ParseInt(s)).ToList(); OrderDao.Delete(list); LtlMessage.Text = Utils.GetMessageHtml("删除成功!", true); } if (!string.IsNullOrEmpty(Request.QueryString["addArea"])) { var areaInfo = new AreaInfo { DeliveryId = _deliveryId }; areaInfo.Id = AreaDao.Insert(areaInfo); Response.Redirect($@"{GetRedirectUrl(_siteId, _deliveryId)}"); return; } if (!string.IsNullOrEmpty(Request.QueryString["removeArea"])) { AreaDao.Delete(_areaId); Response.Redirect($@"{GetRedirectUrl(_siteId, _deliveryId)}"); return; } if (!string.IsNullOrEmpty(Request.QueryString["saveCities"])) { var areaInfo = AreaDao.GetAreaInfo(_areaId); areaInfo.Cities = Request.QueryString["selectedCities"]; AreaDao.Update(areaInfo); Response.Redirect($@"{GetRedirectUrl(_siteId, _deliveryId)}"); return; } if (IsPostBack) { return; } var deliveryInfo = DeliveryDao.GetDeliveryInfo(_deliveryId); TbDeliveryName.Text = deliveryInfo.DeliveryName; Utils.SelectListItems(DdlDeliveryType, deliveryInfo.DeliveryType); TbStartStandards.Text = deliveryInfo.StartStandards.ToString(); TbStartFees.Text = deliveryInfo.StartFees.ToString("N2"); TbAddStandards.Text = deliveryInfo.AddStandards.ToString(); TbAddFees.Text = deliveryInfo.AddFees.ToString("N2"); RptAreas.DataSource = AreaDao.GetAreaInfoList(_deliveryId); RptAreas.ItemDataBound += RptAreas_ItemDataBound; RptAreas.DataBind(); BtnAreaAdd.Attributes.Add("onclick", $@"location.href = '{GetRedirectUrl(_siteId, _deliveryId)}&addArea={true}';return false;"); if (!string.IsNullOrEmpty(Request.QueryString["areas"]) && !string.IsNullOrEmpty(Request.QueryString["areaId"])) { PhModalAreas.Visible = true; BtnAreas.Attributes.Add("onclick", $"location.href='{GetRedirectUrl(_siteId, _deliveryId)}&saveCities={true}&areaId={_areaId}&selectedCities=' + selectedCities.join(',');return false;"); } }