Browse Source

Merge remote-tracking branch 'origin/lzy1'

# Conflicts:
#	src/main/java/com/zhentao/groups/dto/DelGroupMembers.java
#	src/main/java/com/zhentao/groups/service/impl/GroupsServiceImpl.java
#	src/main/java/com/zhentao/user/domain/UserLogin.java
#	src/main/resources/mapper/UserShouyeMapper.xml
zhentao 2 weeks ago
parent
commit
623b5bb34a

+ 9 - 0
src/main/java/com/zhentao/groups/controller/groupsController.java

@@ -2,6 +2,7 @@ package com.zhentao.groups.controller;
 
 import com.zhentao.groups.dto.AddGroupMembers;
 import com.zhentao.groups.dto.AddGroupsDto;
+import com.zhentao.groups.dto.DelGroupMembers;
 import com.zhentao.groups.service.GroupsService;
 import com.zhentao.tool.TokenUtils;
 import com.zhentao.vo.Result;
@@ -32,6 +33,14 @@ public class groupsController {
         return groupsService.AddGroupMembers(addGroupMembers);
     }
 
+//    提出群聊
+    @PostMapping("/DelGroupMembers")
+    public Result DelGroupMembers(@RequestBody DelGroupMembers delGroupMembers,@RequestHeader("token") String token){
+        Long userIdFromToken = Long.valueOf(TokenUtils.getUserIdFromToken(token));
+        delGroupMembers.setUId(userIdFromToken);
+        return groupsService.DelGroupMembers(delGroupMembers);
+    }
+
 
 
 

+ 3 - 1
src/main/java/com/zhentao/groups/dto/AddGroupMembers.java

@@ -1,5 +1,6 @@
 package com.zhentao.groups.dto;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.zhentao.groups.pojo.GroupMembers;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -14,9 +15,10 @@ import java.util.List;
 public class AddGroupMembers  implements Serializable {
 
 //  群id
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
     private Long groupId;
 
-    private List<GroupMembers> data;
+    private List<Long> userId;
 
 
 }

+ 2 - 0
src/main/java/com/zhentao/groups/dto/AddGroupsDto.java

