/// <summary> /// 直接在这一步产生出一个中奖纪录 /// </summary> public void GetAward(Activity_Relay relay) { //通过微信userid来判断是否存在中奖纪录 var isExist = RelayQuery.ExistAwardUserByWeixinUserId(SessionHelp.UserData.WeixinUserId); if (!isExist) //不存在中奖用户的记录 { if (Award()) { Activity_Awards award = RelayQuery.GetActivity_Awards(); if (award != null) { Activity_AwardUser awardUser = RelayQuery.GetActivity_AwardUser(relay.Id); if (awardUser == null) { //这里只需要添加纪录即可,不需要wincode var obj = new Activity_AwardUser { winCode = "", isAward = false, //表示未提交用户信息 addTime = DateTime.Now, relayId = relay.Id, awardId = award.Id }; RelayQuery.AddActivity_AwardUser(obj); IsAward = true; } } } } }
public static double GetBaifenbi(Activity_Relay relay) { var baifenbi = (double)0; var alllist = GetPaihang(int.MaxValue).Select(s => s.Id).ToList(); var result = alllist.IndexOf(relay.Id) + 1; int beforeme = result - 1; //成绩在我前面的 int sum = alllist.Count; //所有的总成绩 if (beforeme == 0) { baifenbi = 100.0; } else { var num = Math.Round(beforeme / (double)sum, 3); //预防 .0000001这种情况 if (num == 0.0) { baifenbi = .999; } else { baifenbi = 1 - num; } baifenbi = baifenbi * 100; } return baifenbi; }
public static Activity_Relay AddRelay(Activity_Relay relay) { ipowdb_suibian_webDataContext db = ConnHelper.ipowdb_suibian_web(); db.Activity_Relay.InsertOnSubmit(relay); db.SubmitChanges(); return relay; }
protected void Page_Load(object sender, EventArgs e) { string relayId = Request.QueryString[Parameters.relay]; if (string.IsNullOrEmpty(relayId)) { Response.Redirect404(Request.Url.ToString()); } #region Activity_Relay relay = RelayQuery.GetRelay(Convert.ToInt32(relayId)); if (relay != null) { SessionHelp.CycleId = relay.CycleId; Relay = relay; } else { Response.Redirect404(Request.Url.ToString()); } #endregion InitProperty(); }
private void AddHelpSession(Activity_Relay relay) { SessionHelp.UserChengji = new UserChengji { IsHelp = true, RelayId = relay.Id, }; }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string relayId = Request.QueryString[Parameters.relay]; if (string.IsNullOrEmpty(relayId)) { Response.Redirect404(Request.Url.ToString()); } #region Activity_Relay relay = RelayQuery.GetRelay(Convert.ToInt32(relayId)); if (relay != null) { SessionHelp.CycleId = relay.CycleId; Relay = relay; } else { Response.Redirect404(Request.Url.ToString()); } #endregion InitProperty(); InitAwardTip(); #region 获取中间显示的内容 Content = GetContent(); ChengjiTip = GetChengjiTip(); #endregion } }
private int AddDb() { UserChengji userChengji = SessionHelp.UserChengji; UserData userData = SessionHelp.UserData; try { if (userChengji.IsHelp) //根据IsHelp选择插入到那个数据库中 { var subrelay = new Activity_SubRelay { AddTime = DateTime.Now, ClickNum = userChengji.ClickNum, RelayId = userChengji.RelayId, Score = userChengji.Score, WeixinUserId = userData.WeixinUserId, }; RelayQuery.AddSubRelay(subrelay); return userChengji.RelayId; } else { var relay = new Activity_Relay { AddTime = DateTime.Now, ClickNum = userChengji.ClickNum, Score = userChengji.Score, SumScore = userChengji.Score, WeixinUserId = userData.WeixinUserId, CycleId = SessionHelp.CycleId, SponsorId = SessionHelp.SponsorId == 0 ? null : SessionHelp.SponsorId, EditTime = DateTime.Now }; RelayQuery.AddRelay(relay); return relay.Id; } } finally //不论失败与否,都是添加成功,然后第二次不能再添加 { userChengji.IsAddedToDb = true; } }
public static int GetMingci(Activity_Relay relay) { var alllist = GetPaihang(int.MaxValue).Select(s => s.Id).ToList(); var result = alllist.IndexOf(relay.Id) + 1; return result; }
/// <summary> /// 如果数据超过4个,取时间(正序先来先得)排序的前4条 /// 某个特定活动中分享的好友集合 /// </summary> /// <param name="relay"></param> /// <returns></returns> public static List<Help> GetHelps(Activity_Relay relay) { var result = new List<Help>(); result.Add(new Help { HeadUrl = relay.WeixinUser.Headimgurl, Score = relay.Score, WeixinUserid = relay.WeixinUserId }); List<Activity_SubRelay> list = relay.Activity_SubRelay.OrderBy(s => s.AddTime).ToList(); //按照先来后到的顺序来排列成绩 if (list.Count > 4) { list = list.Take(ActivityConfig.MHalloweenTotalPerson - 1).ToList(); //这个MHalloweenTotalPerson包括了自己,所以字表中减去1; //需要更新下主表的SumScore,并删除多余的subrelay数据 #region 在获取有误的情况下,及时的更正的了信息, double sumScore = list.Sum(s => s.Score); UpdateRelaySumScore(relay.Id, sumScore); List<Activity_SubRelay> delList = relay.Activity_SubRelay.OrderByDescending(s => s.AddTime).ToList(); int length = delList.Count; int takeNum = length - (ActivityConfig.MHalloweenTotalPerson - 1); //留下后面几条,前面的都是多余的 delList = delList.Take(takeNum).ToList(); DeleteSubRelay(delList); #endregion } foreach (Activity_SubRelay item in list) { result.Add(new Help { HeadUrl = item.WeixinUser.Headimgurl ?? "", Score = item.Score, WeixinUserid = item.WeixinUserId }); } return result; }
/// <summary> /// 判断某个微信用户能否帮忙 /// </summary> /// <param name="weixinUserId">需要验证的用户的openId</param> /// <param name="relay">某个活动的Id</param> /// <returns>true表示能帮忙</returns> public static bool GetCanHelp(int weixinUserId, Activity_Relay relay) { bool result = true; List<int> helpedlist = GetHelps(relay.WeixinUserId); if (helpedlist.Contains(weixinUserId)) { result = false; } helpedlist = null; return result; }