Jelajahi Sumber

feat:增加了解散团队功能

DingXiaoYu 3 tahun lalu
induk
melakukan
1335152f31

+ 4 - 0
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/repository/group/GroupMemberRepository.java

@@ -2,6 +2,7 @@ package cn.seecoder.seecoderportalserver.repository.group;
 
 import cn.seecoder.seecoderportalserver.domain.group.GroupMember;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Delete;
 import org.apache.ibatis.annotations.Insert;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
@@ -56,4 +57,7 @@ public interface GroupMemberRepository extends BaseMapper<GroupMember> {
      */
     @Select("select * from ${name} where group_id=${groupId}")
     List<GroupMember> findByGroupId(@Param("name") String name, @Param("groupId") Long groupId);
+
+    @Delete("delete from ${name} where group_id=${id}")
+    void deleteGroupMemberTableById(@Param("name")String name,@Param("id")Long id);
 }

+ 0 - 6
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/repository/group/GroupRepository.java

@@ -55,12 +55,6 @@ public interface GroupRepository extends BaseMapper<Group> {
     @Select("select * from ${name}")
     List<Group> findAll(@Param("name") String name);
 
-    @Select("select group_id from ${name} where user_id=${id}")
-    Integer findGroupByUserId(@Param("name") String name, @Param("id")Long id);
-
-    @Delete("delete from ${name} where group_id=${id}")
-    void deleteGroupMemberTableById(@Param("name")String name,@Param("id")Long id);
-
     @Delete("delete from ${name} where id=${id}")
     void deleteGroupTableById(@Param("name")String name,@Param("id")Long id);
 }

+ 2 - 1
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/service/GroupService.java

@@ -6,6 +6,7 @@ import cn.seecoder.seecoderportalcommon.vo.group.GroupMemberVO;
 import cn.seecoder.seecoderportalcommon.vo.group.GroupRuleVO;
 import cn.seecoder.seecoderportalcommon.vo.group.GroupVO;
 import cn.seecoder.seecoderportalserver.web.rest.errors.CustomErrorException;
+import org.postgresql.util.PSQLException;
 
 import java.util.List;
 
@@ -72,5 +73,5 @@ public interface GroupService {
     List<GroupDTO> findAllGroupsByCourse(Long courseId);
 
 
-    Boolean deleteGroup(Long userId,Long courseId);
+    Boolean deleteGroup(Long userId,Long courseId) throws PSQLException;
 }

+ 5 - 5
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/serviceImpl/GroupServiceImpl.java

@@ -203,9 +203,9 @@ public class GroupServiceImpl implements GroupService {
     }
 
     @Override
-    public Boolean deleteGroup(Long userId,Long courseId) {
-        long groupId=groupRepository.findGroupByUserId(getGroupMemberTableName(courseId),userId);
-        groupRepository.deleteGroupMemberTableById(getGroupMemberTableName(courseId),groupId);
+    public Boolean deleteGroup(Long userId,Long courseId) throws PSQLException {
+        long groupId=groupMemberRepository.findByUserId(getGroupMemberTableName(courseId),userId).getGroupId();
+        groupMemberRepository.deleteGroupMemberTableById(getGroupMemberTableName(courseId),groupId);
         groupRepository.deleteGroupTableById(getGroupTableName(courseId),groupId);
         return true;
     }
@@ -254,14 +254,14 @@ public class GroupServiceImpl implements GroupService {
     }
 
     @Transactional(rollbackFor = RuntimeException.class)
-    protected String createGroupTable(GroupRuleVO groupRuleVO) {
+    public String createGroupTable(GroupRuleVO groupRuleVO) {
         String tableName = getGroupTableName(groupRuleVO.getCourseVO().getId());
         groupRepository.createGroupTable(tableName, groupRuleVO.getMaxNameLen().toString());
         return tableName;
     }
 
     @Transactional(rollbackFor = RuntimeException.class)
-    protected String createGroupMemberTable(Long courseId) {
+    public String createGroupMemberTable(Long courseId) {
         String tableName = getGroupMemberTableName(courseId);
         groupMemberRepository.createGroupMemberTable(tableName, getGroupTableName(courseId));
         return tableName;

+ 2 - 1
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/web/rest/GroupController.java

@@ -6,6 +6,7 @@ import cn.seecoder.seecoderportalcommon.vo.group.GroupRuleVO;
 import cn.seecoder.seecoderportalcommon.vo.group.GroupVO;
 import cn.seecoder.seecoderportalserver.service.GroupService;
 import cn.seecoder.seecoderportalserver.utility.OkResponse;
+import org.postgresql.util.PSQLException;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
@@ -34,7 +35,7 @@ public class GroupController {
 
     @GetMapping("/delete")
     public OkResponse<Boolean> deleteGroup(@RequestParam(value = "userId") Long userId,
-                                           @RequestParam(value = "courseId")Long courseId){
+                                           @RequestParam(value = "courseId")Long courseId) throws PSQLException {
         return OkResponse.of(groupService.deleteGroup(userId,courseId));
     }