예제 #1
0
        public JsonResult AddVip(PromoteVipModel promoteVipModel, int[] scopes)
        {
            try
            {
                var sb = new StringBuilder();
                this.promoteVipService = new PromoteVipService();
                promoteVipModel.EmployeeID = this.SystemUserSession.EmployeeID;
                promoteVipModel.Status = 1;

                var promoteVip = DataTransfer.Transfer<Promote_Vip>(promoteVipModel, typeof(PromoteVipModel));

                var promoteVipScopeList = new List<Promote_Vip_Scope>();
                foreach (var scope in scopes)
                {
                    var promoteVipScope = new Promote_Vip_Scope { ProductID = scope };
                    promoteVipScopeList.Add(promoteVipScope);
                    sb.Append(scope + ",");
                }

                // 验证相同商品是否参与其他促销
                var products = this.VerifyPromote(0, sb.ToString());
                if (!string.IsNullOrEmpty(products))
                {
                    return this.Json(new AjaxResponse(0, "以下商品已参加其他促销活动:" + products));
                }

                promoteVip.Scopes = promoteVipScopeList;
                this.promoteVipService.Add(promoteVip);
            }
            catch (Exception exception)
            {
                return this.Json(new AjaxResponse(0, "添加失败!" + exception.Message));
            }

            return this.Json(new AjaxResponse(1, "添加成功!"));
        }
예제 #2
0
        /// <summary>
        /// 验证商品参加重复促销.
        /// </summary>
        /// <param name="promoteVipID">
        /// The promote vip id.
        /// </param>
        /// <param name="productIDs">
        /// The product i ds.
        /// </param>
        /// <returns>
        /// The <see cref="string"/>.
        /// </returns>
        private string VerifyPromote(int promoteVipID, string productIDs)
        {
            if (string.IsNullOrEmpty(productIDs))
            {
                return string.Empty;
            }

            var sb = new StringBuilder();

            this.promoteVipService = new PromoteVipService();
            var list = this.promoteVipService.QueryByPromoteProduct(productIDs, promoteVipID);

            if (list == null)
            {
                return string.Empty;
            }

            foreach (var productSearchResult in list)
            {
                sb.Append(productSearchResult.Name + ";");
            }

            return sb.ToString();
        }
예제 #3
0
 public JsonResult RemoveVip(int id)
 {
     try
     {
         this.promoteVipService = new PromoteVipService();
         this.promoteVipService.Remove(id);
         return this.Json(new AjaxResponse(1, "操作成功!"));
     }
     catch (Exception exception)
     {
         return this.Json(new AjaxResponse(0, "操作失败:" + exception.Message));
     }
 }
예제 #4
0
 public JsonResult QueryVipByID(int id)
 {
     try
     {
         this.promoteVipService = new PromoteVipService();
         var promoteVip = this.promoteVipService.QueryByID(id);
         promoteVip.Scopes = this.promoteVipService.QueryScopeByID(id);
         return this.Json(promoteVip);
     }
     catch (Exception exception)
     {
         throw new Exception(exception.Message, exception);
     }
 }
