Example #1
0
        public ActionResult Drawing()
        {
            ViewBag.Title = "开奖";
            ViewBag.Title2 = "开奖";
            ViewBag.Page = "开奖";

            try
            {
                var current = new DBC.Screening(DateTime.Now);
                ViewBag.current = current;
            }
            catch { }

            var list = new List<DBC.Screening>();
            {
                var now = DateTime.Now;
                var dayBegin = new DateTime(now.Year, now.Month, now.Day, 0, 0, 0);
                var dayEnd = dayBegin.AddDays(1);
                var sql = string.Format("select id from {0} where start>? and start<? and result!=? order by id desc", DBTables.Screening);
                var res = DB.SExecuteReader(sql, dayBegin, dayEnd, Enums.Fruits.None);
                foreach (var item in res)
                {
                    var id = Convert.ToInt32(item[0]);
                    var s = new DBC.Screening(id);
                    list.Add(s);
                }
            }            
            ViewBag.list = list;

            return View();
        }
Example #2
0
        public ActionResult BettingAdd(uint orange, uint banana, uint grape, uint pineapple, uint strawberry, uint watermenon)
        {
            var now = DateTime.Now;

            try
            {
                var screening = new DBC.Screening(now);
                var diff      = screening.End - now;
                if (diff.TotalSeconds <= 30)
                {
                    return(Content("开奖前30秒禁止投注"));
                }
                else
                {
                    var user  = Session["user"] as DBC.User;
                    var total = orange + banana + grape + watermenon + strawberry + pineapple;
                    if (total == 0)
                    {
                        return(Content("总投注额不能为0"));
                    }

                    DBC.Betting.Create(orange, banana, grape, watermenon, strawberry, pineapple, total, screening.ID, user.ID);
                }
                return(Redirect("~/home/betting"));
            }
            catch
            {
                return(Content("还没有到竞猜时间"));
            }
        }
Example #3
0
        public ActionResult Betting(uint orange = 0, uint banana = 0, uint grape = 0, uint strawberry = 0, uint pineapple = 0,  uint watermelon = 0)
        {
            var user = GetCurrentUser();
            if (user == null)
                return HttpNotFound();

            var now=DateTime.Now;

            DBC.Screening screening=null;
            try
            {
                screening = new DBC.Screening(now);
            }
            catch
            {
                return Content("还没有到投注时间");
            }
            var diff=screening.End-now;
            if (diff.TotalSeconds <= 30)
            {
                return Content("开奖前30秒不能再投注");
            }

            var total = orange + banana + grape + strawberry + pineapple + watermelon;
            if (total == 0)
                return Content("总投注额不能为0");

            if(user.Points<total)
                return Content("积分不足,请先充值");

            user.Points -= total;
            DBC.Betting.Create(orange, banana, grape, watermelon, strawberry, pineapple, total,screening.ID,user.ID);

            return Content("ok");
        }
Example #4
0
        void GetScreeningsList()
        {
            var list = new List <DBC.Screening>();
            var sql  = string.Format("select id from {0} where start>? and end<?", DBTables.Screening);
            var res  = DB.SExecuteReader(sql, DateTime.Today, DateTime.Now);

            foreach (var item in res)
            {
                var id = Convert.ToInt32(item[0]);
                var s  = new DBC.Screening(id);
                list.Add(s);
            }
            ViewBag.screeningsList = list;
        }
Example #5
0
        public ActionResult Betting(uint orange = 0, uint banana = 0, uint grape = 0, uint strawberry = 0, uint pineapple = 0, uint watermelon = 0)
        {
            var user = GetCurrentUser();

            if (user == null)
            {
                return(HttpNotFound());
            }

            var now = DateTime.Now;

            DBC.Screening screening = null;
            try
            {
                screening = new DBC.Screening(now);
            }
            catch
            {
                return(Content("还没有到投注时间"));
            }
            var diff = screening.End - now;

            if (diff.TotalSeconds <= 30)
            {
                return(Content("开奖前30秒不能再投注"));
            }

            var total = orange + banana + grape + strawberry + pineapple + watermelon;

            if (total == 0)
            {
                return(Content("总投注额不能为0"));
            }

            if (user.Points < total)
            {
                return(Content("积分不足,请先充值"));
            }

            user.Points -= total;
            DBC.Betting.Create(orange, banana, grape, watermelon, strawberry, pineapple, total, screening.ID, user.ID);

            return(Content("ok"));
        }
