示例#1
0
        /// <summary>
        ///  奖单详情
        /// </summary>
        //public ActionResult PrizeOrderDetail(Guid id)
        //{
        //    PrizeOrderView model = PrizeOrderContract.PrizeOrders
        //        .Where(p => p.Id.Equals(id))
        //        .Select(p => new PrizeOrderView()
        //        {
        //            Id = p.Id,
        //            RevealTypeNum = p.RevealTypeNum,
        //            RevealStateNum = p.RevealStateNum,
        //            LaunchTime = p.Extend.LaunchTime,
        //            MinLuckyCount = p.Extend.MinLuckyCount,
        //            LuckyCount = p.Extend.LuckyCount,
        //            LuckyPercent = p.Extend.LuckyPercent,
        //            PoolCount = p.Extend.PoolCount,
        //            Remarks = p.Extend.Remarks,
        //            AddDate = p.AddDate
        //        }).FirstOrDefault();
        //    if (model == null)
        //        ViewBag.Message = string.Format("不存在Id为{0}的奖单", id);
        //    return View(model);
        //}

        /// <summary>
        ///  奖单详情
        /// </summary>
        public ActionResult PrizeOrderDetail(Guid id)
        {
            //PrizeOrderView model = PrizeOrderContract.PrizeOrders
            //    .Where(p => p.Id.Equals(id))
            //    .Select(p => new PrizeOrderView()
            //    {
            //        Id = p.Id,
            //        RevealTypeNum = p.RevealTypeNum,
            //        RevealStateNum = p.RevealStateNum,
            //        LaunchTime = p.Extend.LaunchTime,
            //        MinLuckyCount = p.Extend.MinLuckyCount,
            //        LuckyCount = p.Extend.LuckyCount,
            //        LuckyPercent = p.Extend.LuckyPercent,
            //        PoolCount = p.Extend.PoolCount,
            //        Remarks = p.Extend.Remarks,
            //        AddDate = p.AddDate
            //    }).FirstOrDefault();
            PrizeOrderDetailView model = PrizeOrderSiteContract.GetPrizeOrderDetailView(id);

            if (model == null)
            {
                ViewBag.Message = string.Format("不存在Id为{0}的奖单", id);
            }
            return(View(model));
        }
