投票活动--投票记录表
Example #1
0
        /// <summary>
        /// 作弊投票
        /// </summary>
        /// <param name="model"></param>
        /// <param name="number"></param>
        /// <returns></returns>
        public int AddVoteLog(VoteLogModel model, int number)
        {
            const string sql = @"INSERT INTO activity_vote_log (innerid, activityid, perid, ip, openid, invalid, createdtime, modifiedtime) VALUES (@innerid, @activityid, @perid, @ip, @openid, 0, @createdtime, @modifiedtime);";
            using (var conn = Helper.GetConnection())
            {
                var result = 0;
                try
                {
                    for (var i = 0; i < number; i++)
                    {
                        result = conn.Execute(sql, new
                        {
                            innerid = Guid.NewGuid().ToString(),
                            activityid = model.Activityid,
                            perid = model.Perid,
                            ip = model.IP,
                            openid = model.Openid,
                            invalid = 0, //默认有效
                            createdtime = model.Createdtime
                        });
                    }
                }
                catch (Exception ex)
                {
                    LoggerFactories.CreateLogger().Write("投票异常:", TraceEventType.Error, ex);
                    result = 0;
                }

                return result;
            }
        }
Example #2
0
        /// <summary>
        /// 投票
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public int AddVoteLog(VoteLogModel model)
        {
            const string sql = @"INSERT INTO activity_vote_log (innerid, activityid, perid, ip, openid, invalid, createdtime, modifiedtime) VALUES (@innerid, @activityid, @perid, @ip, @openid, 0, @createdtime, @modifiedtime);";
            using (var conn = Helper.GetConnection())
            {
                int result;
                try
                {
                    var voteModel =
                        conn.Query<VoteModel>(
                            "SELECT votestarttime, voteendtime FROM activity_vote_info where innerid=@innerid;",
                            new { innerid = model.Activityid }).FirstOrDefault();

                    var nowTime = DateTime.Now;
                    if (nowTime > voteModel?.Voteendtime || nowTime < voteModel?.Votestarttime)
                    {
                        return -1;   //不在时间范围内
                    }

                    var loglist =
                        conn.Query<VoteLogModel>("select perid from activity_vote_log where activityid=@activityid and openid=@openid;",
                            new { activityid = model.Activityid, openid = model.Openid}).ToList();

                    var votenum = ConfigHelper.GetAppSettings("votenum");
                    var num = 1;

                    if (!string.IsNullOrWhiteSpace(votenum))
                    {
                        int.TryParse(votenum, out num);
                    }

                    if (loglist.Count >= num)
                    {
                        return -2;  //1次机会用完
                    }

                    if (loglist.Any(x => x.Perid == model.Perid))
                    {
                        return -3;  //不能重复投同一个人
                    }

                    result = conn.Execute(sql, model);
                }
                catch (Exception ex)
                {
                    LoggerFactories.CreateLogger().Write("投票异常:", TraceEventType.Error, ex);
                    result = 0;
                }

                return result;
            }
        }