using System; using System.Collections.Generic; using System.Threading; using System.Linq; using System.Data; using MySystem; using MySystem.PxcModels; using Library; public class RedPackageHelper { public readonly static RedPackageHelper Instance = new RedPackageHelper(); private RedPackageHelper() { } public void Start() { Thread th = new Thread(DoWorks); th.IsBackground = true; th.Start(); } private void DoWorks() { while (true) { if (DateTime.Now.Hour >= 3 && DateTime.Now.Hour <= 5) { string ActivityDate = DateTime.Now.ToString("yyyyMMdd"); string check = function.ReadInstance("/Activity/RedPackage/" + ActivityDate + ".txt"); if (string.IsNullOrEmpty(check)) { function.WritePage("/Activity/RedPackage/", ActivityDate + ".txt", DateTime.Now.ToString()); function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "生成指定未领取红包日志"); WebCMSEntities db = new WebCMSEntities(); try { decimal TotalPrize = 888.88M; DateTime start = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 22:00:00"); DateTime today = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00"); string PreDate = DateTime.Now.AddDays(-1).ToString("yyyyMMdd"); List list = new List(); list.Add(88.88M); TotalPrize -= 88.88M; for (int i = 1; i < 300; i++) { list.Add(0.88M); TotalPrize -= 0.88M; } for (int i = 0; i < 100; i++) { if (TotalPrize > 0) { int BigPrize = function.get_Random(1, 300); decimal PrizeAmt = function.get_Random(88, 4000) / 100; if (TotalPrize > PrizeAmt) { list[BigPrize] += PrizeAmt; TotalPrize -= PrizeAmt; } else { list[BigPrize] += TotalPrize; TotalPrize = 0; } } else { break; } } foreach (decimal PrizeAmt in list) { db.ActivityRedPackageStock.Add(new ActivityRedPackageStock() { CreateDate = DateTime.Now, PrizeAmt = PrizeAmt, ActivityDate = ActivityDate, }); } db.SaveChanges(); } catch (Exception ex) { function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "生成指定未领取红包异常"); } db.Dispose(); function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "生成指定未领取红包日志"); } } Thread.Sleep(60000); } } }