Exemplo n.º 1
0
        protected void SubmitButton_Click(object sender, EventArgs e)
        {
            var ID      = RequestHelper.GetQueryString <int>("ID");
            var bargain = BargainBLL.ReadBargain(ID);

            if (bargain.Id > 0 && bargain.EndDate < DateTime.Now)
            {
                ScriptHelper.Alert("活动已结束,不能编辑");
            }
            if (bargain.Id > 0 && bargain.EndDate >= DateTime.Now && bargain.StartDate <= DateTime.Now)
            {
                ScriptHelper.Alert("活动进行中,不能编辑");
            }
            bargain.Name      = Name.Text;
            bargain.StartDate = DateTime.Parse(StartDate.Text);
            bargain.EndDate   = DateTime.Parse(EndDate.Text);
            if (bargain.StartDate >= bargain.EndDate)
            {
                ScriptHelper.Alert("结束时间不能小于开始时间");
            }

            //if (!Unlimited.Checked && string.IsNullOrEmpty(LimitCount.Text))
            //{
            //    ScriptHelper.Alert("请填写助力限制次数");
            //}
            //bargain.LimitCount = Unlimited.Checked ? int.MaxValue : int.Parse(LimitCount.Text);
            if (string.IsNullOrEmpty(LimitCount.Text))
            {
                ScriptHelper.Alert("请填写助力限制次数");
            }
            bargain.LimitCount   = int.Parse(LimitCount.Text);
            bargain.NumberPeople = int.Parse(NumberPeople.Text);
            //bargain.SuccessRate = int.Parse(SuccessRate.Text);
            //砍价成功率默认100%
            bargain.SuccessRate = 100;
            //记录改变前的状态
            int original_Status = bargain.Status;

            bargain.Status = RequestHelper.GetForm <int>("ctl00$ContentPlaceHolder$Status") <= 0 ? 0 : 1;
            string alertMessage = string.Empty;

            try
            {
                #region 参加活动的商品
                //原始
                List <BargainDetailsInfo> original_b_details = BargainDetailsBLL.ReadByBargainId(bargain.Id);
                //待新增、修改
                List <BargainDetailsInfo> B_Details = new List <BargainDetailsInfo>();

                var Ids          = Array.ConvertAll(RequestHelper.GetForm <string>("Id").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), delegate(string s) { return(int.Parse(s)); });
                var Product_Id   = Array.ConvertAll(RequestHelper.GetForm <string>("Product_Id").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), delegate(string s) { return(int.Parse(s)); });
                var BargainId    = Array.ConvertAll(RequestHelper.GetForm <string>("BargainId").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), delegate(string s) { return(int.Parse(s)); });
                var Product_Name = RequestHelper.GetForm <string>("Product_Name").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

                //var Product_OriginalPrice = RequestHelper.GetForm<string>("Product_OriginalPrice");

                var product_OriginalPrice = Array.ConvertAll(RequestHelper.GetForm <string>("product_OriginalPrice").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), k => decimal.Parse(k));

                var Product_ReservePrice = Array.ConvertAll(RequestHelper.GetForm <string>("Product_ReservePrice").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), delegate(string s) { return(decimal.Parse(s)); });
                var Stock = Array.ConvertAll(RequestHelper.GetForm <string>("Stock").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), delegate(string s) { return(int.Parse(s)); });
                var Sort  = Array.ConvertAll(RequestHelper.GetForm <string>("Sort").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), delegate(string s) { return(int.Parse(s)); });
                //是否在售
                var Product_IsSale = string.IsNullOrWhiteSpace(RequestHelper.GetForm <string>("Product_IsSale")) ? null : Array.ConvertAll(RequestHelper.GetForm <string>("Product_IsSale").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), delegate(string s) { return(int.Parse(s)); });
                //是否删除
                var Product_IsDelete = string.IsNullOrWhiteSpace(RequestHelper.GetForm <string>("Product_IsDelete")) ? null : Array.ConvertAll(RequestHelper.GetForm <string>("Product_IsDelete").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), delegate(string s) { return(int.Parse(s)); });
                //商品表编号
                var Product_Real_Id = string.IsNullOrWhiteSpace(RequestHelper.GetForm <string>("Product_Real_Id")) ? null : Array.ConvertAll(RequestHelper.GetForm <string>("Product_Real_Id").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), delegate(string s) { return(int.Parse(s)); });

                //正在参加砍价的商品
                var _bargainProducts = BargainDetailsBLL.ReadBargainProducts();
                for (int i = 0; i < Product_Id.Length; i++)
                {
                    //添加:Product_Id[i]>0
                    //修改:Product_Id[i] > 0  && Product_Real_Id[i]==Product_Id[i] 商品表必须存在此商品
                    if ((Ids[i] <= 0 && Product_Id[i] > 0) || (Ids[i] > 0 && Product_Id[i] > 0 && Product_Real_Id != null && Product_Real_Id[i] == Product_Id[i]))
                    {
                        #region 是否下架或删除
                        if (Product_IsSale != null && Product_IsSale.Length > i)
                        {
                            if (Product_IsSale[i] != 1)
                            {
                                alertMessage = "商品:【" + Product_Name[i] + "】已下架,不能添加";
                            }
                        }
                        if (Product_IsDelete != null && Product_IsDelete.Length > i)
                        {
                            if (Product_IsDelete[i] != 0)
                            {
                                alertMessage = "商品:【" + Product_Name[i] + "】已删除,不能添加";
                            }
                        }
                        #endregion
                        #region  一商品同时只能参加1个砍价活动
                        if (_bargainProducts.Any(k => k.ProductID == Product_Id[i]) && Ids[i] <= 0)
                        {
                            alertMessage = "商品:【" + Product_Name[i] + "】正在参与砍价活动,不得重复添加";
                        }
                        #endregion
                        if (string.IsNullOrEmpty(alertMessage))
                        {
                            //判断商品底价不得超过原价
                            if (product_OriginalPrice[i] <= Product_ReservePrice[i])
                            {
                                alertMessage = "商品底价必须小于原价";
                                //ScriptHelper.Alert("商品:【"+Product_Name[i]+"】底价必须大于【"+(product_OriginalPrice[i] - product_OriginalPrice[i] * bargain.SuccessRate/100) +"】");
                                //return;
                            }
                            B_Details.Add(new BargainDetailsInfo()
                            {
                                Id           = Ids[i],
                                ProductID    = Product_Id[i],
                                ReservePrice = Product_ReservePrice[i],
                                Sort         = Sort[i],
                                Stock        = Stock[i],
                                BargainId    = BargainId[i],
                                ProductName  = Product_Name[i],
                                ShareImage1  = (original_b_details.FirstOrDefault(k => k.Id == Ids[i]) ?? new BargainDetailsInfo()).ShareImage1
                            });
                        }
                    }
                }

                #endregion


                if (string.IsNullOrEmpty(alertMessage))
                {
                    alertMessage = ShopLanguage.ReadLanguage("AddOK");
                    if (ID <= 0)
                    {
                        CheckAdminPower("AddBargain", PowerCheckType.Single);
                        int id = BargainBLL.AddBargain(bargain);
                        B_Details.ForEach(item => { item.BargainId = id; item.ShareImage1 = CreateBargainShareImage(item.ReservePrice, item.ProductID); BargainDetailsBLL.AddBargainDetails(item); });

                        AdminLogBLL.Add(ShopLanguage.ReadLanguage("AddRecord"), ShopLanguage.ReadLanguage("Bargain"), id);
                    }
                    else
                    {
                        CheckAdminPower("UpdateBargain", PowerCheckType.Single);
                        BargainBLL.UpdateBargain(bargain);
                        #region 修改时关闭活动,则将未支付成功的砍价全部置为“砍价失败”,原“活动已取消,砍价失败”
                        if (original_Status == (int)Bargain_Status.OnGoing && bargain.Status == (int)Bargain_Status.ShutDown)
                        {
                            //异步 关闭
                            ShutDownBargain(bargain.Id);
                        }
                        #endregion

                        B_Details.ForEach(item =>
                        {
                            item.BargainId   = bargain.Id;
                            item.ShareImage1 = CreateBargainShareImage(item.ReservePrice, item.ProductID, item.ShareImage1);
                            if (item.Id > 0)
                            {
                                BargainDetailsBLL.UpdateBargainDetails(item);
                            }
                            else
                            {
                                BargainDetailsBLL.AddBargainDetails(item);
                            }
                        });
                        AdminLogBLL.Add(ShopLanguage.ReadLanguage("UpdateRecord"), ShopLanguage.ReadLanguage("Bargain"), bargain.Id);
                        alertMessage = ShopLanguage.ReadLanguage("UpdateOK");
                    }
                }
            }
            catch (Exception ex)
            {
                new TxtLog(Server.MapPath("/apilog/")).Write("-----bargainadd error:" + ex);
                ScriptHelper.Alert("商品底价、库存、排序号 填写不规范,请检查");
            }
            if (alertMessage == ShopLanguage.ReadLanguage("AddOK") || alertMessage == ShopLanguage.ReadLanguage("UpdateOK"))
            {
                ScriptHelper.Alert(alertMessage, RequestHelper.RawUrl);
            }
            else
            {
                ScriptHelper.Alert(alertMessage);
            }
        }