예제 #5
0
        /// <summary>
        /// 会员促销.
        /// </summary>
        /// <param name="request">
        /// The request.
        /// </param>
        /// <param name="promoteName">
        /// 活动名称.
        /// </param>
        /// <param name="promoteStatus">
        /// 活动状态.
        /// </param>
        /// <param name="startStartTime">
        /// 活动开始时间范围起点时间.
        /// </param>
        /// <param name="startEndTime">
        /// 活动开始时间范围结点时间.
        /// </param>
        /// <param name="endStartTime">
        /// 活动结束时间范围起点时间.
        /// </param>
        /// <param name="endEndTime">
        /// 活动结束时间范围结点时间.
        /// </param>
        /// <returns>
        /// The <see cref="JsonResult"/>.
        /// </returns>
        public JsonResult QueryVip(
            [DataSourceRequest] DataSourceRequest request,
            string promoteName,
            string promoteStatus,
            string startStartTime,
            string startEndTime,
            string endStartTime,
            string endEndTime)
        {
            this.promoteMeetMoneyService = new PromoteMeetMoneyService();
            if (request.Page <= 0)
            {
                request.Page = 1;
            }

            if (request.PageSize == 0)
            {
                request.PageSize = 10;
            }

            int totalCount;
            var stringBuilder = new StringBuilder();
            if (!string.IsNullOrEmpty(promoteName))
            {
                CheckCondition(stringBuilder);
                stringBuilder.Append("[Name] like '%" + promoteName + "%'");
            }

            if (!string.IsNullOrEmpty(startStartTime))
            {
                CheckCondition(stringBuilder);
                stringBuilder.Append("[StartTime] >= '" + startStartTime + "'");
            }

            if (!string.IsNullOrEmpty(startEndTime))
            {
                CheckCondition(stringBuilder);
                stringBuilder.Append("[StartTime] <= '" + startEndTime + "'");
            }

            if (!string.IsNullOrEmpty(endStartTime))
            {
                CheckCondition(stringBuilder);
                stringBuilder.Append("[EndTime] >= '" + endStartTime + "'");
            }

            if (!string.IsNullOrEmpty(endEndTime))
            {
                CheckCondition(stringBuilder);
                stringBuilder.Append("[EndTime] <= '" + endEndTime + "'");
            }

            switch (promoteStatus)
            {
                case "1":
                    CheckCondition(stringBuilder);
                    stringBuilder.Append("[StartTime] > '" + DateTime.Now + "'");
                    break;
                case "2":
                    CheckCondition(stringBuilder);
                    stringBuilder.Append("'" + DateTime.Now + "' Between [StartTime] And [EndTime] And [Status] in (1,2) ");
                    break;
                case "3":
                    CheckCondition(stringBuilder);
                    stringBuilder.Append("([EndTime] < '" + DateTime.Now + "' or [Status] = 3)");
                    break;
            }

            CheckCondition(stringBuilder);
            stringBuilder.Append("[IsDelete] = 0");
            var condition = stringBuilder.ToString();
            List<Promote_Vip> list;
            try
            {
                var paging = new Paging(
                    "[Promote_Vip]",
                    null,
                    "[ID]",
                    condition,
                    request.Page,
                    request.PageSize,
                    "[CreateTime]",
                    1);
                int pageCount;
                list = new PromoteVipService().Query(paging, out pageCount, out totalCount);
            }
            catch (Exception exception)
            {
                throw new Exception(exception.Message, exception);
            }

            if (list != null)
            {
                var modelList = new List<PromoteVipModel>();
                foreach (var coupon in list)
                {
                    modelList.Add(DataTransfer.Transfer<PromoteVipModel>(coupon, typeof(Promote_Vip)));
                }

                foreach (var model in modelList)
                {
                    switch (model.Status)
                    {
                        case 1:
                            model.StatusName = "正常";
                            break;
                        case 2:
                            model.StatusName = "暂停";
                            break;
                        case 3:
                            model.StatusName = "停止";
                            break;
                    }

                    model.OperateText = this.GetVipOperationHtml(
                        model.ID,
                        model.Status,
                        model.StartTime,
                        model.EndTime);
                }

                var data = new DataSource { Data = modelList, Total = totalCount };
                return this.Json(data, JsonRequestBehavior.AllowGet);
            }

            return this.Json(string.Empty);
        }
예제 #6
0
        public JsonResult ChangesVipStatus(int id, int status)
        {
            try
            {
                if (status == 1)
                {
                    var sb = new StringBuilder();
                    this.promoteVipService = new PromoteVipService();
                    var scopes = this.promoteVipService.QueryScopeByID(id);
                    if (scopes != null)
                    {
                        foreach (var scope in scopes)
                        {
                            sb.Append(scope.ProductID + ",");
                        }

                        // 验证相同商品是否参与其他促销
                        var products = this.VerifyPromote(id, sb.ToString());
                        if (!string.IsNullOrEmpty(products))
                        {
                            return this.Json(new AjaxResponse(0, "以下商品已参加其他促销活动:" + products));
                        }
                    }
                }

                this.promoteVipService = new PromoteVipService();
                this.promoteVipService.ModifyStatus(id, status);
                return this.Json(new AjaxResponse(1, "操作成功!"));
            }
            catch (Exception exception)
            {
                return this.Json(new AjaxResponse(0, "操作失败:" + exception.Message));
            }
        }