package jnpf.message.service.impl; import com.baomidou.dynamic.datasource.annotation.DSTransactional; import jnpf.base.PageModel; import jnpf.base.service.SuperServiceImpl; import jnpf.message.entity.ImContentEntity; import jnpf.message.entity.ImReplyEntity; import jnpf.message.mapper.ImContentMapper; import jnpf.message.model.ImReplySavaModel; import jnpf.message.model.ImUnreadNumModel; import jnpf.message.service.ImContentService; import jnpf.message.service.ImReplyService; import jnpf.util.JsonUtil; import jnpf.util.RandomUtil; import jnpf.util.StringUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; import java.util.List; import java.util.Optional; /** * 聊天内容 * * @author JNPF开发平台组 * @version V3.1.0 * @copyright 引迈信息技术有限公司 * @date 2019年9月27日 上午9:18 */ @Service public class ImContentServiceImpl extends SuperServiceImpl implements ImContentService { @Autowired private ImReplyService imReplyService; @Override public List getMessageList(String sendUserId, String receiveUserId, PageModel pageModel) { return this.baseMapper.getMessageList(sendUserId, receiveUserId, pageModel); } @Override public List getUnreadList(String receiveUserId) { List list = this.baseMapper.getUnreadList(receiveUserId); List list1 = this.baseMapper.getUnreadLists(receiveUserId); for (ImUnreadNumModel item : list) { Optional first = list1.stream().filter(q -> q.getSendUserId().equals(item.getSendUserId())).findFirst(); if (first.isPresent()) { ImUnreadNumModel defaultItem = first.get(); item.setDefaultMessage(defaultItem.getDefaultMessage()); item.setDefaultMessageType(defaultItem.getDefaultMessageType()); item.setDefaultMessageTime(defaultItem.getDefaultMessageTime()); } } return list; } @Override public int getUnreadCount(String sendUserId, String receiveUserId) { return this.baseMapper.getUnreadCount(sendUserId, receiveUserId); } @Override @DSTransactional public void sendMessage(String sendUserId, String receiveUserId, String message, String messageType) { if (StringUtil.isEmpty(sendUserId)) return; ImContentEntity entity = new ImContentEntity(); entity.setId(RandomUtil.uuId()); entity.setSendUserId(sendUserId); entity.setSendTime(new Date()); entity.setReceiveUserId(receiveUserId); entity.setEnabledMark(0); entity.setContent(message); entity.setContentType(messageType); this.save(entity); //写入到会话表中 ImReplySavaModel imReplySavaModel = new ImReplySavaModel(sendUserId, receiveUserId, entity.getSendTime()); ImReplyEntity imReplyEntity = JsonUtil.getJsonToBean(imReplySavaModel, ImReplyEntity.class); imReplyService.savaImReply(imReplyEntity); } @Override public void readMessage(String sendUserId, String receiveUserId) { this.baseMapper.readMessage(sendUserId, receiveUserId); } @Override public boolean deleteChatRecord(String sendUserId, String receiveUserId) { return this.baseMapper.deleteChatRecord(sendUserId, receiveUserId); } }