package com.ycl.jxkg.service.impl;
|
|
import com.ycl.jxkg.domain.Message;
|
import com.ycl.jxkg.domain.MessageUser;
|
import com.ycl.jxkg.mapper.MessageMapper;
|
import com.ycl.jxkg.mapper.MessageUserMapper;
|
import com.ycl.jxkg.service.MessageService;
|
import com.ycl.jxkg.vo.admin.message.MessagePageRequestVO;
|
import com.ycl.jxkg.vo.student.user.MessageRequestVO;
|
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageInfo;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.Date;
|
import java.util.List;
|
|
@Service
|
public class MessageServiceImpl implements MessageService {
|
|
private final MessageMapper messageMapper;
|
private final MessageUserMapper messageUserMapper;
|
|
@Autowired
|
public MessageServiceImpl(MessageMapper messageMapper, MessageUserMapper messageUserMapper) {
|
this.messageMapper = messageMapper;
|
this.messageUserMapper = messageUserMapper;
|
}
|
|
@Override
|
public List<Message> selectMessageByIds(List<Integer> ids) {
|
return messageMapper.selectByIds(ids);
|
}
|
|
@Override
|
public PageInfo<MessageUser> studentPage(MessageRequestVO requestVM) {
|
return PageHelper.startPage(requestVM.getPageIndex(), requestVM.getPageSize(), "id desc").doSelectPageInfo(() ->
|
messageUserMapper.studentPage(requestVM)
|
);
|
}
|
|
@Override
|
public PageInfo<Message> page(MessagePageRequestVO requestVM) {
|
return PageHelper.startPage(requestVM.getPageIndex(), requestVM.getPageSize(), "id desc").doSelectPageInfo(() ->
|
messageMapper.page(requestVM)
|
);
|
}
|
|
@Override
|
public List<MessageUser> selectByMessageIds(List<Integer> ids) {
|
return messageUserMapper.selectByMessageIds(ids);
|
}
|
|
@Override
|
@Transactional
|
public void sendMessage(Message message, List<MessageUser> messageUsers) {
|
messageMapper.insert(message);
|
messageUsers.forEach(d -> d.setMessageId(message.getId()));
|
messageUserMapper.inserts(messageUsers);
|
}
|
|
@Override
|
@Transactional
|
public void read(Integer id) {
|
MessageUser messageUser = messageUserMapper.selectById(id);
|
if (messageUser.getReaded())
|
return;
|
messageUser.setReaded(true);
|
messageUser.setReadTime(new Date());
|
messageUserMapper.updateById(messageUser);
|
messageMapper.readAdd(messageUser.getMessageId());
|
}
|
|
@Override
|
public Integer unReadCount(Integer userId) {
|
return messageUserMapper.unReadCount(userId);
|
}
|
|
@Override
|
public Message messageDetail(Integer id) {
|
MessageUser messageUser = messageUserMapper.selectById(id);
|
return messageMapper.selectById(messageUser.getMessageId());
|
}
|
|
}
|