| 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 */@Servicepublic 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));	}}
 |