Beispiel #1
0
        public static object ApiPaySaveAddress(IRequest context)
        {
            var siteId      = context.GetPostInt("siteId");
            var sessionId   = context.GetPostString("sessionId");
            var deliveryId  = context.GetPostInt("deliveryId");
            var addressInfo = context.GetPostObject <AddressInfo>("addressInfo");
            var isEdit      = context.GetPostBool("isEdit");

            addressInfo.UserName  = context.UserName;
            addressInfo.SessionId = sessionId;

            if (isEdit)
            {
                AddressDao.Update(addressInfo);
            }
            else
            {
                addressInfo.Id = AddressDao.Insert(addressInfo);
            }

            AddressDao.SetDefault(context.UserName, sessionId, addressInfo.Id);

            var cartInfoList = CartDao.GetCartInfoList(siteId, context.UserName, sessionId);
            var deliveryInfo = DeliveryDao.GetDeliveryInfo(deliveryId);
            var deliveryFee  = Utils.GetDeliveryFee(cartInfoList, addressInfo, deliveryInfo);

            return(new
            {
                addressInfo,
                deliveryFee
            });
        }
Beispiel #2
0
        public static object ApiPayGet(IRequest context)
        {
            var siteId    = context.GetPostInt("siteId");
            var sessionId = context.GetPostString("sessionId");

            if (context.IsUserLoggin)
            {
                CartDao.UpdateUserName(siteId, sessionId, context.UserName);
            }

            var addressInfoList = AddressDao.GetAddressInfoList(context.UserName, sessionId);
            var cartInfoList    = CartDao.GetCartInfoList(siteId, context.UserName, sessionId);

            AddressInfo addressInfo = null;

            foreach (var addInfo in addressInfoList)
            {
                if (addInfo.IsDefault)
                {
                    addressInfo = addInfo;
                }
            }
            if (addressInfo == null && addressInfoList.Count > 0)
            {
                addressInfo = addressInfoList[0];
            }

            var          deliveryInfoList = DeliveryDao.GetDeliveryInfoList(siteId);
            DeliveryInfo deliveryInfo     = null;

            if (deliveryInfoList.Count > 0)
            {
                deliveryInfo = deliveryInfoList[0];
            }

            var     totalCount  = 0;
            decimal totalFee    = 0;
            var     deliveryFee = Utils.GetDeliveryFee(cartInfoList, addressInfo, deliveryInfo);

            foreach (var cartInfo in cartInfoList)
            {
                totalCount += cartInfo.Count;
                totalFee   += cartInfo.Fee * cartInfo.Count;
            }

            return(new
            {
                addressInfoList,
                addressId = addressInfo?.Id ?? 0,
                deliveryInfoList,
                deliveryId = deliveryInfo?.Id ?? 0,
                cartInfoList,
                totalCount,
                totalFee,
                deliveryFee
            });
        }
Beispiel #3
0
        public void BtnAdd_OnClick(object sender, EventArgs e)
        {
            var deliveryInfo = new DeliveryInfo
            {
                SiteId = _siteId
            };

            deliveryInfo.Id = DeliveryDao.Insert(deliveryInfo);
            Response.Redirect(PageDeliveryAdd.GetRedirectUrl(_siteId, deliveryInfo.Id));
        }
        public DeliveryDto GetDeliveryById(int id)
        {
            var s = new DeliveryDao().GetDeliById(id);

            return(new DeliveryDto
            {
                id = s.id,
                name = s.name,
            });
        }
        public IEnumerable <DeliveryDto> GetDeliveries()
        {
            var data = new DeliveryDao().GetDeliveries().Select(s => new DeliveryDto
            {
                id   = s.id,
                name = s.name,
            });

            return(data);
        }
        public Delivery CreateDelivery(decimal deliveryPrice, long cardNumber, long userId, string description,
                                       List <ShoppingCart> shoppingCart, string deliveryAddress = null)
        {
            CreditCard card = CreditCardDao.FindByNumber(cardNumber);

            if (CreditCardDao.FindByUserId(userId)
                .Contains(card))
            {
                Delivery delivery = new Delivery
                {
                    deliveryDate    = DateTime.Now,
                    deliveryPrice   = deliveryPrice,
                    deliveryAddress = deliveryAddress ?? UserProfileDao.Find(userId).address,
                    cardId          = card.cardId,
                    userId          = userId,
                    description     = description
                };

                DeliveryDao.Create(delivery);

                DeliveryLine deliveryLine;
                foreach (ShoppingCart item in shoppingCart)
                {
                    deliveryLine = new DeliveryLine();

                    if (item.Product.productQuantity - item.Amount >= 0)
                    {
                        DecreaseProductStock(item.Product, item.Amount);
                        deliveryLine.deliveryLineAmount = item.Amount;
                    }
                    else
                    {
                        throw new StockEmptyException(item.Product.productId, item.Product.productName);
                    }

                    deliveryLine.deliveryLinePrice = item.Product.productPrice;
                    deliveryLine.productId         = item.Product.productId;
                    deliveryLine.deliveryId        = delivery.deliveryId;

                    DeliveryLineDao.Create(deliveryLine);
                }

                return(delivery);
            }
            else
            {
                throw new UnmatchingUserAndCardException(userId, cardNumber);
            }
        }
