public ActionResult Index(TurnProc TurnProc, EFPagingInfo <TurnProc> p)
        {
            if (!TurnProc.TId.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.TId == TurnProc.TId);
            }
            if (!TurnProc.Name.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.Name.Contains(TurnProc.Name));
            }
            if (!TurnProc.Num.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.Num == TurnProc.Num);
            }
            if (!TurnProc.UNum.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.UNum == TurnProc.UNum);
            }
            p.OrderByList.Add("Id", "ASC");
            IPageOfItems <TurnProc> TurnProcList = Entity.Selects <TurnProc>(p);

            ViewBag.TurnProcList = TurnProcList;
            ViewBag.TurnProc     = TurnProc;
            ViewBag.Add          = this.checkPower("Add");
            ViewBag.Delete       = this.checkPower("Delete");
            ViewBag.Save         = this.checkPower("Save");
            return(View());
        }
        public void Save(TurnProc TurnProc)
        {
            TurnProc baseTurnProc = Entity.TurnProc.FirstOrDefault(n => n.Id == TurnProc.Id);

            baseTurnProc = Request.ConvertRequestToModel <TurnProc>(baseTurnProc, TurnProc);
            Entity.SaveChanges();
            BaseRedirect();
        }
        public void Delete(TurnProc TurnProc, string InfoList, int?IsDel)
        {
            if (string.IsNullOrEmpty(InfoList))
            {
                InfoList = TurnProc.Id.ToString();
            }
            int Ret = Entity.MoveToDeleteEntity <TurnProc>(InfoList, IsDel, AdminUser.UserName);

            Entity.SaveChanges();
            Response.Write(Ret);
        }
        public void ChangeStatus(TurnProc TurnProc, string InfoList, string Clomn, string Value)
        {
            if (string.IsNullOrEmpty(InfoList))
            {
                InfoList = TurnProc.Id.ToString();
            }
            int Ret = Entity.ChangeEntity <TurnProc>(InfoList, Clomn, Value);

            Entity.SaveChanges();
            Response.Write(Ret);
        }
 public ActionResult Edit(TurnProc TurnProc)
 {
     if (TurnProc.Id != 0)
     {
         TurnProc = Entity.TurnProc.FirstOrDefault(n => n.Id == TurnProc.Id);
     }
     if (TurnProc == null)
     {
         ViewBag.ErrorMsg = "数据不存在";
         return(View("Error"));
     }
     ViewBag.TurnProc = TurnProc;
     if (Request.UrlReferrer != null)
     {
         Session["Url"] = Request.UrlReferrer.ToString();
     }
     return(View());
 }
 public void Add(TurnProc TurnProc)
 {
     Entity.TurnProc.AddObject(TurnProc);
     Entity.SaveChanges();
     BaseRedirect();
 }
        public void Ajax(int TId)
        {
            try
            {
                System.Web.HttpContext.Current.Response.AddHeader("content-type", "application/json");
            }
            catch (Exception) { }
            Turntable Turntable = Entity.Turntable.FirstOrDefault(n => n.Id == TId);

            #region 活动状态
            if (Turntable == null)
            {
                Response.Write("{\"index\":\"-1\",\"state\":\"99\",\"times\":\"0\"}");
                return;
            }
            if (Turntable.State == 2)
            {//活动结束
                Response.Write("{\"index\":\"-1\",\"state\":\"3\",\"times\":\"0\"}");
                return;
            }
            if (Turntable.State != 1)
            {//状态异常
                Response.Write("{\"index\":\"-1\",\"state\":\"99\",\"times\":\"0\"}");
                return;
            }
            if (Turntable.STime > DateTime.Now)
            {//未开始
                Response.Write("{\"index\":\"-1\",\"state\":\"4\",\"times\":\"0\"}");
                return;
            }
            if (Turntable.ETime < DateTime.Now)
            {//已结束
                Response.Write("{\"index\":\"-1\",\"state\":\"3\",\"times\":\"0\"}");
                return;
            }
            #endregion
            if (BasicUsers.Id.IsNullOrEmpty())
            {//未登录
                Response.Write("{\"index\":\"-1\",\"state\":\"2\",\"times\":\"0\"}");
                return;
            }
            TurnUsers TurnUsers = Entity.TurnUsers.FirstOrDefault(n => n.UId == BasicUsers.Id);
            if (TurnUsers.Times == 0)
            {
                Response.Write("{\"index\":\"-1\",\"state\":\"1\",\"times\":\"0\"}");
                return;
            }
            //抽奖开始
            //获取奖品列表
            IList <TurnProc> List = Entity.TurnProc.Where(n => n.TId == TId).OrderBy(n => n.Id).ToList();
            int i = 1; int num = Turntable.BaseNum;
            int stnum = 0;
            foreach (var p in List)
            {//生成范围
                p.Index = i;
                num     = num - (p.Num - p.UNum);
                p.StNum = stnum;                    //不含
                p.EnNum = stnum + (p.Num - p.UNum); //含
                stnum   = p.EnNum;
                i++;
            }
            //添加谢谢参与项
            TurnProc Temp = new TurnProc();
            Temp.Id     = 0;
            Temp.TId    = 0;
            Temp.Name   = "谢谢参与";
            Temp.Amoney = 0;
            Temp.Num    = num;
            Temp.UNum   = 0;
            Temp.Index  = i;
            Temp.StNum  = stnum;
            Temp.EnNum  = stnum + num;
            List.Add(Temp);
            //生成随机数
            Random R   = new Random();
            int    Ran = R.Next(1, Turntable.BaseNum);
            //读取对应奖项
            TurnProc TurnProc = List.FirstOrDefault(n => n.StNum < Ran && n.EnNum >= Ran);
            if (TurnProc == null)
            {
                TurnProc = List.FirstOrNew(n => n.Id == 0);
            }
            //这里可以加一条规则,中奖超过多少次以后不再中奖~~
            TurnUsers.Times--;     //抽奖次数减少
            TurnUsers.UsedTimes++; //抽奖资料增加
            if (TurnProc.Id == 0)
            {                      //未中奖处理
            }
            else
            {                        //中奖处理
                TurnUsers.InTimes++; //中奖资料增加
                TurnProc.UNum++;     //奖品送出数量增加
            }
            //添加抽奖记录
            TurnLog TurnLog = new TurnLog();
            TurnLog.UId     = BasicUsers.Id;
            TurnLog.TId     = Turntable.Id;
            TurnLog.TPId    = TurnProc.Id;
            TurnLog.Name    = TurnProc.Name;
            TurnLog.Amoney  = TurnProc.Amoney;
            TurnLog.Num     = 1;
            TurnLog.State   = 1;
            TurnLog.AddTime = DateTime.Now;
            Entity.TurnLog.AddObject(TurnLog);
            Entity.SaveChanges();
            Response.Write("{\"index\":\"" + TurnProc.Index + "\",\"state\":\"0\",\"times\":\"" + TurnUsers.Times + "\",\"log\":\"" + TurnLog.Id + "\"}");
        }