123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 |
- package com.zhentao.groups.service.impl;
- import cn.hutool.core.util.IdUtil;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.zhentao.groups.dto.AddGroupMembers;
- import com.zhentao.groups.dto.AddGroupsDto;
- import com.zhentao.groups.dto.DelGroupMembers;
- import com.zhentao.groups.mapper.GroupMembersMapper;
- import com.zhentao.groups.pojo.GroupMembers;
- import com.zhentao.groups.pojo.Groupss;
- import com.zhentao.groups.service.GroupMembersService;
- import com.zhentao.groups.service.GroupsService;
- import com.zhentao.groups.mapper.GroupsMapper;
- import com.zhentao.shouye.domain.UserShouye;
- import com.zhentao.shouye.mapper.UserShouyeMapper;
- import com.zhentao.shouye.service.UserShouyeService;
- import com.zhentao.vo.Result;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.data.redis.core.RedisTemplate;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Propagation;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- /**
- * @author lzy
- * @description 针对表【groups(群组表)】的数据库操作Service实现
- * @createDate 2025-06-04 16:00:48
- */
- @Service
- public class GroupsServiceImpl extends ServiceImpl<GroupsMapper, Groupss>
- implements GroupsService{
- @Autowired
- private GroupMembersMapper groupMembersMapper;
- @Autowired
- private RedisTemplate<String,String> redisTemplate;
- @Autowired
- private UserShouyeMapper userShouyeMapper;
- // 创建群
- @Override
- @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class, timeout = 30)
- public Result addGroup(AddGroupsDto addGroupsDto) {
- Groupss groups=new Groupss();
- groups.setGroupId(IdUtil.getSnowflake().nextId());
- groups.setName(addGroupsDto.getName());
- groups.setCreatorId(addGroupsDto.getCreatorId());
- groups.setAvatar(addGroupsDto.getAvatar());
- groups.setAnnouncement(addGroupsDto.getAnnouncement());
- groups.setDescription(addGroupsDto.getDescription());
- groups.setMaxMembers(200);
- groups.setStatus(1);
- groups.setCreatedAt(new Date());
- groups.setUpdatedAt(new Date());
- int insert1 = this.baseMapper.insert(groups);
- GroupMembers groupMembers=new GroupMembers();
- groupMembers.setId(IdUtil.getSnowflake().nextId());
- groupMembers.setGroupId(groups.getGroupId());
- groupMembers.setUserId(groups.getCreatorId());
- groupMembers.setNickname(groups.getName());
- groupMembers.setRole(2);
- groupMembers.setJoinTime(new Date());
- int insert = groupMembersMapper.insert(groupMembers);
- UserShouye userShouye=new UserShouye();
- userShouye.setId(IdUtil.getSnowflake().nextId());
- userShouye.setUid1(addGroupsDto.getCreatorId());
- userShouye.setUid2(null);
- userShouye.setGid(groups.getGroupId());
- userShouye.setStatus(0);
- userShouye.setSort(null);
- int insert2 = userShouyeMapper.insert(userShouye);
- if (insert1!=0 && insert!=0 && insert2!=0){
- return Result.OK(null,"创建成功");
- }
- return Result.ERR(null,"创建失败");
- }
- @Autowired
- private GroupMembersService groupMembersService;
- @Autowired
- private UserShouyeService userShouyeService;
- @Autowired
- private GroupsMapper groupsMapper;
- // 添加人数
- @Override
- @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class, timeout = 30)
- public Result AddGroupMembers(AddGroupMembers addGroupMembers) {
- List<GroupMembers> data = new ArrayList<>();
- Groupss groupss = groupsMapper.selectById(addGroupMembers.getGroupId());
- System.err.println(groupss);
- List<UserShouye> userShouyes =new ArrayList<>();
- List<GroupMembers> list = groupMembersMapper.selectList(new LambdaQueryWrapper<GroupMembers>().eq(GroupMembers::getGroupId, addGroupMembers.getGroupId()));
- if (list.size()!=0){
- if (groupss.getMaxMembers()>list.size()){
- System.err.println(addGroupMembers.getUserId());
- for (Long groupMembers:addGroupMembers.getUserId()){
- GroupMembers groupMembers1=new GroupMembers();
- groupMembers1.setId(IdUtil.getSnowflake().nextId());
- groupMembers1.setGroupId(groupss.getGroupId());
- groupMembers1.setUserId(groupMembers);
- groupMembers1.setNickname(groupss.getName());
- groupMembers1.setRole(0);
- groupMembers1.setJoinTime(new Date());
- data.add(groupMembers1);
- UserShouye userShouye=new UserShouye();
- userShouye.setId(IdUtil.getSnowflake().nextId());
- userShouye.setUid1(groupMembers);
- userShouye.setUid2(null);
- userShouye.setGid(groupss.getGroupId());
- userShouye.setStatus(0);
- userShouye.setSort(null);
- userShouyes.add(userShouye);
- }
- boolean b1 = groupMembersService.saveBatch(data);
- boolean b = userShouyeService.saveBatch(userShouyes);
- if (b1!=false && b!=false){
- return Result.OK(null,"添加成功");
- }
- }else {
- return Result.ERR(null,"群已满");
- }
- }else {
- return Result.ERR(null,"群已不存在");
- }
- return Result.ERR(null,"添加失败");
- }
- // 踢人
- @Override
- @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class, timeout = 30)
- public Result DelGroupMembers(DelGroupMembers delGroupMembers) {
- System.err.println(delGroupMembers);
- // 用户
- GroupMembers groupMembers = groupMembersMapper.selectOne(new LambdaQueryWrapper<GroupMembers>().eq(GroupMembers::getGroupId, delGroupMembers.getGroupssId()).eq(GroupMembers::getUserId, delGroupMembers.getUId()));
- // 被踢掉的人
- GroupMembers groupMembers2 = groupMembersMapper.selectOne(new LambdaQueryWrapper<GroupMembers>().eq(GroupMembers::getUserId, delGroupMembers.getUserId()).eq(GroupMembers::getGroupId, delGroupMembers.getGroupssId()));
- System.err.println(groupMembers2);
- UserShouye userShouye = userShouyeMapper.selectOne(new LambdaQueryWrapper<UserShouye>().eq(UserShouye::getUid1, delGroupMembers.getUserId()).eq(UserShouye::getGid, delGroupMembers.getGroupssId()));
- System.err.println(userShouye);
- if (groupMembers2!=null && groupMembers!=null){
- // 首页展示userShouye表中数据
- if (groupMembers.getRole()==2){
- if (groupMembers2.getRole()==2){
- return Result.ERR(null,"群主不能踢自己");
- }
- groupMembersMapper.deleteById(groupMembers2);
- userShouyeMapper.deleteById(userShouye);
- return Result.OK(null,"删除成功");
- }else if (groupMembers.getRole()==1){
- if (groupMembers2.getRole()==0){
- groupMembersMapper.deleteById(groupMembers2);
- userShouyeMapper.deleteById(userShouye);
- return Result.OK(null,"删除成功");
- }else {
- return Result.ERR(null,"权限不足");
- }
- }else {
- return Result.ERR(null,"权限不足");
- }
- }else {
- return Result.ERR(null,"该用户已经不存在");
- }
- }
- }
|