package com.example.jz.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.example.jz.dao.*;
|
import com.example.jz.modle.entity.*;
|
import com.example.jz.modle.vo.GroupMessageVo;
|
import com.example.jz.modle.vo.GroupUserVo;
|
import com.example.jz.service.GroupService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.security.core.context.SecurityContextHolder;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* 群表
|
* (Group)表服务实现类
|
*
|
* @author makejava
|
* @since 2022-07-11 16:35:57
|
*/
|
@Service("groupService")
|
public class GroupServiceImpl extends ServiceImpl<GroupDao, Group> implements GroupService {
|
@Resource
|
private MessageDao messageDao;
|
@Resource
|
private AnnouncementDao announcementDao;
|
@Resource
|
private GroupDao groupDao;
|
@Resource
|
private UserDao userDao;
|
@Resource
|
private ReportDao reportDao;
|
|
@Autowired
|
public void setMessageDao(MessageDao messageDao) {
|
this.messageDao = messageDao;
|
}
|
|
@Autowired
|
public void setAnnouncementDao(AnnouncementDao announcementDao) {
|
this.announcementDao = announcementDao;
|
}
|
|
@Autowired
|
public void setGroupDao(GroupDao groupDao) {
|
this.groupDao = groupDao;
|
}
|
|
@Override
|
public List<GroupMessageVo> getAllMessage(Integer id) {
|
List<GroupMessageVo> list = messageDao.selectList(new QueryWrapper<Message>().eq("group_id", id).orderByAsc("ctime")).stream().map(item -> {
|
String username;
|
String pic = null;
|
if (item.getUserId() == null) {
|
username = userDao.selectOne(new QueryWrapper<User>().eq("id", item.getCopId())).getRealName();
|
} else {
|
Report report = reportDao.selectOne(new QueryWrapper<Report>().eq("id", item.getUserId()));
|
username = userDao.selectOne(new QueryWrapper<User>().eq("id", report.getUserId())).getRealName();
|
pic = report.getPic();
|
Message message = new Message();
|
message.setReportName(username);
|
messageDao.update(message,new QueryWrapper<Message>().eq("user_id",item.getUserId()));
|
}
|
GroupMessageVo groupMessageVo = new GroupMessageVo();
|
groupMessageVo.setUserName(username);
|
groupMessageVo.setText(item.getText());
|
groupMessageVo.setCtime(item.getCtime());
|
groupMessageVo.setPic(pic);
|
return groupMessageVo;
|
}).collect(Collectors.toList());
|
return list;
|
}
|
|
@Override
|
public List<Announcement> getAllNotice(Integer id) {
|
return announcementDao.selectList(new LambdaQueryWrapper<>(Announcement.class).eq(Announcement::getGroupId, id));
|
}
|
|
@Override
|
public Boolean sendMessage(Integer id, String text) {
|
Message message = new Message().setCopId(userDao.selectOne(new QueryWrapper<User>().eq("login_username", SecurityContextHolder.getContext().getAuthentication().getPrincipal())).getId())
|
.setText(text).setGroupId(id).setCtime(new Date());
|
return messageDao.insert(message) > 0;
|
}
|
|
@Override
|
public List<GroupUserVo> getAllUser(Integer id) {
|
return groupDao.getAllUser(id);
|
}
|
|
@Override
|
public List<GroupMessageVo> getByCondition(String name, String text,Integer groupId) {
|
List<GroupMessageVo> groupUserVoList;
|
if (StringUtils.isBlank(name)) {
|
groupUserVoList = messageDao.selectList(new QueryWrapper<Message>().like(StringUtils.isNotBlank(text), "text", text).eq("group_id",groupId).orderByAsc("ctime")).stream().map(item -> {
|
String username;
|
String pic = null;
|
if (item.getUserId() == null) {
|
username = userDao.selectOne(new QueryWrapper<User>().eq("cop_id", item.getCopId())).getRealName();
|
} else {
|
Report report = reportDao.selectOne(new QueryWrapper<Report>().eq("id", item.getUserId()));
|
username = userDao.selectOne(new QueryWrapper<User>().eq("id", report.getUserId())).getRealName();
|
pic = report.getPic();
|
}
|
GroupMessageVo groupMessageVo = new GroupMessageVo();
|
groupMessageVo.setUserName(username);
|
groupMessageVo.setText(item.getText());
|
groupMessageVo.setCtime(item.getCtime());
|
groupMessageVo.setPic(pic);
|
return groupMessageVo;
|
}).collect(Collectors.toList());
|
} else {
|
groupUserVoList = messageDao.selectList(new QueryWrapper<Message>().eq("report_Name", name).eq("group_id",groupId).orderByAsc("ctime")).stream().map(item -> {
|
Report report = reportDao.selectOne(new QueryWrapper<Report>().eq("id", item.getUserId()));
|
GroupMessageVo groupMessageVo = new GroupMessageVo();
|
groupMessageVo.setUserName(item.getReportName());
|
groupMessageVo.setText(item.getText());
|
groupMessageVo.setCtime(item.getCtime());
|
groupMessageVo.setPic(report.getPic());
|
return groupMessageVo;
|
}).collect(Collectors.toList());
|
}
|
return groupUserVoList;
|
}
|
}
|