/// <summary> /// 发起抽奖 /// </summary> public ActionResult LaunchPrize(Guid id) { PrizeOrderView model = new PrizeOrderView() { PrizeId = id, MinLuckyCount = 1 }; ViewBag.RevealTypeList = model.RevealType.ToDescriptionSelectList(); return(View(model)); }
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)); }
/// <summary> /// 更新奖品 /// </summary> /// <param name="member">奖品信息</param> /// <returns>业务操作结果</returns> public OperationResult Update(PrizeOrderView pvmodel) { PublicHelper.CheckArgument(pvmodel, "pvmodel"); try { PrizeOrder dbmodel = PrizeOrderContract.PrizeOrders.SingleOrDefault(m => m.Id.Equals(pvmodel.Id)); if (dbmodel == null) { return(new OperationResult(OperationResultType.Error, string.Format("不存在要更新的Id为{0}的奖单", pvmodel.Id))); } //dbmodel.Name = pvmodel.Name; //dbmodel.Description = pvmodel.Description; //if (savePhoto) { // dbmodel.Photo = pvmodel.Photo; //} //dbmodel.UpdateDate = DateTime.Now; return(PrizeOrderContract.Update(dbmodel)); } catch (Exception ex) { return(new OperationResult(OperationResultType.Error, ex.Message)); } }
/// <summary> /// 添加奖品 /// </summary> /// <param name="prizebetting">奖品信息</param> /// <param name="shouldMinus">是否该对用户的可发起抽奖次数减</param> /// <returns>业务操作结果</returns> public OperationResult Add(PrizeOrderView povmodel, bool shouldMinus = false) { PublicHelper.CheckArgument(povmodel, "povmodel"); int?sortorder = PrizeOrderContract.PrizeOrders.Max(po => po.SortOrder); PrizeOrder pmodel = new PrizeOrder { RevealTypeNum = povmodel.RevealTypeNum, RevealState = Component.Tools.RevealState.UnDrawn, Prize = PrizeContract.Prizes.SingleOrDefault(m => m.Id.Equals(povmodel.PrizeId)), Extend = new PrizeOrderExtend() { Id = povmodel.Id }, SortOrder = (sortorder ?? 0) + 1 }; switch (povmodel.RevealType) { case RevealType.Timing: pmodel.Extend.LaunchTime = povmodel.LaunchTime; pmodel.Extend.MinLuckyCount = povmodel.MinLuckyCount; pmodel.Extend.LuckyCount = povmodel.LuckyCount; //pmodel.Extend.LuckyPercent = povmodel.LuckyPercent; break; case RevealType.Quota: pmodel.Extend.PoolCount = povmodel.PoolCount; pmodel.Extend.MinLuckyCount = povmodel.MinLuckyCount; pmodel.Extend.LuckyCount = povmodel.LuckyCount; //pmodel.Extend.LuckyPercent = povmodel.LuckyPercent; break; case RevealType.Answer: pmodel.Extend.PrizeAsking.Question = povmodel.Question; pmodel.Extend.PrizeAsking.AnswerOptions = povmodel.AnswerOptions; pmodel.Extend.PrizeAsking.Answer = povmodel.Answer; pmodel.Extend.MinLuckyCount = povmodel.MinLuckyCount; pmodel.Extend.LuckyCount = povmodel.LuckyCount; pmodel.Extend.RevealTypeOfAnswer = povmodel.RevealTypeOfAnswer; if (pmodel.Extend.RevealTypeOfAnswer == RevealTypeOfAnswer.Auto) { pmodel.Extend.AnswerRevealConditionTypeNum = (int)povmodel.AnswerRevealConditionType; if (povmodel.AnswerRevealConditionType == AnswerRevealConditionType.Timing) { pmodel.Extend.LaunchTime = povmodel.LaunchTime; } else if (povmodel.AnswerRevealConditionType == AnswerRevealConditionType.Quota) { pmodel.Extend.PoolCount = povmodel.PoolCount; } } //pmodel.Extend.LuckyPercent = povmodel.LuckyPercent; break; case RevealType.Scene: break; } try { return(PrizeOrderContract.Add(pmodel, shouldMinus)); } catch (Exception ex) { return(new OperationResult(OperationResultType.Error, ex.Message)); } }
public static PrizeOrderView ToSiteViewModel(this PrizeOrder po) { if (po == null) { return(null); } var rentity = new PrizeOrderView() { Id = po.Id, RevealType = po.RevealType, RevealTypeNum = po.RevealTypeNum, RevealState = po.RevealState, RevealStateNum = po.RevealStateNum, ScopeType = po.Extend.ScopeType, ScopeTypeNum = po.Extend.ScopeTypeNum, //ScopeProvince = po.Extend.ScopeCity, ScopeAreaCity = po.Extend.ScopeCity, AnswerRevealConditionType = po.Extend.AnswerRevealConditionType, AnswerRevealConditionTypeNum = po.Extend.AnswerRevealConditionTypeNum, //Remarks = po.Extend, PrizeId = po.Prize.Id, PrizeView = po.Prize.ToSiteViewModel(), SortOrder = po.SortOrder ?? 0, LaunchTime = po.Extend.LaunchTime, RevealDate = po.RevealDate, MinLuckyCount = po.Extend.MinLuckyCount, LuckyPercent = po.Extend.LuckyPercent, PoolCount = po.Extend.PoolCount, LuckyCount = po.Extend.LuckyCount, Question = po.Extend.PrizeAsking.Question, AnswerOptions = po.Extend.PrizeAsking.AnswerOptions, Answer = po.Extend.PrizeAsking.Answer //LuckyStaffsOfScenceString = po.Extend. //StaffsOfScenceString = po.SceneStaffs.AsEnumerable().ToArray()., //Is2Top = po.Extend, //UpdateDate = po., }; if (po.RevealType == RevealType.Scene) { // 参与者数目 if (po.SceneStaffs != null) { rentity.BettingCount = po.SceneStaffs.Count; } // 已开奖的,取出中奖者 if (po.RevealState == RevealState.Drawn) { if (po.SceneStaffs != null && po.SceneStaffs.Count > 0) { rentity.LuckyStaffsOfScenceString = string.Join("|", po.SceneStaffs.Where(ss => ss.IsLucky).Select(ss => ss.Value).ToArray()); } } } else { // 投注者数目 if (po.PrizeBettings != null) { rentity.BettingCount = po.PrizeBettings.Where(pb => !pb.IsDeleted).Count(); } // 白名单数目 if (po.WhiteLists != null) { rentity.BettingCount = rentity.BettingCount + po.WhiteLists.Where(wl => !wl.IsDeleted).Count(); } } return(rentity); }