Beispiel #7
0
        public void Page_Load(object sender, EventArgs e)
        {
            var request = SiteServer.Plugin.Context.GetCurrentRequest();

            _siteId = request.GetQueryInt("siteId");

            if (!request.AdminPermissions.HasSitePermissions(_siteId, Main.PluginId))
            {
                Response.Write("<h1>未授权访问</h1>");
                Response.End();
                return;
            }

            if (!string.IsNullOrEmpty(Request.QueryString["delete"]) &&
                !string.IsNullOrEmpty(Request.QueryString["deliveryId"]))
            {
                var deliveryId = Utils.ParseInt(Request.QueryString["deliveryId"]);
                DeliveryDao.Delete(deliveryId);
                LtlMessage.Text = Utils.GetMessageHtml("删除成功!", true);
            }
            else if (!string.IsNullOrEmpty(Request.QueryString["up"]) &&
                     !string.IsNullOrEmpty(Request.QueryString["deliveryId"]))
            {
                var deliveryId = Utils.ParseInt(Request.QueryString["deliveryId"]);
                DeliveryDao.UpdateTaxisToUp(_siteId, deliveryId);
                LtlMessage.Text = Utils.GetMessageHtml("排序生成!", true);
            }
            else if (!string.IsNullOrEmpty(Request.QueryString["down"]) &&
                     !string.IsNullOrEmpty(Request.QueryString["deliveryId"]))
            {
                var deliveryId = Utils.ParseInt(Request.QueryString["deliveryId"]);
                DeliveryDao.UpdateTaxisToDown(_siteId, deliveryId);
                LtlMessage.Text = Utils.GetMessageHtml("排序生成!", true);
            }
            else
            {
                DeliveryDao.DeleteDeliveryNameIsEmpty();
            }

            if (IsPostBack)
            {
                return;
            }

            RptContents.DataSource     = DeliveryDao.GetDeliveryInfoList(_siteId);
            RptContents.ItemDataBound += RptContents_ItemDataBound;
            RptContents.DataBind();
        }
        private bool SaveDelivery()
        {
            var deliveryInfo = DeliveryDao.GetDeliveryInfo(_deliveryId);

            deliveryInfo.DeliveryName   = TbDeliveryName.Text;
            deliveryInfo.DeliveryType   = DdlDeliveryType.SelectedValue;
            deliveryInfo.StartStandards = Utils.ParseInt(TbStartStandards.Text);
            deliveryInfo.StartFees      = Utils.ParseDecimal(TbStartFees.Text);
            deliveryInfo.AddStandards   = Utils.ParseInt(TbAddStandards.Text);
            deliveryInfo.AddFees        = Utils.ParseDecimal(TbAddFees.Text);

            foreach (RepeaterItem repeaterItem in RptAreas.Items)
            {
                if (repeaterItem.ItemType != ListItemType.Item && repeaterItem.ItemType != ListItemType.AlternatingItem)
                {
                    continue;
                }

                var hfAreaId         = (HiddenField)repeaterItem.FindControl("hfAreaId");
                var tbStartStandards = (TextBox)repeaterItem.FindControl("tbStartStandards");
                var tbStartFees      = (TextBox)repeaterItem.FindControl("tbStartFees");
                var tbAddStandards   = (TextBox)repeaterItem.FindControl("tbAddStandards");
                var tbAddFees        = (TextBox)repeaterItem.FindControl("tbAddFees");

                var areaId   = Utils.ParseInt(hfAreaId.Value);
                var areaInfo = AreaDao.GetAreaInfo(areaId);

                areaInfo.StartStandards = Utils.ParseInt(tbStartStandards.Text);
                areaInfo.StartFees      = Utils.ParseDecimal(tbStartFees.Text);
                areaInfo.AddStandards   = Utils.ParseInt(tbAddStandards.Text);
                areaInfo.AddFees        = Utils.ParseDecimal(tbAddFees.Text);

                if (string.IsNullOrEmpty(areaInfo.Cities))
                {
                    return(false);
                }

                AreaDao.Update(areaInfo);
            }

            DeliveryDao.Update(deliveryInfo);

            return(true);
        }
Beispiel #9
0
        public static object ApiPaySetAddressAndDelivery(IRequest context)
        {
            var siteId     = context.GetPostInt("siteId");
            var sessionId  = context.GetPostString("sessionId");
            var addressId  = context.GetPostInt("addressId");
            var deliveryId = context.GetPostInt("deliveryId");

            AddressDao.SetDefault(context.UserName, sessionId, addressId);

            var cartInfoList = CartDao.GetCartInfoList(siteId, context.UserName, sessionId);
            var addressInfo  = AddressDao.GetAddressInfo(addressId);
            var deliveryInfo = DeliveryDao.GetDeliveryInfo(deliveryId);

            var deliveryFee = Utils.GetDeliveryFee(cartInfoList, addressInfo, deliveryInfo);

            return(new
            {
                deliveryFee
            });
        }
        public DeliveryBlock GetAllDeliveries(long userId, int startIndex = 0, int count = 20)
        {
            List <Delivery>        deliveries = DeliveryDao.FindByUserId(userId, startIndex, count + 1);
            List <DeliveryDetails> details    = new List <DeliveryDetails>();

            bool existMoreDeliveries = (deliveries.Count == count + 1);

            if (existMoreDeliveries)
            {
                deliveries.RemoveAt(count);
            }

            foreach (Delivery delivery in deliveries)
            {
                details.Add(new DeliveryDetails(delivery.deliveryId, delivery.deliveryDate.ToString("dd/MM/yyyy"),
                                                delivery.deliveryPrice, delivery.deliveryAddress, delivery.CreditCard.cardNumber, delivery.description));
            }

            return(new DeliveryBlock(details, existMoreDeliveries));
        }
        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;");
            }
        }