| | |
| | | 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.GroupDao; |
| | | import com.example.jz.modle.entity.Group; |
| | | 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 javax.el.ELClass; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 群表 |
| | | (Group)表服务实现类 |
| | | * (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; |
| | | Integer flag = 0; |
| | | if (item.getUserId() == null) { |
| | | User user = userDao.selectOne(new QueryWrapper<User>().eq("id", item.getCopId())); |
| | | flag = 2; |
| | | username = user.getRealName(); |
| | | } else { |
| | | Report report = reportDao.selectOne(new QueryWrapper<Report>().eq("id", item.getUserId())); |
| | | |
| | | User user = userDao.selectOne(new QueryWrapper<User>().eq("id", report.getUserId())); |
| | | String sex = user.getSex(); |
| | | if (sex == null || sex != "男"){ |
| | | flag = 0; |
| | | } |
| | | else { |
| | | flag = 1; |
| | | } |
| | | if (!Objects.isNull(user)){ |
| | | username = user.getRealName(); |
| | | }else { |
| | | username=""; |
| | | } |
| | | 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); |
| | | groupMessageVo.setMessageId(item.getId()); |
| | | groupMessageVo.setFlag(flag); |
| | | 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).eq(Announcement::getStatus, 1)); |
| | | } |
| | | |
| | | @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) { |
| | | return messageDao.selectList(new QueryWrapper<Message>().like(StringUtils.isNotBlank(text), "text", text).eq(StringUtils.isNotBlank(name),"report_name",name).eq("group_id", groupId).orderByAsc("ctime")).stream() |
| | | .filter(item -> item.getUserId() != null) |
| | | .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()); |
| | | } |
| | | } |
| | | |