@@ -1,6 +1,7 @@
 package com.zhentao.groups.dto;
 
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -19,6 +20,7 @@ public class AddGroupsDto {
     /**
      * 创建者ID
      */
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
     private Long creatorId;
 
     /**

+ 10 - 3
src/main/java/com/zhentao/groups/dto/DelGroupMembers.java

@@ -1,5 +1,7 @@
 package com.zhentao.groups.dto;
 
+import com.alibaba.fastjson.annotation.JSONField;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -8,9 +10,14 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @NoArgsConstructor
 public class DelGroupMembers {
-
+//  组id
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
     Long groupssId;
-
-    Long user_id;
+//  踢出的用户
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
+    Long userId;
+//  当前登录的用户id
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
+    Long  uId;
 
 }

+ 3 - 0
src/main/java/com/zhentao/groups/service/GroupsService.java

@@ -21,4 +21,7 @@ public interface GroupsService extends IService<Groupss> {
 //        添加人数
     Result AddGroupMembers(AddGroupMembers addGroupMembers);
 
+//    删除人数
+    Result DelGroupMembers(DelGroupMembers delGroupMembers);
+
 }

+ 78 - 29
src/main/java/com/zhentao/groups/service/impl/GroupsServiceImpl.java

@@ -1,20 +1,20 @@
 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.user.domain.UserShouye;
+import com.zhentao.user.mapper.UserShouyeMapper;
+import com.zhentao.user.service.UserShouyeService;
 import com.zhentao.vo.Result;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
@@ -100,30 +100,39 @@ public class GroupsServiceImpl extends ServiceImpl<GroupsMapper, Groupss>
         Groupss groupss = groupsMapper.selectById(addGroupMembers.getGroupId());
         System.err.println(groupss);
         List<UserShouye> userShouyes =new ArrayList<>();
-
-        for (GroupMembers groupMembers:addGroupMembers.getData()){
-            GroupMembers groupMembers1=new GroupMembers();
-            groupMembers1.setId(IdUtil.getSnowflake().nextId());
-            groupMembers1.setGroupId(groupss.getGroupId());
-            groupMembers1.setUserId(groupMembers.getUserId());
-            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.getUserId());
-            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,"添加成功");
+        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,"添加失败");
@@ -131,6 +140,46 @@ public class GroupsServiceImpl extends ServiceImpl<GroupsMapper, Groupss>
 
 
 
+//     踢人
+    @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,"该用户已经不存在");
+        }
+
+    }
+
+
+
 
 
 

+ 1 - 2
src/main/java/com/zhentao/user/domain/UserLogin.java

@@ -8,8 +8,6 @@ import java.io.Serializable;
 import java.util.Date;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import lombok.Data;
 
 /**
@@ -22,6 +20,7 @@ public class UserLogin implements Serializable {
     /**
      * 用户ID
      */
+    @TableId
     @JsonFormat(shape = JsonFormat.Shape.STRING)
     private Long id;
 

+ 106 - 0
src/main/java/com/zhentao/user/domain/UserShouye.java

@@ -0,0 +1,106 @@
+package com.zhentao.user.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+/**
+ * 用户首页表
+ * @TableName user_shouye
+ */
+@TableName(value ="user_shouye")
+@Data
+public class UserShouye implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
+    private Long id;
+
+    /**
+     * 用户1
+     */
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
+    private Long uid1;
+
+    /**
+     * 用户2
+     */
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
+    private Long uid2;
+
+    /**
+     * 群id
+     */
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
+    private Long gid;
+
+    /**
+     * 状态0 1
+     */
+    private Integer status;
+
+    /**
+     * 排序
+     */
+    private Integer sort;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public boolean equals(Object that) {
+        if (this == that) {
+            return true;
+        }
+        if (that == null) {
+            return false;
+        }
+        if (getClass() != that.getClass()) {
+            return false;
+        }
+        UserShouye other = (UserShouye) that;
+        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
+            && (this.getUid1() == null ? other.getUid1() == null : this.getUid1().equals(other.getUid1()))
+            && (this.getUid2() == null ? other.getUid2() == null : this.getUid2().equals(other.getUid2()))
+            && (this.getGid() == null ? other.getGid() == null : this.getGid().equals(other.getGid()))
+            && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
+            && (this.getSort() == null ? other.getSort() == null : this.getSort().equals(other.getSort()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
+        result = prime * result + ((getUid1() == null) ? 0 : getUid1().hashCode());
+        result = prime * result + ((getUid2() == null) ? 0 : getUid2().hashCode());
+        result = prime * result + ((getGid() == null) ? 0 : getGid().hashCode());
+        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
+        result = prime * result + ((getSort() == null) ? 0 : getSort().hashCode());
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", uid1=").append(uid1);
+        sb.append(", uid2=").append(uid2);
+        sb.append(", gid=").append(gid);
+        sb.append(", status=").append(status);
+        sb.append(", sort=").append(sort);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 20 - 0
src/main/java/com/zhentao/user/mapper/UserShouyeMapper.java

@@ -0,0 +1,20 @@
+package com.zhentao.user.mapper;
+
+import com.zhentao.user.domain.UserShouye;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author lzy
+* @description 针对表【user_shouye(用户首页表)】的数据库操作Mapper
+* @createDate 2025-06-05 19:11:47
+* @Entity com.zhentao.user.domain.UserShouye
+*/
+@Mapper
+public interface UserShouyeMapper extends BaseMapper<UserShouye> {
+
+}
+
+
+
+

+ 13 - 0
src/main/java/com/zhentao/user/service/UserShouyeService.java

@@ -0,0 +1,13 @@
+package com.zhentao.user.service;
+
+import com.zhentao.user.domain.UserShouye;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+* @author lzy
+* @description 针对表【user_shouye(用户首页表)】的数据库操作Service
+* @createDate 2025-06-05 19:11:47
+*/
+public interface UserShouyeService extends IService<UserShouye> {
+
+}

+ 22 - 0
src/main/java/com/zhentao/user/service/impl/UserShouyeServiceImpl.java

@@ -0,0 +1,22 @@
+package com.zhentao.user.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zhentao.user.domain.UserShouye;
+import com.zhentao.user.service.UserShouyeService;
+import com.zhentao.user.mapper.UserShouyeMapper;
+import org.springframework.stereotype.Service;
+
+/**
+* @author lzy
+* @description 针对表【user_shouye(用户首页表)】的数据库操作Service实现
+* @createDate 2025-06-05 19:11:47
+*/
+@Service
+public class UserShouyeServiceImpl extends ServiceImpl<UserShouyeMapper, UserShouye>
+    implements UserShouyeService{
+
+}
+
+
+
+