Example #6
0
        static void SetResult(DateTime now)
        {
            try
            {
                var screening = new DBC.Screening(now);
                //看看有没有预设当场结果
                if (screening.Preset != Enums.Fruits.None)
                {
                    screening.Result = screening.Preset;
                }
                //统计当场各种水果的数量
                else
                {
                    var list = new List<FruitCount>();
                    var sql = string.Format("select sum(orange),sum(banana),sum(grape),sum(pineapple),sum(strawberry),sum(watermelon) from {0} where screeningid=?", DBTables.Betting);
                    var res = DB.SExecuteReader(sql, screening.ID);
                    var row = res[0];
                    list.Add(new FruitCount() { Fruit = Enums.Fruits.Orange, Count = Utility.ToInt32(row[0]) });
                    list.Add(new FruitCount() { Fruit = Enums.Fruits.Banana, Count = Utility.ToInt32(row[1]) });
                    list.Add(new FruitCount() { Fruit = Enums.Fruits.Grape, Count = Utility.ToInt32(row[2]) });
                    list.Add(new FruitCount() { Fruit = Enums.Fruits.Pineapple, Count = Utility.ToInt32(row[3]) });
                    list.Add(new FruitCount() { Fruit = Enums.Fruits.Strawberry, Count = Utility.ToInt32(row[4]) });
                    list.Add(new FruitCount() { Fruit = Enums.Fruits.Watermelon, Count = Utility.ToInt32(row[5]) });

                    var min= list.Min(i => i.Count);
                    var same=list.Where(i => i.Count == min).ToList();
                    var rand = new Random();
                    screening.Result = same[rand.Next(same.Count)].Fruit;
                }

                //更新投注记录中的中奖额
                {
                    var sql = string.Format("update {0} set winning={1}*5 where screeningid=?", DBTables.Betting,screening.Result.ToString());
                    DB.SExecuteNonQuery(sql, screening.ID);
                }

                //更新中奖用户积分
                {
                    var sql = string.Format("update (select userid, winning from {0},{1} where screeningid=? and user.id=userid and user.role=?) as w, {0},user set points=points+w.winning where w.userid=user.id;", DBTables.Betting,DBTables.User);
                    DB.SExecuteNonQuery(sql,screening.ID, Enums.Roles.Normal);
                }
            }
            catch { }
        }
Example #7
0
        List <object> GetBettingOverviewList(List <DBC.Betting> bettingList)
        {
            var list = new List <object>();

            foreach (var betting in bettingList)
            {
                try
                {
                    var s      = new DBC.Screening(betting.ScreeningID);
                    var result = s.Result;

                    dynamic o = new System.Dynamic.ExpandoObject();
                    o.betting = betting;
                    o.result  = result;
                    list.Add(o);
                }
                catch { }
            }

            return(list);
        }
Example #8
0
        public ActionResult BettingAdd(uint orange, uint banana, uint grape, uint pineapple, uint strawberry, uint watermenon)
        {
            var now = DateTime.Now;

            try
            {
                var screening = new DBC.Screening(now);
                var diff      = screening.End - now;
                if (diff.TotalSeconds <= 30)
                {
                    return(Content("开奖前30秒禁止投注"));
                }
                else
                {
                    var current = GetCurrentUser();
                    var total   = orange + banana + grape + watermenon + strawberry + pineapple;
                    if (total == 0)
                    {
                        return(Content("总投注额不能为0"));
                    }

                    if (current.Points < total)
                    {
                        return(Content("积分不足,请充值"));
                    }

                    current.Points = current.Points - total;
                    DBC.Betting.Create(orange, banana, grape, watermenon, strawberry, pineapple, total, screening.ID, current.ID);
                }
                return(Redirect("~/home/betting"));
            }
            catch
            {
                return(Content("还没有到竞猜时间"));
            }
        }
Example #9
0
        List<object> GetBettingOverviewList(List<DBC.Betting> bettingList)
        {
            var list = new List<object>();

            foreach (var betting in bettingList)
            {
                try
                {
                    var s = new DBC.Screening(betting.ScreeningID);
                    var result = s.Result;

                    dynamic o = new System.Dynamic.ExpandoObject();
                    o.betting = betting;
                    o.result = result;
                    list.Add(o);
                }
                catch { }
            }

            return list;
        }
Example #10
0
        public ActionResult BettingAdd(uint orange, uint banana, uint grape, uint pineapple, uint strawberry, uint watermenon)
        {
            var now = DateTime.Now;
            try
            {
                var screening = new DBC.Screening(now);
                var diff = screening.End - now;
                if (diff.TotalSeconds <= 30)
                {
                    return Content("开奖前30秒禁止投注");
                }
                else
                {
                    var user = Session["user"] as DBC.User;
                    var total = orange + banana + grape + watermenon + strawberry + pineapple;
                    if (total == 0)
                        return Content("总投注额不能为0");

                    DBC.Betting.Create(orange, banana, grape, watermenon, strawberry, pineapple, total, screening.ID, user.ID);
                }
                return Redirect("~/home/betting");

            }
            catch
            {
                return Content("还没有到竞猜时间");
            }
        }
