Browse Source

feat: ProjectController及之后的一系列文件
尝试与devcloud系统链接,成功

mjh 4 năm trước cách đây
mục cha
commit
4537248287

+ 2 - 1
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/config/SpringSecurityConfiguration.java

@@ -98,7 +98,8 @@ public class SpringSecurityConfiguration extends WebSecurityConfigurerAdapter {
                         "/api/message/getUnreadByUser",
                         "/api/message/getByCourseId",
                         "/api/message/getView",
-                        "/api/message/read"
+                        "/api/message/read",
+                        "/api/project/findAll"
                 )
                 .permitAll() // authenticate
                 .and()

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

@@ -0,0 +1,7 @@
+package cn.seecoder.seecoderportalserver.service;
+
+import com.alibaba.fastjson.JSONObject;
+
+public interface ProjectService {
+    JSONObject findAllProjects();
+}

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

@@ -0,0 +1,7 @@
+package cn.seecoder.seecoderportalserver.service.subsystem;
+
+import com.alibaba.fastjson.JSONObject;
+
+public interface DevcloudService {
+    JSONObject findAllProjects();
+}

+ 1 - 1
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/service/SubsystemService.java → seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/service/subsystem/SubsystemService.java

@@ -1,4 +1,4 @@
-package cn.seecoder.seecoderportalserver.service;
+package cn.seecoder.seecoderportalserver.service.subsystem;
 
 import cn.seecoder.seecoderportalcommon.vo.CourseVO;
 import com.alibaba.fastjson.JSONObject;

+ 4 - 1
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/serviceImpl/CourseServiceImpl.java

@@ -11,6 +11,9 @@ import cn.seecoder.seecoderportalserver.repository.CourseRepository;
 import cn.seecoder.seecoderportalserver.repository.CourseSelectionRepository;
 import cn.seecoder.seecoderportalserver.service.CourseService;
 import cn.seecoder.seecoderportalserver.service.UserService;
+import cn.seecoder.seecoderportalserver.serviceImpl.subsystem.CoderService;
+import cn.seecoder.seecoderportalserver.serviceImpl.subsystem.EvalService;
+import cn.seecoder.seecoderportalserver.serviceImpl.subsystem.HelperService;
 import cn.seecoder.seecoderportalserver.web.rest.errors.CustomErrorException;
 import com.alibaba.fastjson.JSONObject;
 import org.springframework.stereotype.Service;
@@ -207,7 +210,7 @@ public class CourseServiceImpl implements CourseService {
         return course == null || course.getId().equals(id);
     }
 
