Exemplo n.º 1
0
        public string IsDrawRed(dynamic requestData)
        {
            try
            {
                //DateTime beginTime = DateTime.Parse("2018-02-07 10:00");
                //DateTime EndTime = DateTime.Parse("2018-02-07 23:59");
                DateTime dayNow = DateTime.Now;
                if (dayNow < beginTime || dayNow >= EndTime)
                {
                    return("No");
                }
                HomeTastePacket redPacket = JsonConvert.DeserializeObject <HomeTastePacket>(JsonConvert.SerializeObject(requestData));

                var q = (from v in db.HomeTastePacket
                         where v.OpenId == redPacket.OpenId
                         select v).FirstOrDefault();
                if (q == null)
                {
                    return("OK");
                }
                else
                {
                    return("No");
                }
            }
            catch (Exception)
            {
                return("No");
            }
        }
Exemplo n.º 2
0
        public string AddRedPacket(dynamic requestData)
        {
            try
            {
                // 随机红包数
                int red = 0;
                //随机数范围
                int randomMax = 1001;
                int randomMin = 100;
                //总红包数
                int totalRed = 200000;


                //DateTime beginTime = DateTime.Parse("2018-02-07 10:00");
                //DateTime EndTime = DateTime.Parse("2018-02-07 23:59");
                DateTime dayNow = DateTime.Now;
                if (dayNow < beginTime || dayNow >= EndTime)
                {
                    return("0");
                }



                var sql       = "  select sum(RedPacket) as sumRedPacket from [dbo].[HomeTastePacket]";
                var dataTable = dataContext.ExecuteDataTable(CommandType.Text, sql);

                Thread.Sleep(400);
                //总积分
                int CountRed = 0;
                var dd       = JsonConvert.SerializeObject(dataTable.Rows[0][0]);
                if (dd != "null")
                {
                    CountRed = Convert.ToInt32(dd);
                }

                if (CountRed - randomMin > totalRed)
                {
                    return("-1");
                }

                lock (olock)
                {
                    red = rand.Next(randomMin, randomMax);

                    //防止数据大于总红包
                    if (CountRed + red >= totalRed)
                    {
                        red = totalRed - CountRed;
                    }


                    HomeTastePacket redPacket = JsonConvert.DeserializeObject <HomeTastePacket>(JsonConvert.SerializeObject(requestData));

                    //首先判断是否抽过随机红包
                    var q = (from v in db.HomeTastePacket
                             where v.OpenId == redPacket.OpenId && v.MemberId == redPacket.MemberId
                             select v).FirstOrDefault();

                    Thread.Sleep(400);
                    if (q == null)
                    {
                        redPacket.RedPacket = red;
                        db.HomeTastePacket.Add(redPacket);
                        db.SaveChanges();
                        return(red.ToString());
                    }
                    return("-2");
                }
            }
            catch (Exception)
            {
                return("-3");
            }
        }