123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- package org.jeecg.modules.system.service.impl;
- import java.util.Arrays;
- import java.util.Collection;
- import java.util.Date;
- import java.util.List;
- import javax.annotation.Resource;
- import org.jeecg.common.constant.CommonConstant;
- import org.jeecg.common.util.oConvertUtils;
- import org.jeecg.modules.system.entity.SysAnnouncement;
- import org.jeecg.modules.system.entity.SysAnnouncementSend;
- import org.jeecg.modules.system.mapper.SysAnnouncementMapper;
- import org.jeecg.modules.system.mapper.SysAnnouncementSendMapper;
- import org.jeecg.modules.system.service.ISysAnnouncementService;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- /**
- * @Description: 系统通告表
- * @Author: jeecg-boot
- * @Date: 2019-01-02
- * @Version: V1.0
- */
- @Service
- public class SysAnnouncementServiceImpl extends ServiceImpl<SysAnnouncementMapper, SysAnnouncement> implements ISysAnnouncementService {
- @Resource
- private SysAnnouncementMapper sysAnnouncementMapper;
-
- @Resource
- private SysAnnouncementSendMapper sysAnnouncementSendMapper;
-
- @Transactional
- @Override
- public void saveAnnouncement(SysAnnouncement sysAnnouncement) {
- if(sysAnnouncement.getMsgType().equals(CommonConstant.MSG_TYPE_ALL)) {
- sysAnnouncementMapper.insert(sysAnnouncement);
- }else {
- // 1.插入通告表记录
- sysAnnouncementMapper.insert(sysAnnouncement);
- // 2.插入用户通告阅读标记表记录
- String userId = sysAnnouncement.getUserIds();
- String[] userIds = userId.substring(0, (userId.length()-1)).split(",");
- String anntId = sysAnnouncement.getId();
- Date refDate = new Date();
- for(int i=0;i<userIds.length;i++) {
- SysAnnouncementSend announcementSend = new SysAnnouncementSend();
- announcementSend.setAnntId(anntId);
- announcementSend.setUserId(userIds[i]);
- announcementSend.setReadFlag(CommonConstant.NO_READ_FLAG);
- announcementSend.setReadTime(refDate);
- sysAnnouncementSendMapper.insert(announcementSend);
- }
- }
- }
-
- /**
- * @功能:编辑消息信息
- */
- @Transactional
- @Override
- public boolean upDateAnnouncement(SysAnnouncement sysAnnouncement) {
- // 1.更新系统信息表数据
- sysAnnouncementMapper.updateById(sysAnnouncement);
- String userId = sysAnnouncement.getUserIds();
- if(oConvertUtils.isNotEmpty(userId)&&sysAnnouncement.getMsgType().equals(CommonConstant.MSG_TYPE_UESR)) {
- // 2.补充新的通知用户数据
- String[] userIds = userId.substring(0, (userId.length()-1)).split(",");
- String anntId = sysAnnouncement.getId();
- Date refDate = new Date();
- for(int i=0;i<userIds.length;i++) {
- LambdaQueryWrapper<SysAnnouncementSend> queryWrapper = new LambdaQueryWrapper<SysAnnouncementSend>();
- queryWrapper.eq(SysAnnouncementSend::getAnntId, anntId);
- queryWrapper.eq(SysAnnouncementSend::getUserId, userIds[i]);
- List<SysAnnouncementSend> announcementSends=sysAnnouncementSendMapper.selectList(queryWrapper);
- if(announcementSends.size()<=0) {
- SysAnnouncementSend announcementSend = new SysAnnouncementSend();
- announcementSend.setAnntId(anntId);
- announcementSend.setUserId(userIds[i]);
- announcementSend.setReadFlag(CommonConstant.NO_READ_FLAG);
- announcementSend.setReadTime(refDate);
- sysAnnouncementSendMapper.insert(announcementSend);
- }
- }
- // 3. 删除多余通知用户数据
- Collection<String> delUserIds = Arrays.asList(userIds);
- LambdaQueryWrapper<SysAnnouncementSend> queryWrapper = new LambdaQueryWrapper<SysAnnouncementSend>();
- queryWrapper.notIn(SysAnnouncementSend::getUserId, delUserIds);
- queryWrapper.eq(SysAnnouncementSend::getAnntId, anntId);
- sysAnnouncementSendMapper.delete(queryWrapper);
- }
- return true;
- }
- // @功能:流程执行完成保存消息通知
- @Override
- public void saveSysAnnouncement(String title, String msgContent) {
- SysAnnouncement announcement = new SysAnnouncement();
- announcement.setTitile(title);
- announcement.setMsgContent(msgContent);
- announcement.setSender("JEECG BOOT");
- announcement.setPriority(CommonConstant.PRIORITY_L);
- announcement.setMsgType(CommonConstant.MSG_TYPE_ALL);
- announcement.setSendStatus(CommonConstant.HAS_SEND);
- announcement.setSendTime(new Date());
- announcement.setDelFlag(CommonConstant.DEL_FLAG_0.toString());
- sysAnnouncementMapper.insert(announcement);
- }
- @Override
- public Page<SysAnnouncement> querySysCementPageByUserId(Page<SysAnnouncement> page, String userId,String msgCategory) {
- return page.setRecords(sysAnnouncementMapper.querySysCementListByUserId(page, userId, msgCategory));
- }
- }
|