Example #11
0
        static void SetResult(DateTime now)
        {
            try
            {
                var screening = new DBC.Screening(now);
                //看看有没有预设当场结果
                if (screening.Preset != Enums.Fruits.None)
                {
                    screening.Result = screening.Preset;
                }
                //统计当场各种水果的数量
                else
                {
                    var list = new List <FruitCount>();
                    var sql  = string.Format("select sum(orange),sum(banana),sum(grape),sum(pineapple),sum(strawberry),sum(watermelon) from {0} where screeningid=?", DBTables.Betting);
                    var res  = DB.SExecuteReader(sql, screening.ID);
                    var row  = res[0];
                    list.Add(new FruitCount()
                    {
                        Fruit = Enums.Fruits.Orange, Count = Utility.ToInt32(row[0])
                    });
                    list.Add(new FruitCount()
                    {
                        Fruit = Enums.Fruits.Banana, Count = Utility.ToInt32(row[1])
                    });
                    list.Add(new FruitCount()
                    {
                        Fruit = Enums.Fruits.Grape, Count = Utility.ToInt32(row[2])
                    });
                    list.Add(new FruitCount()
                    {
                        Fruit = Enums.Fruits.Pineapple, Count = Utility.ToInt32(row[3])
                    });
                    list.Add(new FruitCount()
                    {
                        Fruit = Enums.Fruits.Strawberry, Count = Utility.ToInt32(row[4])
                    });
                    list.Add(new FruitCount()
                    {
                        Fruit = Enums.Fruits.Watermelon, Count = Utility.ToInt32(row[5])
                    });

                    var min  = list.Min(i => i.Count);
                    var same = list.Where(i => i.Count == min).ToList();
                    var rand = new Random();
                    screening.Result = same[rand.Next(same.Count)].Fruit;
                }

                //更新投注记录中的中奖额
                {
                    var sql = string.Format("update {0} set winning={1}*5 where screeningid=?", DBTables.Betting, screening.Result.ToString());
                    DB.SExecuteNonQuery(sql, screening.ID);
                }

                //更新中奖用户积分
                {
                    var sql = string.Format("update (select userid, winning from {0},{1} where screeningid=? and user.id=userid and user.role=?) as w, {0},user set points=points+w.winning where w.userid=user.id;", DBTables.Betting, DBTables.User);
                    DB.SExecuteNonQuery(sql, screening.ID, Enums.Roles.Normal);
                }
            }
            catch { }
        }
Example #12
0
 void GetScreeningsList()
 {
     var list = new List<DBC.Screening>();
     var sql = string.Format("select id from {0} where start>? and end<?", DBTables.Screening);
     var res = DB.SExecuteReader(sql, DateTime.Today, DateTime.Now);
     foreach (var item in res)
     {
         var id = Convert.ToInt32(item[0]);
         var s = new DBC.Screening(id);
         list.Add(s);
     }
     ViewBag.screeningsList = list;
 }
Example #13
0
        public ActionResult BettingAdd(uint orange, uint banana, uint grape, uint pineapple, uint strawberry, uint watermenon)
        {
            var now = DateTime.Now;
            try
            {
                var screening = new DBC.Screening(now);
                var diff = screening.End - now;
                if (diff.TotalSeconds <= 30)
                {
                    return Content("开奖前30秒禁止投注");
                }
                else
                {
                    var current = GetCurrentUser();
                    var total = orange + banana + grape + watermenon + strawberry + pineapple;
                    if (total == 0)
                        return Content("总投注额不能为0");

                    if (current.Points < total)
                        return Content("积分不足,请充值");

                    current.Points = current.Points- total;
                    DBC.Betting.Create(orange, banana, grape, watermenon, strawberry, pineapple, total, screening.ID, current.ID);
                }
                return Redirect("~/home/betting");

            }
            catch
            {
                return Content("还没有到竞猜时间");
            }
        }
