SysNoticeUserService.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. namespace Admin.NET.Core.Service;
  2. /// <summary>
  3. /// 系统通知公告用户
  4. /// </summary>
  5. [ApiDescriptionSettings(Name = "通知公告用户", Order = 100)]
  6. public class SysNoticeUserService : ISysNoticeUserService, ITransient
  7. {
  8. private readonly SqlSugarRepository<SysNoticeUser> _sysNoticeUserRep; // 通知公告用户表仓储
  9. public SysNoticeUserService(SqlSugarRepository<SysNoticeUser> sysNoticeUserRep)
  10. {
  11. _sysNoticeUserRep = sysNoticeUserRep;
  12. }
  13. /// <summary>
  14. /// 增加
  15. /// </summary>
  16. /// <param name="noticeId"></param>
  17. /// <param name="noticeUserIdList"></param>
  18. /// <param name="noticeUserStatus"></param>
  19. /// <returns></returns>
  20. public async Task Add(long noticeId, List<long> noticeUserIdList, NoticeUserStatusEnum noticeUserStatus)
  21. {
  22. var list = new List<SysNoticeUser>();
  23. noticeUserIdList.ForEach(u =>
  24. {
  25. list.Add(new SysNoticeUser
  26. {
  27. NoticeId = noticeId,
  28. UserId = u,
  29. ReadStatus = noticeUserStatus
  30. });
  31. });
  32. await _sysNoticeUserRep.InsertRangeAsync(list);
  33. }
  34. /// <summary>
  35. /// 更新
  36. /// </summary>
  37. /// <param name="noticeId"></param>
  38. /// <param name="noticeUserIdList"></param>
  39. /// <param name="noticeUserStatus"></param>
  40. /// <returns></returns>
  41. public async Task Update(long noticeId, List<long> noticeUserIdList, NoticeUserStatusEnum noticeUserStatus)
  42. {
  43. await _sysNoticeUserRep.DeleteAsync(u => u.NoticeId == noticeId);
  44. await Add(noticeId, noticeUserIdList, noticeUserStatus);
  45. }
  46. /// <summary>
  47. /// 获取通知公告用户列表
  48. /// </summary>
  49. /// <param name="noticeId"></param>
  50. /// <returns></returns>
  51. public async Task<List<SysNoticeUser>> GetNoticeUserListByNoticeId(long noticeId)
  52. {
  53. return await _sysNoticeUserRep.GetListAsync(u => u.NoticeId == noticeId);
  54. }
  55. /// <summary>
  56. /// 设置通知公告读取状态
  57. /// </summary>
  58. /// <param name="noticeId"></param>
  59. /// <param name="userId"></param>
  60. /// <param name="status"></param>
  61. /// <returns></returns>
  62. public async Task Read(long noticeId, long userId, NoticeUserStatusEnum status)
  63. {
  64. await _sysNoticeUserRep.UpdateAsync(u => new SysNoticeUser
  65. {
  66. ReadStatus = status,
  67. ReadTime = DateTime.Now
  68. }, u => u.NoticeId == noticeId && u.UserId == userId);
  69. }
  70. }