SysNoticeReadServiceImpl.java 1.8 KB

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