示例#2
0
        public JsonResult Set2Top(string prizeorderIdString, decimal moneyvalue)
        {
            if (string.IsNullOrEmpty(prizeorderIdString))
            {
                return(Json(new { OK = false, ErrorString = "prizeorder Id 为空" }, JsonRequestBehavior.AllowGet));
            }

            if (!this.UserId.HasValue)
            {
                return(Json(new { ErrorString = "当前用户Id为空" }, JsonRequestBehavior.AllowGet));
            }

            Guid prizeOrderId = new Guid(prizeorderIdString);
            int  datelong     = int.Parse(System.Configuration.ConfigurationManager.AppSettings["Set2TopTimeLong"]); //置顶时长(小时)

            OperationResult result = PrizeOrderSiteContract.Set2Top(prizeOrderId, moneyvalue, datelong, this.UserId.Value);

            if (result.ResultType == OperationResultType.Success)
            {
                return(Json(new { OK = true, ErrorString = "" }, JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(Json(new { OK = false, ErrorString = result.Message }, JsonRequestBehavior.AllowGet));
            }
        }
示例#3
0
        /// <summary>
        ///  删除奖单
        /// </summary>
        /// <param name="id"></param>
        public ActionResult PrizeOrderDelete(Guid id)
        {
            OperationResult result = PrizeOrderSiteContract.Delete(id);
            string          msg    = result.Message ?? result.ResultType.ToDescription();

            if (result.ResultType == OperationResultType.Success)
            {
                TempData["Message"] = "奖单删除成功。<br /><a href='/Vip/PrizeOrderList'>返回</a>奖单管理页";
                return(RedirectToAction("InfoPage"));
            }
            TempData["Message"] = msg;
            return(RedirectToAction("PrizeOrderList"));
        }
示例#4
0
        public JsonResult CloseReveal(Guid poid)
        {
            OperationResult result = PrizeOrderSiteContract.CancelReveal(poid);

            if (result.ResultType == OperationResultType.Success)
            {
                return(Json(new { OK = true, Message = "关闭奖单成功!" }, JsonRequestBehavior.AllowGet));
            }

            string msg = result.Message ?? result.ResultType.ToDescription();

            return(Json(new { OK = false, Message = msg }, JsonRequestBehavior.AllowGet));
        }
示例#5
0
        public JsonResult ManualRevealLottery(Guid poid, int rtype)
        {
            OperationResult result = PrizeOrderSiteContract.ManualRevealLottery(poid, rtype);

            if (result.ResultType == OperationResultType.Success)
            {
                return(Json(new { OK = true, Message = "开奖成功!" }, JsonRequestBehavior.AllowGet));
            }

            string msg = result.Message ?? result.ResultType.ToDescription();

            return(Json(new { OK = false, Message = msg }, JsonRequestBehavior.AllowGet));
        }
示例#6
0
        public ActionResult Scene(int?id, string keywords)
        {
            int pageIndex = id ?? 1;

            //ViewBag.PageIndex = pageIndex;
            //ViewBag.RevealType = RevealType.Quota.ToInt();
            ViewBag.Keywords = keywords;

            ViewBag.UserId = this.UserId ?? 0;
            PropertySortCondition[] sortConditions = new[] { new PropertySortCondition("SortOrder") };

            int    pageSize      = int.Parse(System.Configuration.ConfigurationManager.AppSettings["PageCount"]);
            string orderbyString = "SortOrder asc";
            int    totalCount;
            int    totalPageCount;

            string whereString = GetWhereStringOfPrizeOrderDetail(keywords);

            PagedList <PrizeOrderDetailView>   model = null;
            IEnumerable <PrizeOrderDetailView> rlist = null;
            OperationResult result = PrizeOrderSiteContract.GetRevealedSceneLotteries(pageSize, pageIndex, whereString, orderbyString, out totalCount, out totalPageCount, RevealState.Drawn.ToInt());

            ViewBag.TotalCount = totalCount;
            ViewBag.PageIndex  = pageIndex;
            ViewBag.PageCount  = totalPageCount;
            if (result.ResultType == OperationResultType.Success)
            {
                DataSet ds = (DataSet)result.AppendData;

                if (ds != null && ds.Tables.Count > 0)
                {
                    //DataTable dt = ds.Tables[0];
                    //DataRow[] rowarray = new DataRow[dt.Rows.Count];
                    //dt.Rows.CopyTo(rowarray, 0);
                    ////所有
                    //ViewBag.AllPrizeOrders = rowarray;

                    DataTable dt = ds.Tables[0];

                    rlist = dt.ToPrizeOrderDetailList();
                    if (rlist != null)
                    {
                        model = new PagedList <PrizeOrderDetailView>(rlist, pageIndex, pageSize, totalCount);
                        return(View(model));
                    }
                }
            }
            ViewBag.Message = result.Message;
            return(View(model));
        }
示例#7
0
        /// <summary>
        ///  开奖条件已过,但尚未开奖的奖单列表
        /// </summary>
        public ActionResult DeadLotteries(int?id, int?rtype, string keywords)
        {
            long userid    = this.UserId ?? 0;
            int  pageIndex = id ?? 1;
            int  total;

            ViewBag.UserId = this.UserId ?? 0;
            PropertySortCondition[] sortConditions = new[] { new PropertySortCondition("SortOrder") };

            int    pageSize      = int.Parse(System.Configuration.ConfigurationManager.AppSettings["PageCount"]);
            string orderbyString = "SortOrder asc";
            int    totalCount;
            int    totalPageCount;

            string whereString = GetWhereStringOfPrizeOrderDetail(keywords);

            whereString += string.IsNullOrEmpty(whereString) ? "MemberId = " + userid.ToString() : " and MemberId = " + userid.ToString();

            PagedList <PrizeOrderDetailView>   model = null;
            IEnumerable <PrizeOrderDetailView> rlist = null;
            OperationResult result = PrizeOrderSiteContract.GetDeadLotteries(pageSize, pageIndex, whereString, orderbyString, out totalCount, out totalPageCount, rtype ?? 0);

            ViewBag.TotalCount = totalCount;
            ViewBag.PageIndex  = pageIndex;
            ViewBag.PageCount  = totalPageCount;
            if (result.ResultType == OperationResultType.Success)
            {
                DataSet ds = (DataSet)result.AppendData;

                if (ds != null && ds.Tables.Count > 0)
                {
                    //DataTable dt = ds.Tables[0];
                    //DataRow[] rowarray = new DataRow[dt.Rows.Count];
                    //dt.Rows.CopyTo(rowarray, 0);
                    ////所有
                    //ViewBag.AllPrizeOrders = rowarray;

                    DataTable dt = ds.Tables[0];

                    rlist = dt.ToPrizeOrderDetailList();
                    if (rlist != null)
                    {
                        model = new PagedList <PrizeOrderDetailView>(rlist, pageIndex, pageSize, totalCount);
                    }
                }
            }
            ViewBag.Message = result.Message;
            return(View(model));
        }
示例#8
0
        public ActionResult LaunchPrize(PrizeOrderView model)
        {
            ViewBag.IsPostBack = true;
            int rtype = int.Parse(Request.Form["RevealType"]);

            ViewBag.RevealType = rtype;

            if (this.PubishingEnableTimes == 0)
            {
                ViewBag.Message = "您还可发起抽奖0次,请续费后再执行此功能。";
                return(View(model));
            }

            if (ModelState.IsValid)
            {
                //验证码验证通过
            }
            else
            {
                //验证码验证失败
                //ModelState.AddModelError("", e.Message);
                ViewBag.Message = "验证码输入不正确";
                return(View(model));
            }

            bool            shouldMinus = this.PubishingEnableTimes < 1000000 ? true : false;
            OperationResult result      = PrizeOrderSiteContract.Add(model, shouldMinus);
            string          msg         = result.Message ?? result.ResultType.ToDescription();

            if (result.ResultType == OperationResultType.Success)
            {
                if (shouldMinus)
                {
                    if (!this.UpdatePubishingEnableTimes())
                    {
                        //记日志(更新可发布奖品次数失败)
                    }
                }
                TempData["Message"] = string.Format("发起抽奖成功。<br /><a href='/Vip/PrizeOrderDetail/{0}'>查看<a>奖单", model.PrizeId);
                return(RedirectToAction("InfoPage"));
            }
            //ModelState.AddModelError("", msg);
            ViewBag.Message = msg;
            return(View(model));
        }
示例#9
0
        /// <summary>
        ///  获取最新的可抽奖信息
        /// </summary>
        private void GetGetTopPrizeOrders(int? rtype)
        {
            int topCount = int.Parse(System.Configuration.ConfigurationManager.AppSettings["TopCountOfPrizeOrder"]);
            //OperationResult result = PrizeOrderSiteContract.GetTopPrizeOrders(topCount,rtype);
            OperationResult result = PrizeOrderSiteContract.GetTopPrizeOrders(topCount, null);
            if (result.ResultType == OperationResultType.Success)
            {
                DataSet ds = (DataSet)result.AppendData;

                if (ds != null && ds.Tables.Count > 0)
                {
                    DataTable dt = ds.Tables[0];
                    //所有
                    ViewBag.AllPrizeOrders = dt.ToPrizeOrderDetailList();

                    if (rtype.HasValue)
                    {
                        //定时
                        ViewBag.TopTimingPrizeOrders = dt.Select("RevealType=" + (int)RevealType.Timing).ToPrizeOrderDetailList();
                        //定员
                        ViewBag.TopQuotaPrizeOrders = dt.Select("RevealType=" + (int)RevealType.Quota).ToPrizeOrderDetailList();
                        //竞猜
                        ViewBag.TopAnswerPrizeOrders = dt.Select("RevealType=" + (int)RevealType.Answer).ToPrizeOrderDetailList();
                        //现场
                        ViewBag.TopScenePrizeOrders = dt.Select("RevealType=" + (int)RevealType.Scene).ToPrizeOrderDetailList();
                        switch (rtype)
                        {
                            case (int)RevealType.Timing:
                                ViewBag.AllPrizeOrders = ViewBag.TopTimingPrizeOrders;
                                break;
                            case (int)RevealType.Quota:
                                ViewBag.AllPrizeOrders = ViewBag.TopQuotaPrizeOrders;
                                break;
                            case (int)RevealType.Answer:
                                ViewBag.AllPrizeOrders = ViewBag.TopAnswerPrizeOrders;
                                break;
                            case (int)RevealType.Scene:
                                ViewBag.AllPrizeOrders = ViewBag.TopScenePrizeOrders;
                                break;
                        }
                    }
                }
            }
        }
示例#10
0
        public PagedList <PrizeOrderDetailView> GetPagedListOfPrizeOrderDetailView(int pageIndex, string keywords = null)
        {
            PropertySortCondition[] sortConditions = new[] { new PropertySortCondition("SortOrder") };

            string orderbyString = "SortOrder asc";
            int    totalCount;
            int    totalPageCount;
            string whereString = string.Empty;

            whereString = GetWhereStringOfPrizeOrderDetail(keywords);

            IEnumerable <PrizeOrderDetailView> rlist = null;
            OperationResult result = PrizeOrderSiteContract.GetLotteries(this.PageSize, pageIndex, whereString, orderbyString, out totalCount, out totalPageCount, 0, (int)RevealState.UnDrawn);

            ViewBag.TotalCount = totalCount;
            ViewBag.PageIndex  = pageIndex;
            ViewBag.PageCount  = totalPageCount;
            if (result.ResultType == OperationResultType.Success)
            {
                DataSet ds = (DataSet)result.AppendData;

                if (ds != null && ds.Tables.Count > 0)
                {
                    DataTable dt = ds.Tables[0];

                    rlist = dt.ToPrizeOrderDetailList();
                    if (rlist != null)
                    {
                        PagedList <PrizeOrderDetailView> model = new PagedList <PrizeOrderDetailView>(rlist, pageIndex, this.PageSize, totalCount);

                        return(model);
                    }
                }
            }
            return(null);
        }
示例#11
0
        public ActionResult PrizeBetting(Guid poId)
        {
            if (!User.Identity.IsAuthenticated)
            {
                return(RedirectToAction("Login", "Account"));
            }
            else
            {
                string returnUrl = string.IsNullOrEmpty(Request.QueryString["returnUrl"]) ? "/Vip/Business/poId=" + poId.ToString() : Request.QueryString["returnUrl"];
                ViewBag.ReturnUrl = returnUrl;
                //int rtvalue = int.Parse(Request.QueryString["RevealType"]);
                //ViewBag.RevealType = rtvalue;
                ViewBag.CurrentUserId = this.UserId ?? 0;
                OperationResult result = PrizeOrderSiteContract.GetPrizeOrderDetail(poId);
                if (result.ResultType == OperationResultType.Success)
                {
                    PrizeBettingView model = new PrizeBettingView()
                    {
                        PrizeOrderDetailView = (PrizeOrderDetailView)result.AppendData,
                        UserId = this.UserId ?? 0
                    };

                    ViewBag.RevealType = model.PrizeOrderDetailView != null?model.PrizeOrderDetailView.PrizeOrderView.RevealType.ToInt().ToString() : string.Empty;

                    //if (RevealType.Answer.ToInt() == rtvalue)
                    //{
                    //    //InitAnswerOptions(model);
                    //}
                    return(View(model));
                }
                else
                {
                    return(View(new PrizeBettingView()));
                }
            }
        }
示例#12
0
        public ActionResult LaunchLottery(PrizeOrderDetailView model)
        {
            ViewBag.IsPostBack = true;

            ViewBag.RevealType    = model.PrizeOrderView.RevealType.ToInt().ToString();
            ViewBag.ScopeType     = model.PrizeOrderView.ScopeType.ToInt().ToString();
            ViewBag.ScopeProvince = model.PrizeOrderView.ScopeProvince;
            ViewBag.ScopeAreaCity = model.PrizeOrderView.ScopeAreaCity;

            //if (this.PubishingEnableTimes == 0)
            //{
            //    //验证码验证通过
            //    ViewBag.Message = "抱歉,您可发起抽奖的次数为0,请续费后再继续使用该功能。";
            //    return View(model);
            //}

            // 竞猜开奖并且开奖方式为“手动”,则取消对“开奖条件”的验证
            if (model.PrizeOrderView.RevealType == RevealType.Answer &&
                model.PrizeOrderView.RevealTypeOfAnswer == RevealTypeOfAnswer.Manual)
            {
                ModelState.Remove("PrizeOrderView.AnswerRevealConditionType");
            }

            // 非竞猜开奖,则取消对“揭晓答案(先知、后知)方式”的验证
            if (model.PrizeOrderView.RevealType != RevealType.Answer)
            {
                ModelState.Remove("PrizeOrderView.RevealTypeOfAnswer");
                ModelState.Remove("PrizeOrderView.AnswerRevealConditionType");
            }

            // 现场开奖,则取消对“是否需要兑奖码”的验证
            if (model.PrizeOrderView.RevealType == RevealType.Scene)
            {
                ModelState.Remove("PrizeOrderView.IsNeedExchangeCode");
                ModelState.Remove("PrizeOrderView.RevealTypeOfAnswer");
                ModelState.Remove("PrizeOrderView.AnswerRevealConditionType");
            }

            // 非现场开奖,则取消对“人员录入方式”的验证
            if (model.PrizeOrderView.RevealType != RevealType.Scene)
            {
                ModelState.Remove("PrizeOrderView.InputTypeOfStaff");
            }

            if (ModelState.IsValid)
            {
                //验证码验证通过
            }
            else
            {
                //验证码验证失败
                //ModelState.AddModelError("", e.Message);
                ViewBag.Message = "验证码输入不正确";
                return(View(model));
            }
            if ((this.UserId ?? 0) == 0)
            {
                //验证码验证失败
                //ModelState.AddModelError("", e.Message);
                ViewBag.Message = "当前登录的用户Id莫名的为空,无法发布奖品,请尝试退出并重新登录。";
                return(View(model));
            }
            else
            {
                model.MemberView.Id = this.UserId.Value;
            }

            if (!ValidatePrizeOrderDetailViewModel(model))
            {
                return(View(model));
            }

            // 先上传图片
            string upmessage    = string.Empty;
            string photoname    = string.Empty;
            bool   uploadResult = UploadPhoto(out upmessage, out photoname);

            if (!uploadResult)
            {
                ViewBag.Message = upmessage;
                return(View(model));
            }

            // 保存数据到数据库
            model.PrizeView.OriginalPhoto = new PrizePhotoView()
            {
                Name = photoname, PhotoTypeNum = PhotoType.Original.ToInt()
            };

            bool shouldMinus = this.PubishingEnableTimes < 1000000 ? true : false;

            OperationResult result = PrizeOrderSiteContract.BatchAdd(model, shouldMinus);

            if (result.ResultType == OperationResultType.Success)
            {
                if (shouldMinus)
                {
                    if (!this.UpdatePubishingEnableTimes())
                    {
                        //记日志(更新可发布奖品次数失败)
                    }
                }
                PrizeOrder porder = (PrizeOrder)result.AppendData;
                //ViewBag.OkMessage = "发布抽奖成功";
                //TempData["Message"] = string.Format("发起抽奖成功。<br /><a href='/Vip/PrizeOrderDetail/{0}'>查看<a>奖单", porder.Id);
                //return RedirectToAction("InfoPage");
                ViewBag.PostBackIsOK  = true;
                ViewBag.SuccessString = "发布抽奖成功,请等待审核。";
                return(View(model));
            }
            else
            {
                // 删除图片
                bool delresult = DeletePhoto(photoname);
                ViewBag.Message = "发布抽奖失败" + (delresult ? string.Empty : ",已经上传的图片在删除过程中也失败,可能已产生图片冗余");
            }
            return(View(model));
        }