SysNoticeServiceImpl.java 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. package com.ruoyi.system.service.impl;
  2. import java.util.ArrayList;
  3. import java.util.Date;
  4. import java.util.List;
  5. import java.util.stream.Collectors;
  6. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  7. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  8. import com.ruoyi.common.core.domain.entity.SysUser;
  9. import com.ruoyi.common.utils.SecurityUtils;
  10. import com.ruoyi.system.domain.SysNoticeUser;
  11. import com.ruoyi.system.mapper.SysNoticeUserMapper;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.stereotype.Service;
  14. import com.ruoyi.system.domain.SysNotice;
  15. import com.ruoyi.system.mapper.SysNoticeMapper;
  16. import com.ruoyi.system.service.ISysNoticeService;
  17. import org.springframework.transaction.annotation.Transactional;
  18. /**
  19. * 公告 服务层实现
  20. *
  21. * @author ruoyi
  22. */
  23. @Service
  24. public class SysNoticeServiceImpl extends ServiceImpl<SysNoticeMapper, SysNotice> implements ISysNoticeService
  25. {
  26. @Autowired
  27. private SysNoticeMapper noticeMapper;
  28. @Autowired
  29. private SysNoticeUserMapper noticeUserMapper;
  30. /**
  31. * 查询公告信息
  32. *
  33. * @param noticeId 公告ID
  34. * @return 公告信息
  35. */
  36. @Override
  37. public SysNotice selectNoticeById(Long noticeId)
  38. {
  39. return noticeMapper.selectById(noticeId);
  40. }
  41. /**
  42. * 查询公告列表
  43. *
  44. * @param notice 公告信息
  45. * @return 公告集合
  46. */
  47. @Override
  48. public List<SysNotice> selectNoticeList(SysNotice notice)
  49. {
  50. return noticeMapper.selectNoticeList(notice);
  51. }
  52. /**
  53. * 新增公告
  54. *
  55. * @param notice 公告信息
  56. * @return 结果
  57. */
  58. @Override
  59. public int insertNotice(SysNotice notice)
  60. {
  61. return noticeMapper.insertNotice(notice);
  62. }
  63. /**
  64. * 修改公告
  65. *
  66. * @param notice 公告信息
  67. * @return 结果
  68. */
  69. @Override
  70. public int updateNotice(SysNotice notice)
  71. {
  72. return noticeMapper.updateById(notice);
  73. }
  74. /**
  75. * 删除公告对象
  76. *
  77. * @param noticeId 公告ID
  78. * @return 结果
  79. */
  80. @Override
  81. public int deleteNoticeById(Long noticeId)
  82. {
  83. return noticeMapper.deleteNoticeById(noticeId);
  84. }
  85. /**
  86. * 批量删除公告信息
  87. *
  88. * @param noticeIds 需要删除的公告ID
  89. * @return 结果
  90. */
  91. @Override
  92. public int deleteNoticeByIds(Long[] noticeIds)
  93. {
  94. return noticeMapper.deleteNoticeByIds(noticeIds);
  95. }
  96. @Override
  97. @Transactional
  98. public int addNoticeUser(Long noticeId, List<SysUser> users) {
  99. Long userId = SecurityUtils.getUserId();
  100. Date date = new Date();
  101. List<Long> userIds = users.stream().map(SysUser::getUserId).collect(Collectors.toList());
  102. //查询已经添加的学生
  103. List<SysNoticeUser> userList = noticeUserMapper.selectNoticeUsers(noticeId, userIds);
  104. List<Long> hasExistIds = userList.stream().map(SysNoticeUser::getUserId).collect(Collectors.toList());
  105. List<SysNoticeUser> noticeUsers = new ArrayList<>();
  106. for (SysUser user : users) {
  107. if (!hasExistIds.contains(user.getUserId())) {
  108. SysNoticeUser st = new SysNoticeUser();
  109. st.setUserId(user.getUserId());
  110. st.setNoticeId(noticeId);
  111. st.setCreateBy(userId.toString());
  112. st.setCreateTime(date);
  113. st.setStatus("0");
  114. noticeUsers.add(st);
  115. }
  116. }
  117. if (!noticeUsers.isEmpty()) {
  118. noticeUserMapper.insertBatch(noticeUsers);
  119. }
  120. SysNoticeUser noticeUser = new SysNoticeUser();
  121. noticeUser.setNoticeId(noticeId);
  122. return noticeUserMapper.selectNoticeUserList(noticeUser).size();
  123. }
  124. }