예제 #1
0
        /// <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;
                        }
                    }
                }

            }
        }
예제 #2
0
 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;
 }
예제 #3
0
 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;
 }
예제 #4
0
        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();
        }
예제 #5
0
 private void AddHelpSession(Activity_Relay relay)
 {
     SessionHelp.UserChengji = new UserChengji
     {
         IsHelp = true,
         RelayId = relay.Id,
     };
 }
예제 #6
0
        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
            }
        }
예제 #7
0
        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;
            }
        }
예제 #8
0
 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;
 }
예제 #9
0
        /// <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;
        }
예제 #10
0
 /// <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;
 }