青羊经侦大队-数据平台
wl
2022-08-16 1fb2cfb2bcb152bee03f8a332700241693cfd9b6
src/main/java/com/example/jz/service/impl/GroupServiceImpl.java
@@ -1,22 +1,22 @@
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.AnnouncementDao;
import com.example.jz.dao.GroupDao;
import com.example.jz.dao.MessageDao;
import com.example.jz.modle.entity.Announcement;
import com.example.jz.modle.entity.Group;
import com.example.jz.modle.entity.Message;
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;
/**
 * 群表
@@ -27,9 +27,16 @@
 */
@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) {
@@ -48,7 +55,27 @@
    @Override
    public List<GroupMessageVo> getAllMessage(Integer id) {
        return messageDao.getAllMessageByGroup(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
@@ -58,8 +85,8 @@
    @Override
    public Boolean sendMessage(Integer id, String text) {
        // todo 动态获取当前登录用户的id
        Message message = new Message().setUserId(1).setText(text).setGroupId(id).setCtime(new Date());
        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;
    }
@@ -67,4 +94,39 @@
    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;
    }
}