public override bool CheckOverFlowBuyCount(int userID, InviteBuyInterval interval, int canBuyCount) { if (interval == InviteBuyInterval.Disable) { return(false); } using (SqlQuery query = new SqlQuery()) { DateTime beginTime = DateTimeUtil.Now, endTime = DateTimeUtil.Now; switch (interval) { case InviteBuyInterval.ByDay: beginTime = DateTimeUtil.Now.AddDays(-1); break; case InviteBuyInterval.ByHour: beginTime = DateTimeUtil.Now.AddHours(-1); break; case InviteBuyInterval.ByMonth: beginTime = DateTimeUtil.Now.AddMonths(-1); break; case InviteBuyInterval.ByYear: beginTime = DateTimeUtil.Now.AddYears(-1); break; } query.CreateParameter <int>("@UserID", userID, SqlDbType.Int); query.CreateParameter <DateTime>("@BeginTime", beginTime, SqlDbType.DateTime); query.CreateParameter <DateTime>("@EndTime", endTime, SqlDbType.DateTime); query.CreateParameter <int>("@BuyCount", canBuyCount, SqlDbType.Int); query.CommandText = "bx_CheckOverFlowBuyCount"; query.CommandType = CommandType.StoredProcedure; object result = null; result = query.ExecuteScalar(); if (result == null) { return(false); } if (Convert.ToInt32(result) == 0) { return(false); } else { return(true); } } }
public override int GetBuyCountOfTimeSpan(int userID, InviteBuyInterval interval) { if (interval == InviteBuyInterval.Disable) { return(-1); } using (SqlQuery query = new SqlQuery()) { DateTime beginTime = DateTimeUtil.Now, endTime = DateTimeUtil.Now; switch (interval) { case InviteBuyInterval.ByDay: beginTime = DateTimeUtil.Now.AddDays(-1); break; case InviteBuyInterval.ByHour: beginTime = DateTimeUtil.Now.AddHours(-1); break; case InviteBuyInterval.ByMonth: beginTime = DateTimeUtil.Now.AddMonths(-1); break; case InviteBuyInterval.ByYear: beginTime = DateTimeUtil.Now.AddYears(-1); break; } query.CreateParameter <int>("@UserID", userID, SqlDbType.Int); query.CreateParameter <DateTime>("@BeginTime", beginTime, SqlDbType.DateTime); query.CreateParameter <DateTime>("@EndTime", endTime, SqlDbType.DateTime); query.CommandText = "SELECT COUNT(*) FROM bx_InviteSerials WHERE UserID = @UserID AND CreateDate BETWEEN @BeginTime AND @EndTime"; object result = null; result = query.ExecuteScalar(); if (result == null) { return(0); } return(Convert.ToInt32(result)); } }
public override bool CheckOverFlowBuyCount(int userID, InviteBuyInterval interval, int canBuyCount) { if (interval == InviteBuyInterval.Disable) return false; using (SqlQuery query = new SqlQuery()) { DateTime beginTime = DateTimeUtil.Now, endTime = DateTimeUtil.Now; switch (interval) { case InviteBuyInterval.ByDay: beginTime = DateTimeUtil.Now.AddDays(-1); break; case InviteBuyInterval.ByHour: beginTime = DateTimeUtil.Now.AddHours(-1); break; case InviteBuyInterval.ByMonth: beginTime = DateTimeUtil.Now.AddMonths(-1); break; case InviteBuyInterval.ByYear: beginTime = DateTimeUtil.Now.AddYears(-1); break; } query.CreateParameter<int>("@UserID", userID, SqlDbType.Int); query.CreateParameter<DateTime>("@BeginTime", beginTime, SqlDbType.DateTime); query.CreateParameter<DateTime>("@EndTime", endTime, SqlDbType.DateTime); query.CreateParameter<int>("@BuyCount", canBuyCount, SqlDbType.Int); query.CommandText = "bx_CheckOverFlowBuyCount"; query.CommandType = CommandType.StoredProcedure; object result = null; result = query.ExecuteScalar(); if (result == null) return false; if (Convert.ToInt32(result) == 0) return false; else return true; } }
/// <summary> /// 检查用户购买邀请码的数量是否超出系统设置值 /// </summary> /// <param name="interval">当前的购买间隔限制</param> /// <param name="canBuyCount">最多能购买的数量</param> /// <returns></returns> public abstract bool CheckOverFlowBuyCount(int userID, InviteBuyInterval interval, int canBuyCount);
public abstract int GetBuyCountOfTimeSpan(int userID, InviteBuyInterval interval);
public InviteSerialBuyOverflow(int canBuyCount, InviteBuyInterval interval) { _canBuyCount = canBuyCount; _interval = interval; }
public override int GetBuyCountOfTimeSpan(int userID, InviteBuyInterval interval) { if (interval == InviteBuyInterval.Disable) return -1; using (SqlQuery query = new SqlQuery()) { DateTime beginTime = DateTimeUtil.Now, endTime = DateTimeUtil.Now; switch (interval) { case InviteBuyInterval.ByDay: beginTime = DateTimeUtil.Now.AddDays(-1); break; case InviteBuyInterval.ByHour: beginTime = DateTimeUtil.Now.AddHours(-1); break; case InviteBuyInterval.ByMonth: beginTime = DateTimeUtil.Now.AddMonths(-1); break; case InviteBuyInterval.ByYear: beginTime = DateTimeUtil.Now.AddYears(-1); break; } query.CreateParameter<int>("@UserID", userID, SqlDbType.Int); query.CreateParameter<DateTime>("@BeginTime", beginTime, SqlDbType.DateTime); query.CreateParameter<DateTime>("@EndTime", endTime, SqlDbType.DateTime); query.CommandText = "SELECT COUNT(*) FROM bx_InviteSerials WHERE UserID = @UserID AND CreateDate BETWEEN @BeginTime AND @EndTime"; object result = null; result = query.ExecuteScalar(); if (result == null) return 0; return Convert.ToInt32(result); } }