/// <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; } }
/// <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; } }