Ver Fonte

增加删除fork功能

hushuyu há 4 meses atrás
pai
commit
42d0a2138b

+ 8 - 0
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/service/ProjectService.java

@@ -71,6 +71,14 @@ public interface ProjectService {
      */
     JSONObject forkPublicProject(Integer projectId, String name);
 
+    /**
+     * 删除fork项目
+     *
+     * @param projectId Integer
+     * @return JSONObject
+     */
+    JSONObject deleteProject(Integer projectId);
+
     /**
      * 查找项目成员
      *

+ 8 - 0
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/service/subsystem/DevcloudService.java

@@ -49,6 +49,14 @@ public interface DevcloudService {
      */
     JSONObject forkProject(Integer projectId, String name);
 
+    /**
+     * deleteProject
+     *
+     * @param projectId Integer
+     * @return JSONObject
+     */
+    JSONObject deleteProject(Integer projectId);
+
     /**
      * getProjectVisibility
      *

+ 7 - 0
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/serviceImpl/ProjectServiceImpl.java

@@ -185,6 +185,13 @@ public class ProjectServiceImpl implements ProjectService {
         return devcloudService.getProjectMembers(projectId);
     }
 
+    @Override
+    @Transactional(rollbackFor = RuntimeException.class)
+    public JSONObject deleteProject(Integer projectId) {
+        courseProjectRepository.deleteById(projectId);
+        return devcloudService.deleteProject(projectId);
+    }
+
     @Override
     public JSONObject findAllPublicProjectsGroupByCourse() {
         List<CourseVO> courseVOList = courseService.findRecommendCourses();

+ 26 - 0
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/serviceImpl/subsystem/DevcloudServiceImpl.java

@@ -147,6 +147,32 @@ public class DevcloudServiceImpl implements DevcloudService {
         return result;
     }
 
+    @Override
+    public JSONObject deleteProject(Integer projectId) {
+        JSONObject result;
+        List<NameValuePair> params = new ArrayList<>();
+        params.add(new BasicNameValuePair("projectId", String.valueOf(projectId)));
+        try {
+            result = JSONObject.parseObject(
+                    httpService.sendDelete(
+                            devcloudUri + "/project",
+                            params,
+                            httpService.getToken()
+                    )
+            );
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+        if (result == null) {
+            throw CustomErrorException.devcloudError("deleteProject() = NULL!");
+        }
+        if (result.containsKey("code") && result.getInteger("code") == 200) {
+            return result;
+        } else {
+            throw CustomErrorException.devcloudError(result.toString());
+        }
+    }
+
     @Override
     public JSONObject addMember(Integer projectId, String phone) {
         JSONObject result;

+ 5 - 0
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/web/rest/ProjectController.java

@@ -73,6 +73,11 @@ public class ProjectController {
         return OkResponse.of(projectService.forkPublicProject(projectId, name));
     }
 
+    @ApiOperation(value = "删除fork项目", httpMethod = "DELETE")
+    @DeleteMapping("/deleteFork")
+    public OkResponse<JSONObject> deleteProject(@RequestParam Integer projectId) {
+        return OkResponse.of(projectService.deleteProject(projectId));
+    }
 
     @ApiOperation(value = "查找全部公开项目", httpMethod = "GET")
     @GetMapping("/findAllPublicGroupByCourse")