-    public CourseVO findCourseByEvalId(int evalId) throws Exception{
+    public CourseVO findCourseByEvalId(int evalId){
         Course course = courseRepository.findCourseByEvalId(evalId).orElseThrow(CustomErrorException::courseNotFound);
         return course.getState() == ObjectState.DELETED ? null : courseMapper.courseToCourseVO(course);
     }

+ 2 - 2
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/serviceImpl/ExamServiceImpl.java

@@ -1,15 +1,15 @@
 package cn.seecoder.seecoderportalserver.serviceImpl;
 
 import cn.seecoder.seecoderportalcommon.vo.CourseVO;
-import cn.seecoder.seecoderportalserver.domain.Course;
 import cn.seecoder.seecoderportalserver.service.CourseService;
 import cn.seecoder.seecoderportalserver.service.ExamService;
+import cn.seecoder.seecoderportalserver.serviceImpl.subsystem.CoderService;
+import cn.seecoder.seecoderportalserver.serviceImpl.subsystem.EvalService;
 import cn.seecoder.seecoderportalserver.web.rest.errors.CustomErrorException;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
 import java.util.List;
 
 @Service

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

@@ -0,0 +1,19 @@
+package cn.seecoder.seecoderportalserver.serviceImpl;
+
+import cn.seecoder.seecoderportalserver.service.ProjectService;
+import cn.seecoder.seecoderportalserver.service.subsystem.DevcloudService;
+import com.alibaba.fastjson.JSONObject;
+import org.springframework.stereotype.Service;
+
+@Service
+public class ProjectServiceImpl implements ProjectService {
+    private final DevcloudService devcloudService;
+
+    public ProjectServiceImpl(DevcloudService devcloudService) {this.devcloudService = devcloudService;}
+
+    @Override
+    // todo
+    public JSONObject findAllProjects() {
+        return devcloudService.findAllProjects();
+    }
+}

+ 2 - 2
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/serviceImpl/CoderService.java → seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/serviceImpl/subsystem/CoderService.java

@@ -1,8 +1,8 @@
-package cn.seecoder.seecoderportalserver.serviceImpl;
+package cn.seecoder.seecoderportalserver.serviceImpl.subsystem;
 
 import cn.seecoder.seecoderportalcommon.vo.CourseVO;
 import cn.seecoder.seecoderportalserver.service.HttpService;
-import cn.seecoder.seecoderportalserver.service.SubsystemService;
+import cn.seecoder.seecoderportalserver.service.subsystem.SubsystemService;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;

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

@@ -0,0 +1,34 @@
+package cn.seecoder.seecoderportalserver.serviceImpl.subsystem;
+
+import cn.seecoder.seecoderportalserver.service.subsystem.DevcloudService;
+import cn.seecoder.seecoderportalserver.service.HttpService;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import org.apache.http.NameValuePair;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+public class DevcloudServiceImpl implements DevcloudService {
+    private final String devcloudUri = "https://devcloud-server.seec.seecoder.cn";
+    private final HttpService httpService;
+
+    public DevcloudServiceImpl(HttpService httpService) {this.httpService = httpService;}
+
+    @Override
+    // todo
+    public JSONObject findAllProjects() {
+        String uri =  devcloudUri + "/project/listByUser";
+        List<NameValuePair> params = new ArrayList<>();
+        String token = httpService.getToken();
+        String result = null;
+        try {
+            result = httpService.sendGet(uri, params, token);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return JSON.parseObject(result);
+    }
+}

+ 2 - 2
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/serviceImpl/EvalService.java → seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/serviceImpl/subsystem/EvalService.java

@@ -1,8 +1,8 @@
-package cn.seecoder.seecoderportalserver.serviceImpl;
+package cn.seecoder.seecoderportalserver.serviceImpl.subsystem;
 
 import cn.seecoder.seecoderportalcommon.vo.CourseVO;
 import cn.seecoder.seecoderportalserver.service.HttpService;
-import cn.seecoder.seecoderportalserver.service.SubsystemService;
+import cn.seecoder.seecoderportalserver.service.subsystem.SubsystemService;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import org.apache.http.NameValuePair;

+ 2 - 2
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/serviceImpl/HelperService.java → seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/serviceImpl/subsystem/HelperService.java

@@ -1,7 +1,7 @@
-package cn.seecoder.seecoderportalserver.serviceImpl;
+package cn.seecoder.seecoderportalserver.serviceImpl.subsystem;
 
 import cn.seecoder.seecoderportalcommon.vo.CourseVO;
-import cn.seecoder.seecoderportalserver.service.SubsystemService;
+import cn.seecoder.seecoderportalserver.service.subsystem.SubsystemService;
 import com.alibaba.fastjson.JSONObject;
 import org.springframework.stereotype.Service;
 

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

@@ -0,0 +1,21 @@
+package cn.seecoder.seecoderportalserver.web.rest;
+
+import cn.seecoder.seecoderportalserver.service.ProjectService;
+import cn.seecoder.seecoderportalserver.utility.OkResponse;
+import com.alibaba.fastjson.JSONObject;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/api/project")
+public class ProjectController {
+    private final ProjectService projectService;
+
+    public ProjectController(ProjectService projectService) {this.projectService = projectService;}
+
+    @GetMapping("/findAll")
+    public OkResponse<JSONObject> findAllProjects(){
+        return OkResponse.of(projectService.findAllProjects());
+    }
+}