Example #14
0
        public ActionResult Betting(int? userid, DateTime? beginDate,DateTime? endDate, int p = 0)
        {
            try
            {
                ViewBag.Title = "投注记录";
                ViewBag.Title2 = "投注记录";
                ViewBag.Page = "投注";
                
                if (beginDate == null)
                    beginDate = DateTime.Today.AddDays(-7);
                if (endDate == null)
                    endDate = DateTime.Today;

                var currentUser = Session["user"] as DBC.User;
                var pages = 1;
                var sqlCount = "";
                var sqlList = "";
                var sqlSum= "";
                var sqlCountArgs = new List<object>();
                var sqlListArgs = new List<object>();
                var sqlSumArgs = new List<object>();

                //查看指定用户(包括其下属帐号)的投注记录
                if (userid != null)
                {
                    var user = new DBC.User(userid.Value);
                    if (user.Parent != GetCurrentUser().ID)
                        throw new Exception("无权查看");

                    sqlCount = string.Format("select count(*) from {0},{1} where {0}.userid={1}.id and ({1}.id=? or {1}.parent=?) and time>? and time<?", DBTables.Betting, DBTables.User);
                    sqlCountArgs.Add(user.ID);
                    sqlCountArgs.Add(user.ID);
                    sqlCountArgs.Add(beginDate.Value);
                    sqlCountArgs.Add(endDate.Value.AddDays(1));

                    sqlList = string.Format("select {0}.id from {0},{1} where {0}.userid={1}.id and ({1}.id=? or {1}.parent=?) and time>? and time<? order by time desc limit ?,?", DBTables.Betting, DBTables.User);
                    sqlListArgs.Add(user.ID);
                    sqlListArgs.Add(user.ID);
                    sqlListArgs.Add(beginDate.Value);
                    sqlListArgs.Add(endDate.Value.AddDays(1));

                    sqlSum = string.Format("select sum(total),sum(winning) from {0},{1} where {0}.userid={1}.id and ({1}.id=? or {1}.parent=?) and time>? and time<?", DBTables.Betting, DBTables.User);
                    sqlSumArgs.Add(user.ID);
                    sqlSumArgs.Add(user.ID);
                    sqlSumArgs.Add(beginDate.Value);
                    sqlSumArgs.Add(endDate.Value.AddDays(1));
                }
                //查看全部投注记录
                else
                {
                    sqlCount = string.Format("select count(*) from {0} where time>? and time<?", DBTables.Betting);
                    sqlCountArgs.Add(beginDate.Value);
                    sqlCountArgs.Add(endDate.Value.AddDays(1));

                    sqlList = string.Format("select id from {0} where time>? and time<? order by time desc limit ?,?", DBTables.Betting);
                    sqlListArgs.Add(beginDate.Value);
                    sqlListArgs.Add(endDate.Value.AddDays(1));

                    sqlSum = string.Format("select sum(total),sum(winning) from {0} where time>? and time<?", DBTables.Betting);
                    sqlSumArgs.Add(beginDate.Value);
                    sqlSumArgs.Add(endDate.Value.AddDays(1));
                }

                //添加分页参数
                sqlListArgs.Add(p * _itemsPerPage);
                sqlListArgs.Add(_itemsPerPage);
                //获取总记录数
                var totalCount = Convert.ToInt32(DB.SExecuteScalar(sqlCount, sqlCountArgs.ToArray()));
                //计算分页数
                pages = (int)Math.Ceiling(totalCount * 1.0 / _itemsPerPage);
                //获取下注记录
                var res = DB.SExecuteReader(sqlList, sqlListArgs.ToArray());
                var list = new List<object>();
                foreach (var item in res)
                {
                    //数据记录不完整时跳过
                    try
                    {
                        var id = Convert.ToInt32(item[0]);
                        var b = new DBC.Betting(id);
                        var s = new DBC.Screening(b.ScreeningID);

                        var result = s.Result;

                        dynamic o = new System.Dynamic.ExpandoObject();
                        o.betting = b;
                        o.result = result;
                        list.Add(o);
                    }
                    catch { }
                }
                //获取总投注和总中奖
                var res2 = DB.SExecuteReader(sqlSum, sqlSumArgs.ToArray());
                var totalBetting = Utility.ToInt32(res2[0][0]);
                var totalWinning = Utility.ToInt32(res2[0][1]);

                //设置分页记录
                var pagination = new Pagination();
                pagination.Pages = pages;
                pagination.Current = p;
                pagination.BaseUrl = string.Format("/home/betting?userid={0}&beginDate={1}&endDate={2}", userid, beginDate.Value.ToString("yyyy-MM-dd"), endDate.Value.ToString("yyyy-MM-dd"));


                ViewBag.pagination = pagination;
                ViewBag.list = list;
                ViewBag.totalBetting = totalBetting;
                ViewBag.totalWinning = totalWinning;
                ViewBag.beginDate = beginDate.Value;
                ViewBag.endDate = endDate.Value;
                ViewBag.userid = userid;
            }
            catch
            {
                ViewBag.errorText = "未查询到任何记录";
            }

            return View();
        }
Example #15
0
 public ActionResult DrawingPreset(int id,Enums.Fruits preset)
 {
     var s = new DBC.Screening(id);
     s.Preset = preset;
     return Redirect("~/home/drawing");
 }