181250114 4 лет назад
Родитель
Сommit
c737988aa5

+ 27 - 0
src/main/java/com/seecoder/dataanalysis/analysis/DisplayService.java

@@ -0,0 +1,27 @@
+package com.seecoder.dataanalysis.analysis;
+
+import com.seecoder.dataanalysis.data.entity.devcloud.display.FormatGroup;
+import com.seecoder.dataanalysis.data.entity.eval.User;
+
+import java.util.List;
+
+/**
+ * @author Peng Yiyan
+ * @since 2022/07/02
+ * 用于提供展示数据的接口
+ */
+public interface DisplayService {
+
+    /**
+     * 返回所有的User
+     * @return List<User>
+     */
+    List<User> getAllUsers();
+
+    /**
+     * 根据学生id返回小组分析结果
+     * @param user_id
+     * @return FormatGroup
+     */
+    FormatGroup getGroupAnalysisById(Integer user_id);
+}

+ 7 - 0
src/main/java/com/seecoder/dataanalysis/analysis/EvalDataAnalysisService.java

@@ -16,6 +16,13 @@ import java.util.Map;
 
 public interface EvalDataAnalysisService {
 
+    /**
+     * 返回学生的原始能力树
+     * @param userId 学生id
+     * @return competency_tree 能力树0
+     */
+    CompetencyTree getOriTree(int userId);
+
     /**
      * 根据学生id,分析该学生的能力树,返回可用于可视化的结果
      * @param userId 学生id

+ 47 - 0
src/main/java/com/seecoder/dataanalysis/analysis/impl/DisplayServiceImpl.java

@@ -0,0 +1,47 @@
+package com.seecoder.dataanalysis.analysis.impl;
+
+import com.seecoder.dataanalysis.analysis.DevcloudDataAnalysisService;
+import com.seecoder.dataanalysis.analysis.DisplayService;
+import com.seecoder.dataanalysis.data.dao.devcloud.DevcloudUserDao;
+import com.seecoder.dataanalysis.data.dao.devcloud.ProjectRelateDao;
+import com.seecoder.dataanalysis.data.dao.eval.UserDao;
+import com.seecoder.dataanalysis.data.entity.devcloud.DevcloudUser;
+import com.seecoder.dataanalysis.data.entity.devcloud.display.FormatGroup;
+import com.seecoder.dataanalysis.data.entity.eval.User;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Optional;
+
+@Service
+public class DisplayServiceImpl implements DisplayService {
+    @Autowired
+    private UserDao userDao;
+    @Autowired
+    private ProjectRelateDao projectRelateDao;
+    @Autowired
+    private DevcloudUserDao devcloudUserDao;
+    @Autowired
+    private DevcloudDataAnalysisService devcloudDataAnalysisService;
+
+    @Override
+    public List<User> getAllUsers(){
+        List<User> users = userDao.findAll();
+        return users;
+    }
+
+    @Override
+    public FormatGroup getGroupAnalysisById(Integer user_id){
+        Optional<DevcloudUser> result = devcloudUserDao.findById(user_id);
+        if(!result.isPresent()){
+            System.out.println("找不到用户的项目");
+            return null;
+        }
+
+        DevcloudUser devcloudUser = devcloudUserDao.findById(user_id).get();
+        List<Integer> projectIds = devcloudUser.getProjectIds();
+
+        return devcloudDataAnalysisService.getGroupAnalysis(projectIds.get(0));
+    }
+}

+ 11 - 0
src/main/java/com/seecoder/dataanalysis/analysis/impl/EvalDataAnalysisServiceImpl.java

@@ -36,6 +36,17 @@ public class EvalDataAnalysisServiceImpl implements EvalDataAnalysisService {
     @Autowired
     private QuestionService questionService;
 
+    @Override
+    public CompetencyTree getOriTree(int userId){
+        Optional<CompetencyTree> result = competencyTreeDao.findById(userId);
+        if(!result.isPresent()){
+            System.out.println("找不到该学生的能力树");
+            return null;
+        }
+        CompetencyTree competencyTree = competencyTreeDao.findById(userId).get();
+        return competencyTree;
+    }
+
     @Override
     public CompetencyTree getTreeById(int userId){
 

+ 30 - 0
src/main/java/com/seecoder/dataanalysis/controller/DisplayController.java

@@ -0,0 +1,30 @@
+package com.seecoder.dataanalysis.controller;
+
+import com.seecoder.dataanalysis.analysis.DisplayService;
+import com.seecoder.dataanalysis.vo.ResponseVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/display")
+public class DisplayController {
+    private final DisplayService displayService;
+
+    @Autowired
+    public DisplayController(DisplayService displayService){
+        this.displayService = displayService;
+    }
+
+    @GetMapping("/getAllUsers")
+    public ResponseVO getAllUsers(){
+        return ResponseVO.buildSuccess(displayService.getAllUsers());
+    }
+
+    @GetMapping("getGroupAnalysisById")
+    public ResponseVO getGroupAnalysisById(@RequestParam(value = "user_id") Integer user_id){
+        return ResponseVO.buildSuccess(displayService.getGroupAnalysisById(user_id));
+    }
+}

+ 5 - 0
src/main/java/com/seecoder/dataanalysis/controller/EvalController.java

@@ -25,6 +25,11 @@ public class EvalController {
         this.evalDataAnalysisService = evalDataAnalysisService;
     }
 
+    @GetMapping("/getOriTree")
+    public ResponseVO getOriTree(@RequestParam(value = "user_id") int user_id){
+        return ResponseVO.buildSuccess(evalDataAnalysisService.getOriTree(user_id));
+    }
+
     @GetMapping("/getTreeById")
     public ResponseVO getTreeById(@RequestParam(value = "user_id") int user_id){
         return ResponseVO.buildSuccess(evalDataAnalysisService.getTreeById(user_id));

+ 17 - 0
src/test/java/com/seecoder/dataanalysis/devcloud/impl/DisplayServiceImplTest.java

@@ -0,0 +1,17 @@
+package com.seecoder.dataanalysis.devcloud.impl;
+
+import com.seecoder.dataanalysis.analysis.DisplayService;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+public class DisplayServiceImplTest {
+    @Autowired
+    private DisplayService displayService;
+
+    @Test
+    void testGetAllUser(){
+        System.out.println(displayService.getAllUsers().size());
+    }
+}