/// <summary> /// 根据新预约单更新活跃会员状态 /// </summary> private void UpdateMemberActivityDegreeByOrder(List <OrderUser> orders) { int ONE_ORDERNUMBER = 1; //三个月活跃会员需要预约单数 int THREE_ORDERNUMBER = 2; //六个月活跃会员需要预约单数 int SIX_ORDERNUMBER = 3; foreach (var item in orders) { MemberActivityDegreeInfo memberActivityDegree = new MemberActivityDegreeInfo() { OneMonth = false, OneMonthEffectiveTime = DateTime.Now.AddHours(-12).AddMonths(oneMonths), UserId = item.UserId }; var oneMonthsOrders = GetOneMonthsOrders(item.UserId, ONE_ORDERNUMBER); if (oneMonthsOrders != null && oneMonthsOrders.Count == 1) { memberActivityDegree.OneMonth = true; memberActivityDegree.ThreeMonthEffectiveTime = oneMonthsOrders.FirstOrDefault().PayDate.Value.AddMonths(oneMonths); } var threeMonthsOrders = GetThreeMonthsOrders(item.UserId, SIX_ORDERNUMBER); //三个月活跃会员激活 if (threeMonthsOrders.Count >= THREE_ORDERNUMBER) { memberActivityDegree.ThreeMonth = true; memberActivityDegree.ThreeMonthEffectiveTime = threeMonthsOrders[THREE_ORDERNUMBER - 1].PayDate.Value.AddMonths(threeMonths); } else { memberActivityDegree.ThreeMonth = false; } //六个月活跃会员 if (threeMonthsOrders.Count == SIX_ORDERNUMBER) { memberActivityDegree.SixMonth = true; memberActivityDegree.SixMonthEffectiveTime = threeMonthsOrders[SIX_ORDERNUMBER - 1].PayDate.Value.AddMonths(sixMonths); } else { var sixMonthsOrders = GetSixMonthsOrders(item.UserId, SIX_ORDERNUMBER); if (sixMonthsOrders.Count == SIX_ORDERNUMBER) { memberActivityDegree.SixMonth = true; memberActivityDegree.SixMonthEffectiveTime = sixMonthsOrders[SIX_ORDERNUMBER - 1].PayDate.Value.AddMonths(sixMonths); } else { memberActivityDegree.SixMonth = false; } } DealWithMemberActivityDegree(memberActivityDegree); } }
/// <summary> /// 新增数据库活跃用户状态 /// </summary> /// <param name="model"></param> private void AddMemberActivityDegree(MemberActivityDegreeInfo model) { using (var conn = MySqlHelper.OpenConnection()) { string query = "INSERT INTO `Himall_MemberActivityDegree` (`UserId`, `OneMonth`, `ThreeMonth`, `SixMonth`, `OneMonthEffectiveTime`, `ThreeMonthEffectiveTime`, `SixMonthEffectiveTime`) VALUES ( @UserId, @OneMonth, @ThreeMonth, @SixMonth, @OneMonthEffectiveTime, @ThreeMonthEffectiveTime, @SixMonthEffectiveTime)"; conn.Execute(query, new { OneMonth = model.OneMonth, ThreeMonth = model.ThreeMonth, SixMonth = model.SixMonth, OneMonthEffectiveTime = model.OneMonthEffectiveTime, ThreeMonthEffectiveTime = model.ThreeMonthEffectiveTime, SixMonthEffectiveTime = model.SixMonthEffectiveTime, UserId = model.UserId }); } }
/// <summary> /// 更新数据库活跃用户状态 /// </summary> /// <param name="model"></param> private void UpdateMemberActivityDegree(MemberActivityDegreeInfo model) { using (var conn = MySqlHelper.OpenConnection()) { string query = "UPDATE Himall_MemberActivityDegree SET OneMonth=@OneMonth,ThreeMonth=@ThreeMonth,SixMonth=@SixMonth,OneMonthEffectiveTime=@OneMonthEffectiveTime,ThreeMonthEffectiveTime=@ThreeMonthEffectiveTime,SixMonthEffectiveTime=@SixMonthEffectiveTime where UserId=@UserId"; conn.Execute(query, new { OneMonth = model.OneMonth, ThreeMonth = model.ThreeMonth, SixMonth = model.SixMonth, OneMonthEffectiveTime = model.OneMonthEffectiveTime, ThreeMonthEffectiveTime = model.ThreeMonthEffectiveTime, SixMonthEffectiveTime = model.SixMonthEffectiveTime, UserId = model.UserId }); } }
/// <summary> /// 维护会员活跃状态 /// </summary> /// <param name="model"></param> private void DealWithMemberActivityDegree(MemberActivityDegreeInfo model) { var memberActivityDegree = GetMemberActivityDegreeByUserId(model.UserId); if (memberActivityDegree == null) { AddMemberActivityDegree(model); } else { UpdateMemberActivityDegree(model); } }