SysNoticeReadServiceImpl.java 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package com.ruoyi.system.service.impl;
  2. import java.util.List;
  3. import java.util.Map;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.stereotype.Service;
  6. import com.ruoyi.system.domain.SysNotice;
  7. import com.ruoyi.system.domain.SysNoticeRead;
  8. import com.ruoyi.system.mapper.SysNoticeReadMapper;
  9. import com.ruoyi.system.service.ISysNoticeReadService;
  10. /**
  11. * 公告已读记录 服务层实现
  12. *
  13. * @author ruoyi
  14. */
  15. @Service
  16. public class SysNoticeReadServiceImpl implements ISysNoticeReadService
  17. {
  18. @Autowired
  19. private SysNoticeReadMapper noticeReadMapper;
  20. /**
  21. * 标记已读
  22. */
  23. @Override
  24. public void markRead(Long noticeId, Long userId)
  25. {
  26. SysNoticeRead record = new SysNoticeRead();
  27. record.setNoticeId(noticeId);
  28. record.setUserId(userId);
  29. noticeReadMapper.insertNoticeRead(record);
  30. }
  31. /**
  32. * 查询某用户未读公告数量
  33. */
  34. @Override
  35. public int selectUnreadCount(Long userId)
  36. {
  37. return noticeReadMapper.selectUnreadCount(userId);
  38. }
  39. /**
  40. * 查询公告列表并标记当前用户已读状态
  41. */
  42. @Override
  43. public List<SysNotice> selectNoticeListWithReadStatus(Long userId, int limit)
  44. {
  45. return noticeReadMapper.selectNoticeListWithReadStatus(userId, limit);
  46. }
  47. /**
  48. * 批量标记已读
  49. */
  50. @Override
  51. public void markReadBatch(Long userId, Long[] noticeIds)
  52. {
  53. if (noticeIds == null || noticeIds.length == 0)
  54. {
  55. return;
  56. }
  57. noticeReadMapper.insertNoticeReadBatch(userId, noticeIds);
  58. }
  59. /**
  60. * 查询已阅读某公告的用户列表
  61. */
  62. @Override
  63. public List<Map<String, Object>> selectReadUsersByNoticeId(Long noticeId, String searchValue)
  64. {
  65. return noticeReadMapper.selectReadUsersByNoticeId(noticeId, searchValue);
  66. }
  67. /**
  68. * 删除公告时清理对应已读记录
  69. */
  70. @Override
  71. public void deleteByNoticeIds(Long[] noticeIds)
  72. {
  73. noticeReadMapper.deleteByNoticeIds(noticeIds);
  74. }
  75. }