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"); } }
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"); } }