/// <summary> /// 获取通知需提醒信息 /// </summary> /// <returns></returns> public IEnumerable <UserReminderInfo> GetUserReminderInfos() { var sql = PetaPoco.Sql.Builder; sql.Select("tn_Notices.*") .From("tn_Notices") .InnerJoin("tn_Users") .On("tn_Notices.UserId = tn_Users.UserId") .Where("tn_Notices.Status = 0") .Where("tn_Users.IsEmailVerified = 1") .OrderBy("tn_Notices.UserId") .OrderBy("tn_Notices.Id"); IEnumerable <Notice> userReminderInfos_object = CreateDAO().Fetch <Notice>(sql); List <UserReminderInfo> userRminderInfos = new List <UserReminderInfo>(); foreach (long userId in userReminderInfos_object.Select(n => n.UserId).Distinct()) { UserReminderInfo userReminderInfo = new UserReminderInfo(); userReminderInfo.UserId = userId; userReminderInfo.ReminderInfoType = ReminderInfoType.Get(ReminderInfoTypeIds.Instance().Notice()); IEnumerable <ReminderInfo> reminderInfos = userReminderInfos_object.Where(n => n.UserId == userId).Select(n => new ReminderInfo { ObjectId = n.Id, Title = n.ResolvedBody, DateCreated = n.DateCreated }); foreach (var reminderInfo in reminderInfos) { userReminderInfo.Append(reminderInfo); } userRminderInfos.Add(userReminderInfo); } return(userRminderInfos); }
/// <summary> /// 发送提醒 /// </summary> /// <param name="userReminderInfos">用户提醒信息</param> public void SendReminder(IList <UserReminderInfo> userReminderInfos) { if (userReminderInfos == null || userReminderInfos.Count == 0) { return; } UserReminderInfo userReminderInfo = userReminderInfos.First(); IUserService userService = DIContainer.Resolve <IUserService>(); IUser user = userService.GetUser(userReminderInfo.UserId); if (user != null) { EmailService emailService = new EmailService(); emailService.Enqueue(EmailBuilder.Instance().Reminder(userReminderInfos, user)); } }