lzy 2 weeks ago
parent
commit
04ab2480b6

+ 5 - 3
src/main/java/com/zhentao/groups/MongoDB/controller/GroupMessageController.java

@@ -26,7 +26,6 @@ public class GroupMessageController {
 
 
     @PostMapping("/cunchugroupMessage")
-    @NullLogin
     public String groupMessage(@RequestBody Message message)
     {
         GroupMessage groupMessage = new GroupMessage();
@@ -36,13 +35,16 @@ public class GroupMessageController {
         groupMessage.setContent_type(message.getContent_type());
         groupMessage.setCreated_at(new Date());
         mongoTemplate.save(groupMessage);
+        return "success";
+    }
+
+
+
 
 
 
 
 
-        return "success";
-    }
 
 
 

+ 20 - 2
src/main/java/com/zhentao/groups/controller/groupsController.java

@@ -3,12 +3,15 @@ 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.dto.OutGroupsDto;
 import com.zhentao.groups.service.GroupsService;
 import com.zhentao.tool.TokenUtils;
 import com.zhentao.vo.Result;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.io.IOException;
+
 @RequestMapping("/group")
 @RestController
 public class groupsController {
@@ -17,10 +20,10 @@ public class groupsController {
     @Autowired
     private GroupsService groupsService;
 
-
 //  创建群聊
     @PostMapping("/addGroup")
-    public Result addGroup(@RequestBody AddGroupsDto addGroupsDto, @RequestHeader("token") String token){
+    public Result addGroup(@RequestBody AddGroupsDto addGroupsDto, @RequestHeader("token") String token) throws IOException {
+        System.err.println(addGroupsDto);
         Long userIdFromToken = Long.valueOf(TokenUtils.getUserIdFromToken(token));
         addGroupsDto.setCreatorId(userIdFromToken);
         return groupsService.addGroup(addGroupsDto);
@@ -41,6 +44,21 @@ public class groupsController {
         return groupsService.DelGroupMembers(delGroupMembers);
     }
 
+//    退出群聊
+    @PostMapping("/outGroup")
+    public Result outGroup(@RequestBody OutGroupsDto outGroupsDto, @RequestHeader("token") String token){
+        Long userIdFromToken = Long.valueOf(TokenUtils.getUserIdFromToken(token));
+        outGroupsDto.setUid(userIdFromToken);
+        return groupsService.outGroup(outGroupsDto);
+    }
+
+//    解散群聊
+    @PostMapping("/delGroup")
+    public Result delGroup(@RequestBody OutGroupsDto outGroupsDto, @RequestHeader("token") String token){
+        Long userIdFromToken = Long.valueOf(TokenUtils.getUserIdFromToken(token));
+        outGroupsDto.setUid(userIdFromToken);
+        return groupsService.delGroup(outGroupsDto);
+    }
 
 
 

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

@@ -5,10 +5,13 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
+import lombok.ToString;
+import org.springframework.web.multipart.MultipartFile;
 
 @Data
 @AllArgsConstructor
 @NoArgsConstructor
+@ToString
 public class AddGroupsDto {
     /**
      * 群名称
@@ -25,7 +28,6 @@ public class AddGroupsDto {
      * 群头像
      */
     private String avatar;
-
     /**
      * 群公告
      */

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

@@ -10,7 +10,7 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @NoArgsConstructor
 public class DelGroupMembers {
-//  id
+//  id
     @JsonFormat(shape = JsonFormat.Shape.STRING)
     Long groupssId;
 //  踢出的用户

+ 20 - 0
src/main/java/com/zhentao/groups/dto/OutGroupsDto.java

@@ -0,0 +1,20 @@
+package com.zhentao.groups.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.type.OneToOneType;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class OutGroupsDto {
+
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
+    private Long groupsId;
+
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
+    private Long uid;
+
+}

+ 7 - 2
src/main/java/com/zhentao/groups/service/GroupsService.java

@@ -3,6 +3,7 @@ package com.zhentao.groups.service;
 
 import com.zhentao.groups.dto.AddGroupMembers;
 import com.zhentao.groups.dto.DelGroupMembers;
+import com.zhentao.groups.dto.OutGroupsDto;
 import com.zhentao.groups.pojo.Groupss;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zhentao.vo.Result;
@@ -16,12 +17,16 @@ public interface GroupsService extends IService<Groupss> {
 
 //    创建群聊
     Result addGroup(com.zhentao.groups.dto.AddGroupsDto addGroupsDto);
-
-
 //        添加人数
     Result AddGroupMembers(AddGroupMembers addGroupMembers);
 
 //    删除人数
     Result DelGroupMembers(DelGroupMembers delGroupMembers);
 
+//     退出群聊
+    Result outGroup(OutGroupsDto outGroupsDto);
+
+//    解散群聊
+    Result delGroup(OutGroupsDto outGroupsDto);
+
 }

+ 33 - 30
src/main/java/com/zhentao/groups/service/impl/GroupsServiceImpl.java

@@ -6,6 +6,7 @@ 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.dto.OutGroupsDto;
 import com.zhentao.groups.mapper.GroupMembersMapper;
 import com.zhentao.groups.pojo.GroupMembers;
 import com.zhentao.groups.pojo.Groupss;
@@ -23,6 +24,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -38,8 +40,6 @@ public class GroupsServiceImpl extends ServiceImpl<GroupsMapper, Groupss>
 
     @Autowired
     private GroupMembersMapper groupMembersMapper;
-    @Autowired
-    private RedisTemplate<String,String> redisTemplate;
 
     @Autowired
     private UserShouyeMapper userShouyeMapper;
@@ -73,7 +73,7 @@ public class GroupsServiceImpl extends ServiceImpl<GroupsMapper, Groupss>
         UserShouye userShouye=new UserShouye();
         userShouye.setId(IdUtil.getSnowflake().nextId());
         userShouye.setUid1(addGroupsDto.getCreatorId());
-        userShouye.setUid2(null);
+        userShouye.setUid2(0L);
         userShouye.setGid(groups.getGroupId());
         userShouye.setStatus(0);
         userShouye.setSort(null);
@@ -96,7 +96,6 @@ public class GroupsServiceImpl extends ServiceImpl<GroupsMapper, Groupss>
     @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);
@@ -118,7 +117,7 @@ public class GroupsServiceImpl extends ServiceImpl<GroupsMapper, Groupss>
                     UserShouye userShouye=new UserShouye();
                     userShouye.setId(IdUtil.getSnowflake().nextId());
                     userShouye.setUid1(groupMembers);
-                    userShouye.setUid2(null);
+                    userShouye.setUid2(0L);
                     userShouye.setGid(groupss.getGroupId());
                     userShouye.setStatus(0);
                     userShouye.setSort(null);
@@ -180,32 +179,36 @@ public class GroupsServiceImpl extends ServiceImpl<GroupsMapper, Groupss>
     }
 
 
+//    退出群聊
+    @Override
+    public Result outGroup(OutGroupsDto outGroupsDto) {
+        GroupMembers groupMembers = groupMembersMapper.selectOne(new LambdaQueryWrapper<GroupMembers>().eq(GroupMembers::getGroupId, outGroupsDto.getGroupsId()).eq(GroupMembers::getUserId, outGroupsDto.getUid()));
+        if (groupMembers.getRole()==2){
+            return Result.ERR(null,"群主不能退出群聊");
+        }else {
+            UserShouye userShouye = userShouyeMapper.selectOne(new LambdaQueryWrapper<UserShouye>().eq(UserShouye::getGid, outGroupsDto.getGroupsId()).eq(UserShouye::getUid1, outGroupsDto.getUid()));
+            groupMembersMapper.deleteById(groupMembers);
+            userShouyeMapper.deleteById(userShouye);
+            return Result.OK(null,"退出成功");
+        }
+    }
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+//    解散群聊
+    @Override
+    public Result delGroup(OutGroupsDto outGroupsDto) {
+        GroupMembers groupMembers = groupMembersMapper.selectOne(new LambdaQueryWrapper<GroupMembers>().eq(GroupMembers::getGroupId, outGroupsDto.getGroupsId()).eq(GroupMembers::getUserId, outGroupsDto.getUid()));
+        if (groupMembers.getRole()==2){
+            Groupss groupss = this.baseMapper.selectById(outGroupsDto.getGroupsId());
+            this.baseMapper.deleteById(groupss);
+            List<GroupMembers> list = groupMembersMapper.selectList(new LambdaQueryWrapper<GroupMembers>().eq(GroupMembers::getGroupId, outGroupsDto.getGroupsId()));
+            groupMembersMapper.deleteBatchIds(list);
+            List<UserShouye> userShouyes = userShouyeMapper.selectList(new LambdaQueryWrapper<UserShouye>().eq(UserShouye::getGid, outGroupsDto.getGroupsId()));
+            userShouyeMapper.deleteBatchIds(userShouyes);
+            return Result.OK(null,"解散成功");
+        }else{
+            return Result.ERR(null,"权限不足");
+        }
+    }
 
 
 }