网站建设的软件平台,服装定制图片,惠州公司网站建设价格,手机编程软件中文版免费前言
紧接着上文《SpringBootWebSocket实现即时通讯#xff08;二#xff09;》
本博客姊妹篇
SpringBootWebSocket实现即时通讯#xff08;一#xff09;SpringBootWebSocket实现即时通讯#xff08;二#xff09;SpringBootWebSocket实现即时通讯#xff08;三WebSocket实现即时通讯二》
本博客姊妹篇
SpringBootWebSocket实现即时通讯一SpringBootWebSocket实现即时通讯二SpringBootWebSocket实现即时通讯三SpringBootWebSocket实现即时通讯四
一、功能描述
用户管理业务自己实现暂从数据库添加好友管理添加好友、删除好友、修改备注、好友列表等群组管理新建群、解散群、编辑群、变更群主、拉人进群、踢出群等聊天模式私聊、群聊消息类型系统、文本、语音、图片、视频聊天管理删除聊天、置顶聊天、查看聊天记录等
二、好友、群组功能实现
2.1 好友
mapper
package com.qiangesoft.im.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qiangesoft.im.entity.ImFriend;/*** p* 好友 Mapper 接口* /p** author qiangesoft* date 2024-02-07*/
public interface ImFriendMapper extends BaseMapperImFriend {}
service
package com.qiangesoft.im.service;import com.baomidou.mybatisplus.extension.service.IService;
import com.qiangesoft.im.entity.ImFriend;
import com.qiangesoft.im.pojo.dto.ImFriendDTO;
import com.qiangesoft.im.pojo.vo.ImFriendVO;import java.util.List;/*** p* 好友 服务类* /p** author qiangesoft* date 2024-02-07*/
public interface IImFriendService extends IServiceImFriend {/*** 添加好友** param friendDTO*/void addFriend(ImFriendDTO friendDTO);/*** 删除好友** param id*/void removeFriend(Long id);/*** 编辑好友信息** param id* param friendDTO*/void updateFriend(Long id, ImFriendDTO friendDTO);/*** 好友列表** param keyword* return*/ListImFriendVO listFriend(String keyword);/*** 好友详情** param id* return*/ImFriendVO getFriendInfo(Long id);
}package com.qiangesoft.im.service.impl;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qiangesoft.im.auth.UserUtil;
import com.qiangesoft.im.entity.ImFriend;
import com.qiangesoft.im.exception.ServiceException;
import com.qiangesoft.im.mapper.ImFriendMapper;
import com.qiangesoft.im.pojo.dto.ImFriendDTO;
import com.qiangesoft.im.pojo.vo.ImFriendVO;
import com.qiangesoft.im.pojo.vo.SysUserVo;
import com.qiangesoft.im.service.IImFriendService;
import com.qiangesoft.im.service.ISysUserService;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;/*** p* 好友 服务实现类* /p** author qiangesoft* date 2024-02-07*/
RequiredArgsConstructor
Service
public class ImFriendServiceImpl extends ServiceImplImFriendMapper, ImFriend implements IImFriendService {private final ISysUserService sysUserService;Transactional(rollbackFor RuntimeException.class)Overridepublic void addFriend(ImFriendDTO friendDTO) {Long userId UserUtil.getUserId();Long friendUserId friendDTO.getFriendUserId();if (userId.equals(friendUserId)) {throw new ServiceException(不能添加自己);}LambdaQueryWrapperImFriend queryWrapper new LambdaQueryWrapper();queryWrapper.eq(ImFriend::getUserId, userId).eq(ImFriend::getFriendUserId, friendUserId).eq(ImFriend::getDelFlag, false);Long count baseMapper.selectCount(queryWrapper);if (count 0) {throw new ServiceException(已添加过好友);}ImFriend friend new ImFriend();friend.setUserId(userId);friend.setFriendUserId(friendDTO.getFriendUserId());friend.setRemark(friendDTO.getRemark());friend.setDelFlag(false);baseMapper.insert(friend);}Overridepublic void removeFriend(Long id) {LambdaUpdateWrapperImFriend updateWrapper new LambdaUpdateWrapper();updateWrapper.eq(ImFriend::getId, id).set(ImFriend::getDelFlag, true);baseMapper.update(null, updateWrapper);}Overridepublic void updateFriend(Long id, ImFriendDTO friendDTO) {LambdaUpdateWrapperImFriend updateWrapper new LambdaUpdateWrapper();updateWrapper.eq(ImFriend::getId, id).set(ImFriend::getRemark, friendDTO.getRemark());baseMapper.update(null, updateWrapper);}Overridepublic ListImFriendVO listFriend(String keyword) {LambdaQueryWrapperImFriend queryWrapper new LambdaQueryWrapper();queryWrapper.like(StringUtils.isNotBlank(keyword), ImFriend::getRemark, keyword).eq(ImFriend::getDelFlag, false);ListImFriend friendList baseMapper.selectList(queryWrapper);ListImFriendVO friendVOList new ArrayList();if (CollectionUtils.isEmpty(friendList)) {return friendVOList;}ListLong userIdList friendList.stream().map(ImFriend::getFriendUserId).collect(Collectors.toList());MapLong, SysUserVo sysUserVoMap sysUserService.listByIds(userIdList).stream().map(SysUserVo::fromEntity).collect(Collectors.toMap(SysUserVo::getId, sysUserVo - sysUserVo));for (ImFriend friend : friendList) {ImFriendVO friendVO new ImFriendVO();friendVO.setId(friend.getId());friendVO.setFriendUser(sysUserVoMap.get(friend.getFriendUserId()));friendVO.setRemark(friend.getRemark());friendVOList.add(friendVO);}return friendVOList;}Overridepublic ImFriendVO getFriendInfo(Long id) {LambdaQueryWrapperImFriend queryWrapper new LambdaQueryWrapper();queryWrapper.eq(ImFriend::getId, id).eq(ImFriend::getDelFlag, false);ImFriend friend baseMapper.selectOne(queryWrapper);if (friend null) {throw new ServiceException(未添加为好友);}SysUserVo sysUserVo SysUserVo.fromEntity(sysUserService.getById(friend.getFriendUserId()));ImFriendVO friendVO new ImFriendVO();friendVO.setId(friend.getId());friendVO.setFriendUser(sysUserVo);friendVO.setRemark(friend.getRemark());return friendVO;}
}
controller
package com.qiangesoft.im.controller;import com.qiangesoft.im.pojo.dto.ImFriendDTO;
import com.qiangesoft.im.pojo.vo.ImFriendVO;
import com.qiangesoft.im.pojo.vo.ResultInfo;
import com.qiangesoft.im.service.IImFriendService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;import java.util.List;/*** p* 好友 前端控制器* /p** author qiangesoft* date 2024-02-07*/
Api(tags 好友)
RequiredArgsConstructor
RestController
RequestMapping(/im/friend)
public class ImFriendController {private final IImFriendService friendService;PostMappingApiOperation(value 添加好友)public ResultInfoVoid addFriend(RequestBody ImFriendDTO friendDTO) {friendService.addFriend(friendDTO);return ResultInfo.ok();}DeleteMapping(/{id})ApiOperation(value 删除好友)public ResultInfoVoid removeFriend(PathVariable Long id) {friendService.removeFriend(id);return ResultInfo.ok();}PutMapping(/{id})ApiOperation(value 编辑好友)public ResultInfoVoid updateFriend(PathVariable Long id, RequestBody ImFriendDTO friendDTO) {friendService.updateFriend(id, friendDTO);return ResultInfo.ok();}GetMappingApiOperation(value 好友列表)public ResultInfoListImFriendVO listFriend(String keyword) {return ResultInfo.ok(friendService.listFriend(keyword));}GetMapping(/{id})ApiOperation(value 好友详情)public ResultInfoImFriendVO getFriendInfo(PathVariable Long id) {return ResultInfo.ok(friendService.getFriendInfo(id));}}
2.2 群组
mapper
package com.qiangesoft.im.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qiangesoft.im.entity.ImGroup;/*** p* 群组 Mapper 接口* /p** author qiangesoft* date 2024-02-07*/
public interface ImGroupMapper extends BaseMapperImGroup {}
package com.qiangesoft.im.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qiangesoft.im.entity.ImGroupUser;/*** p* 群成员 Mapper 接口* /p** author qiangesoft* date 2024-02-07*/
public interface ImGroupUserMapper extends BaseMapperImGroupUser {}
package com.qiangesoft.im.service;import com.baomidou.mybatisplus.extension.service.IService;
import com.qiangesoft.im.entity.ImGroup;
import com.qiangesoft.im.pojo.dto.ImGroupDTO;
import com.qiangesoft.im.pojo.dto.ImGroupMasterDTO;
import com.qiangesoft.im.pojo.vo.ImGroupInfoVO;
import com.qiangesoft.im.pojo.vo.ImGroupVO;import java.util.List;/*** p* 群组 服务类* /p** author qiangesoft* date 2024-02-07*/
public interface IImGroupService extends IServiceImGroup {/*** 建群** param groupDTO*/void addGroup(ImGroupDTO groupDTO);/*** 解散群** param id*/void removeGroup(Long id);/*** 编辑群** param id* param groupDTO*/void updateGroup(Long id, ImGroupDTO groupDTO);/*** 群列表** param keyword* return*/ListImGroupVO listGroup(String keyword);/*** 群详情** param id* return*/ImGroupInfoVO getGroupInfo(Long id);/*** 变更群主** param groupMasterDTO*/void updateMaster(ImGroupMasterDTO groupMasterDTO);/*** 校验群组** param id* return*/ImGroup validateGroup(Long id);
}
package com.qiangesoft.im.service;import com.baomidou.mybatisplus.extension.service.IService;
import com.qiangesoft.im.entity.ImGroupUser;
import com.qiangesoft.im.pojo.dto.ImGroupUserDTO;
import com.qiangesoft.im.pojo.vo.SysUserVo;import java.util.List;/*** p* 群成员 服务类* /p** author qiangesoft* date 2024-02-07*/
public interface IImGroupUserService extends IServiceImGroupUser {/*** 添加群成员** param groupUserDTO*/void addGroupUser(ImGroupUserDTO groupUserDTO);/*** 删除群成员** param groupUserDTO*/void removeGroupUser(ImGroupUserDTO groupUserDTO);/*** 群成员列表** param id* return*/ListSysUserVo listGroupUser(Long id);}
package com.qiangesoft.im.service.impl;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qiangesoft.im.auth.UserUtil;
import com.qiangesoft.im.entity.ImGroup;
import com.qiangesoft.im.entity.ImGroupUser;
import com.qiangesoft.im.entity.SysUser;
import com.qiangesoft.im.exception.ServiceException;
import com.qiangesoft.im.mapper.ImGroupMapper;
import com.qiangesoft.im.pojo.dto.ImGroupDTO;
import com.qiangesoft.im.pojo.dto.ImGroupMasterDTO;
import com.qiangesoft.im.pojo.vo.ImGroupInfoVO;
import com.qiangesoft.im.pojo.vo.ImGroupVO;
import com.qiangesoft.im.pojo.vo.SysUserVo;
import com.qiangesoft.im.service.IImGroupService;
import com.qiangesoft.im.service.IImGroupUserService;
import com.qiangesoft.im.service.ISysUserService;
import com.qiangesoft.im.util.IdSplitUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;/*** p* 群组 服务实现类* /p** author qiangesoft* date 2024-02-07*/
Service
public class ImGroupServiceImpl extends ServiceImplImGroupMapper, ImGroup implements IImGroupService {Autowiredprivate IImGroupUserService groupUserService;Autowiredprivate ISysUserService sysUserService;Transactional(rollbackFor RuntimeException.class)Overridepublic void addGroup(ImGroupDTO groupDTO) {Long userId UserUtil.getUserId();ImGroup group new ImGroup();group.setName(groupDTO.getName());group.setAvatar(groupDTO.getAvatar());group.setMaster(userId);group.setManager(IdSplitUtil.listToStr(groupDTO.getManager()));group.setNotice(groupDTO.getNotice());group.setRemark(groupDTO.getRemark());group.setDelFlag(false);baseMapper.insert(group);// 群成员ListImGroupUser groupUserList new ArrayList();ListLong memberIdList groupDTO.getMemberIdList();if (!memberIdList.contains(userId)) {memberIdList.add(userId);}for (Long memberId : memberIdList) {ImGroupUser groupUser new ImGroupUser();groupUser.setGroupId(group.getId());groupUser.setUserId(memberId);groupUser.setDelFlag(false);groupUserList.add(groupUser);}groupUserService.saveBatch(groupUserList);}Overridepublic void removeGroup(Long id) {LambdaUpdateWrapperImGroup updateWrapper new LambdaUpdateWrapper();updateWrapper.eq(ImGroup::getId, id).set(ImGroup::getDelFlag, true);baseMapper.update(null, updateWrapper);}Overridepublic void updateGroup(Long id, ImGroupDTO groupDTO) {ImGroup group this.validateGroup(id);if (group.getDelFlag()) {throw new ServiceException(群组已解散);}group.setName(groupDTO.getName());group.setAvatar(groupDTO.getAvatar());group.setManager(IdSplitUtil.listToStr(groupDTO.getManager()));group.setNotice(groupDTO.getNotice());group.setRemark(groupDTO.getRemark());baseMapper.updateById(group);}Overridepublic ListImGroupVO listGroup(String keyword) {LambdaQueryWrapperImGroup queryWrapper new LambdaQueryWrapper();queryWrapper.like(StringUtils.isNotBlank(keyword), ImGroup::getRemark, keyword).eq(ImGroup::getDelFlag, false);ListImGroup groupList baseMapper.selectList(queryWrapper);ListImGroupVO groupVOList new ArrayList();if (CollectionUtils.isEmpty(groupList)) {return groupVOList;}for (ImGroup group : groupList) {ImGroupVO groupVO new ImGroupVO();groupVO.setId(group.getId());groupVO.setName(group.getName());groupVO.setAvatar(group.getAvatar());groupVO.setRemark(group.getRemark());groupVO.setCreateTime(group.getCreateTime().getTime());groupVOList.add(groupVO);}return groupVOList;}Overridepublic ImGroupInfoVO getGroupInfo(Long id) {ImGroup group this.validateGroup(id);ImGroupInfoVO vo new ImGroupInfoVO();vo.setId(group.getId());vo.setName(group.getName());vo.setAvatar(group.getAvatar());vo.setNotice(group.getNotice());vo.setRemark(group.getRemark());vo.setCreateTime(group.getCreateTime().getTime());// 群主Long masterId group.getMaster();if (masterId ! null) {SysUser master sysUserService.getById(masterId);if (master ! null) {SysUserVo masterVo SysUserVo.fromEntity(master);vo.setMaster(masterVo);}}// 群管理String manager group.getManager();ListLong managerIdList IdSplitUtil.strToList(manager);if (!CollectionUtils.isEmpty(managerIdList)) {ListSysUserVo managerUserList sysUserService.listByIds(managerIdList).stream().map(SysUserVo::fromEntity).collect(Collectors.toList());vo.setManagerList(managerUserList);}// 群成员ListSysUserVo userVoList new ArrayList();LambdaQueryWrapperImGroupUser queryWrapper new LambdaQueryWrapper();queryWrapper.eq(ImGroupUser::getGroupId, id).eq(ImGroupUser::getDelFlag, false);ListImGroupUser groupUserList groupUserService.list(queryWrapper);if (CollectionUtils.isEmpty(groupUserList)) {vo.setMemberList(userVoList);return vo;}ListLong userIdList groupUserList.stream().map(ImGroupUser::getUserId).collect(Collectors.toList());MapLong, SysUserVo sysUserVOMap sysUserService.listByIds(userIdList).stream().map(SysUserVo::fromEntity).collect(Collectors.toMap(SysUserVo::getId, sysUserVo - sysUserVo));for (ImGroupUser groupUser : groupUserList) {SysUserVo sysUserVo sysUserVOMap.get(groupUser.getUserId());if (sysUserVo ! null) {userVoList.add(sysUserVo);}}vo.setMemberList(userVoList);return vo;}Overridepublic void updateMaster(ImGroupMasterDTO groupMasterDTO) {Long id groupMasterDTO.getId();ImGroup group this.validateGroup(id);if (group.getDelFlag()) {throw new ServiceException(群组已解散);}LambdaUpdateWrapperImGroup updateWrapper new LambdaUpdateWrapper();updateWrapper.eq(ImGroup::getId, id).set(ImGroup::getMaster, groupMasterDTO.getMaster());baseMapper.update(null, updateWrapper);}Overridepublic ImGroup validateGroup(Long id) {ImGroup group baseMapper.selectById(id);if (group null) {throw new ServiceException(群组不存在);}return group;}
}
package com.qiangesoft.im.service.impl;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qiangesoft.im.auth.UserUtil;
import com.qiangesoft.im.entity.ImGroup;
import com.qiangesoft.im.entity.ImGroupUser;
import com.qiangesoft.im.exception.ServiceException;
import com.qiangesoft.im.mapper.ImGroupUserMapper;
import com.qiangesoft.im.pojo.dto.ImGroupUserDTO;
import com.qiangesoft.im.pojo.vo.SysUserVo;
import com.qiangesoft.im.service.IImGroupService;
import com.qiangesoft.im.service.IImGroupUserService;
import com.qiangesoft.im.service.ISysUserService;
import com.qiangesoft.im.util.IdSplitUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;/*** p* 群成员 服务实现类* /p** author qiangesoft* date 2024-02-07*/
Service
public class ImGroupUserServiceImpl extends ServiceImplImGroupUserMapper, ImGroupUser implements IImGroupUserService {Autowiredprivate ISysUserService sysUserService;LazyAutowiredprivate IImGroupService groupService;Transactional(rollbackFor RuntimeException.class)Overridepublic void addGroupUser(ImGroupUserDTO groupUserDTO) {Long groupId groupUserDTO.getGroupId();ImGroup group groupService.validateGroup(groupId);if (group.getDelFlag()) {throw new ServiceException(群组已解散);}Long userId UserUtil.getUserId();ListLong managerIdList IdSplitUtil.strToList(group.getManager());if (group.getMaster().equals(userId)) {throw new ServiceException(无添加好友权限);} else {if (!managerIdList.contains(userId)) {throw new ServiceException(无添加好友权限);}}ListLong memberIdList groupUserDTO.getMemberIdList();if (memberIdList.contains(userId)) {throw new ServiceException(你是群主不可添加);}LambdaQueryWrapperImGroupUser queryWrapper new LambdaQueryWrapper();queryWrapper.eq(ImGroupUser::getGroupId, groupId).eq(ImGroupUser::getDelFlag, false);ListLong existMemberIdList baseMapper.selectList(queryWrapper).stream().map(ImGroupUser::getUserId).collect(Collectors.toList());ListLong notExistMemberIdList memberIdList.stream().filter(e - !existMemberIdList.contains(e)).collect(Collectors.toList());ListImGroupUser groupUserList new ArrayList();for (Long memberId : notExistMemberIdList) {ImGroupUser groupUser new ImGroupUser();groupUser.setGroupId(groupId);groupUser.setUserId(memberId);groupUser.setDelFlag(false);groupUserList.add(groupUser);}this.saveBatch(groupUserList);}Transactional(rollbackFor RuntimeException.class)Overridepublic void removeGroupUser(ImGroupUserDTO groupUserDTO) {Long groupId groupUserDTO.getGroupId();ImGroup group groupService.validateGroup(groupId);if (group.getDelFlag()) {throw new ServiceException(群组已解散);}Long userId UserUtil.getUserId();ListLong managerIdList IdSplitUtil.strToList(group.getManager());if (group.getMaster().equals(userId)) {throw new ServiceException(无移除好友权限);} else {if (!managerIdList.contains(userId)) {throw new ServiceException(无移除好友权限);}}ListLong memberIdList groupUserDTO.getMemberIdList();if (memberIdList.contains(userId)) {throw new ServiceException(不能移除自己);}LambdaUpdateWrapperImGroupUser updateWrapper new LambdaUpdateWrapper();updateWrapper.eq(ImGroupUser::getGroupId, groupId).in(ImGroupUser::getUserId, memberIdList).set(ImGroupUser::getDelFlag, true);baseMapper.update(null, updateWrapper);// 去除管理员权限ListLong collect managerIdList.stream().filter(e - !memberIdList.contains(e)).collect(Collectors.toList());LambdaUpdateWrapperImGroup updateWrapper1 new LambdaUpdateWrapper();updateWrapper1.eq(ImGroup::getId, groupId).set(ImGroup::getManager, IdSplitUtil.listToStr(collect));groupService.update(updateWrapper1);}Overridepublic ListSysUserVo listGroupUser(Long id) {groupService.validateGroup(id);ListSysUserVo userVoList new ArrayList();LambdaQueryWrapperImGroupUser queryWrapper new LambdaQueryWrapper();queryWrapper.eq(ImGroupUser::getGroupId, id).eq(ImGroupUser::getDelFlag, false);ListImGroupUser groupUserList baseMapper.selectList(queryWrapper);if (CollectionUtils.isEmpty(groupUserList)) {return userVoList;}ListLong userIdList groupUserList.stream().map(ImGroupUser::getUserId).collect(Collectors.toList());MapLong, SysUserVo sysUserVOMap sysUserService.listByIds(userIdList).stream().map(SysUserVo::fromEntity).collect(Collectors.toMap(SysUserVo::getId, sysUserVo - sysUserVo));for (ImGroupUser groupUser : groupUserList) {SysUserVo sysUserVo sysUserVOMap.get(groupUser.getUserId());if (sysUserVo ! null) {userVoList.add(sysUserVo);}}return userVoList;}
}
controller
package com.qiangesoft.im.controller;import com.qiangesoft.im.pojo.dto.ImGroupDTO;
import com.qiangesoft.im.pojo.dto.ImGroupMasterDTO;
import com.qiangesoft.im.pojo.vo.ImGroupInfoVO;
import com.qiangesoft.im.pojo.vo.ImGroupVO;
import com.qiangesoft.im.pojo.vo.ResultInfo;
import com.qiangesoft.im.service.IImGroupService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;/*** p* 群组 前端控制器* /p** author qiangesoft* date 2024-02-07*/
Api(tags 群组)
RestController
RequestMapping(/im/group)
public class ImGroupController {Autowiredprivate IImGroupService groupService;PostMappingApiOperation(value 建群)public ResultInfoVoid addGroup(RequestBody ImGroupDTO groupDTO) {groupService.addGroup(groupDTO);return ResultInfo.ok();}DeleteMapping(/{id})ApiOperation(value 解散群)public ResultInfoVoid removeGroup(PathVariable Long id) {groupService.removeGroup(id);return ResultInfo.ok();}PutMapping(/{id})ApiOperation(value 编辑群)public ResultInfoVoid updateGroup(PathVariable Long id, RequestBody ImGroupDTO groupDTO) {groupService.updateGroup(id, groupDTO);return ResultInfo.ok();}GetMappingApiOperation(value 群列表)public ResultInfoListImGroupVO listGroup(String keyword) {return ResultInfo.ok(groupService.listGroup(keyword));}GetMapping(/{id})ApiOperation(value 群详情)public ResultInfoImGroupInfoVO getGroupInfo(PathVariable Long id) {return ResultInfo.ok(groupService.getGroupInfo(id));}GetMapping(/updateMaster)ApiOperation(value 变更群主)public ResultInfoVoid updateMaster(RequestBody ImGroupMasterDTO groupMasterDTO) {groupService.updateMaster(groupMasterDTO);return ResultInfo.ok();}
}
package com.qiangesoft.im.controller;import com.qiangesoft.im.pojo.dto.ImGroupUserDTO;
import com.qiangesoft.im.pojo.vo.ResultInfo;
import com.qiangesoft.im.pojo.vo.SysUserVo;
import com.qiangesoft.im.service.IImGroupUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;/*** p* 群成员 前端控制器* /p** author qiangesoft* date 2024-02-07*/
Api(tags 群成员)
RestController
RequestMapping(/im/groupUser)
public class ImGroupUserController {Autowiredprivate IImGroupUserService groupUserService;PostMappingApiOperation(value 添加群成员)public ResultInfoVoid addGroupUser(RequestBody ImGroupUserDTO groupUserDTO) {groupUserService.addGroupUser(groupUserDTO);return ResultInfo.ok();}DeleteMappingApiOperation(value 删除群成员)public ResultInfoVoid removeGroupUser(RequestBody ImGroupUserDTO groupUserDTO) {groupUserService.removeGroupUser(groupUserDTO);return ResultInfo.ok();}GetMapping(/{id})ApiOperation(value 群成员列表)public ResultInfoListSysUserVo listGroupUser(PathVariable Long id) {return ResultInfo.ok(groupUserService.listGroupUser(id));}}
三、源码地址
源码地址https://gitee.com/qiangesoft/boot-business/tree/master/boot-business-im
后续内容见下章