Jelajahi Sumber

题库获取各类型题目数

yangfeng 1 tahun lalu
induk
melakukan
386e5f92e2

+ 2 - 30
web/src/main/java/com/ynfy/app/api/v1/controller/ApiRepositoryController.java

@@ -5,8 +5,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ynfy.app.api.v1.annoation.IgnoreAuth;
 import com.ynfy.app.api.v1.annoation.IgnoreAuth;
 import com.ynfy.app.api.v1.entity.dto.RepositoryDTO;
 import com.ynfy.app.api.v1.entity.dto.RepositoryDTO;
-import com.ynfy.buss.exam.question.dto.QuestionDTO;
-import com.ynfy.buss.exam.question.enums.QuestionType;
 import com.ynfy.buss.exam.question.service.IQuestionService;
 import com.ynfy.buss.exam.question.service.IQuestionService;
 import com.ynfy.buss.exam.repository.entity.Repository;
 import com.ynfy.buss.exam.repository.entity.Repository;
 import com.ynfy.buss.exam.repository.service.IRepositoryService;
 import com.ynfy.buss.exam.repository.service.IRepositoryService;
@@ -15,13 +13,8 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.api.vo.Result;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
 @Slf4j
 @Slf4j
 @RestController
 @RestController
 @RequestMapping("/api/v1/repository")
 @RequestMapping("/api/v1/repository")
@@ -48,29 +41,8 @@ public class ApiRepositoryController extends ApiBaseController {
             query.like(Repository::getTitle, repositoryDTO.getRepositoryTitle());
             query.like(Repository::getTitle, repositoryDTO.getRepositoryTitle());
         }
         }
         IPage<Repository> pageList = repositoryService.page(page, query);
         IPage<Repository> pageList = repositoryService.page(page, query);
-        List<Repository> list = pageList.getRecords();
-        if (!CollectionUtils.isEmpty(list)) {
-            List<String> idList = list.stream().map(Repository::getId).collect(Collectors.toList());
-            List<QuestionDTO> questionDTOList = questionService.countQuestionType(idList);
-            Map<String, List<QuestionDTO>> map = questionDTOList.stream().collect(Collectors
-                    .groupingBy(QuestionDTO::getRepositoryId, Collectors.toList()));
-            list.forEach(l -> {
-                List<QuestionDTO> dtoList = map.get(l.getId());
-                if (!CollectionUtils.isEmpty(dtoList)) {
-                    l.setNum(dtoList.stream().mapToInt(QuestionDTO::getNum).sum());
-                    StringBuilder str = new StringBuilder();
-                    int index = 0;
-                    for (QuestionDTO dto : dtoList) {
-                        str.append(QuestionType.getByCode(dto.getType()).getValue()).append(dto.getNum()).append("题");
-                        if (index < dtoList.size() - 1) {
-                            str.append(",");
-                        }
-                        index++;
-                    }
-                    l.setQuestionRemark(str.toString());
-                }
-            });
-        }
+        //题库获取各类型题目数
+        repositoryService.countQuestionNumByType(pageList.getRecords());
         return Result.OK(pageList);
         return Result.OK(pageList);
     }
     }
 
 

+ 2 - 28
web/src/main/java/com/ynfy/buss/exam/repository/controller/RepositoryController.java

@@ -3,8 +3,6 @@ package com.ynfy.buss.exam.repository.controller;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ynfy.buss.exam.question.dto.QuestionDTO;
-import com.ynfy.buss.exam.question.enums.QuestionType;
 import com.ynfy.buss.exam.question.service.IQuestionService;
 import com.ynfy.buss.exam.question.service.IQuestionService;
 import com.ynfy.buss.exam.repository.entity.Repository;
 import com.ynfy.buss.exam.repository.entity.Repository;
 import com.ynfy.buss.exam.repository.service.IRepositoryService;
 import com.ynfy.buss.exam.repository.service.IRepositoryService;
@@ -17,14 +15,11 @@ import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
 import java.util.Arrays;
 import java.util.Arrays;
 import java.util.List;
 import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
 
 
 /**
 /**
  * @Description: repository
  * @Description: repository
@@ -74,29 +69,8 @@ public class RepositoryController extends JeecgController<Repository, IRepositor
         QueryWrapper<Repository> queryWrapper = QueryGenerator.initQueryWrapper(repository, req.getParameterMap());
         QueryWrapper<Repository> queryWrapper = QueryGenerator.initQueryWrapper(repository, req.getParameterMap());
         Page<Repository> page = new Page<Repository>(pageNo, pageSize);
         Page<Repository> page = new Page<Repository>(pageNo, pageSize);
         IPage<Repository> pageList = repositoryService.page(page, queryWrapper);
         IPage<Repository> pageList = repositoryService.page(page, queryWrapper);
-        List<Repository> list = pageList.getRecords();
-        if (!CollectionUtils.isEmpty(list)) {
-            List<String> idList = list.stream().map(Repository::getId).collect(Collectors.toList());
-            List<QuestionDTO> questionDTOList = questionService.countQuestionType(idList);
-            Map<String, List<QuestionDTO>> map = questionDTOList.stream().collect(Collectors
-                    .groupingBy(QuestionDTO::getRepositoryId, Collectors.toList()));
-            list.forEach(l -> {
-                List<QuestionDTO> dtoList = map.get(l.getId());
-                if (!CollectionUtils.isEmpty(dtoList)) {
-                    l.setNum(dtoList.stream().mapToInt(QuestionDTO::getNum).sum());
-                    StringBuilder str = new StringBuilder();
-                    int index = 0;
-                    for (QuestionDTO dto : dtoList) {
-                        str.append(QuestionType.getByCode(dto.getType()).getValue()).append(dto.getNum()).append("题");
-                        if (index < dtoList.size() - 1) {
-                            str.append(",");
-                        }
-                        index++;
-                    }
-                    l.setQuestionRemark(str.toString());
-                }
-            });
-        }
+        //题库获取各类型题目数
+        repositoryService.countQuestionNumByType(pageList.getRecords());
         return Result.OK(pageList);
         return Result.OK(pageList);
     }
     }
 
 

+ 8 - 0
web/src/main/java/com/ynfy/buss/exam/repository/service/IRepositoryService.java

@@ -3,6 +3,8 @@ package com.ynfy.buss.exam.repository.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ynfy.buss.exam.repository.entity.Repository;
 import com.ynfy.buss.exam.repository.entity.Repository;
 
 
+import java.util.List;
+
 /**
 /**
  * @Description: repository
  * @Description: repository
  * @Author: jeecg-boot
  * @Author: jeecg-boot
@@ -11,4 +13,10 @@ import com.ynfy.buss.exam.repository.entity.Repository;
  */
  */
 public interface IRepositoryService extends IService<Repository> {
 public interface IRepositoryService extends IService<Repository> {
 
 
+    /**
+     * 题库获取各类型题目数
+     *
+     * @param list
+     */
+    void countQuestionNumByType(List<Repository> list);
 }
 }

+ 42 - 0
web/src/main/java/com/ynfy/buss/exam/repository/service/impl/RepositoryServiceImpl.java

@@ -1,10 +1,19 @@
 package com.ynfy.buss.exam.repository.service.impl;
 package com.ynfy.buss.exam.repository.service.impl;
 
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ynfy.buss.exam.question.dto.QuestionDTO;
+import com.ynfy.buss.exam.question.enums.QuestionType;
+import com.ynfy.buss.exam.question.service.IQuestionService;
 import com.ynfy.buss.exam.repository.entity.Repository;
 import com.ynfy.buss.exam.repository.entity.Repository;
 import com.ynfy.buss.exam.repository.mapper.RepositoryMapper;
 import com.ynfy.buss.exam.repository.mapper.RepositoryMapper;
 import com.ynfy.buss.exam.repository.service.IRepositoryService;
 import com.ynfy.buss.exam.repository.service.IRepositoryService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * @Description: repository
  * @Description: repository
@@ -15,4 +24,37 @@ import org.springframework.stereotype.Service;
 @Service
 @Service
 public class RepositoryServiceImpl extends ServiceImpl<RepositoryMapper, Repository> implements IRepositoryService {
 public class RepositoryServiceImpl extends ServiceImpl<RepositoryMapper, Repository> implements IRepositoryService {
 
 
+    @Autowired
+    public IQuestionService questionService;
+
+    /**
+     * 题库获取各类型题目数
+     *
+     * @param list
+     */
+    @Override
+    public void countQuestionNumByType(List<Repository> list) {
+        if (!CollectionUtils.isEmpty(list)) {
+            List<String> idList = list.stream().map(Repository::getId).collect(Collectors.toList());
+            List<QuestionDTO> questionDTOList = questionService.countQuestionType(idList);
+            Map<String, List<QuestionDTO>> map = questionDTOList.stream().collect(Collectors
+                    .groupingBy(QuestionDTO::getRepositoryId, Collectors.toList()));
+            list.forEach(l -> {
+                List<QuestionDTO> dtoList = map.get(l.getId());
+                if (!CollectionUtils.isEmpty(dtoList)) {
+                    l.setNum(dtoList.stream().mapToInt(QuestionDTO::getNum).sum());
+                    StringBuilder str = new StringBuilder();
+                    int index = 0;
+                    for (QuestionDTO dto : dtoList) {
+                        str.append(QuestionType.getByCode(dto.getType()).getValue()).append(dto.getNum()).append("题");
+                        if (index < dtoList.size() - 1) {
+                            str.append(",");
+                        }
+                        index++;
+                    }
+                    l.setQuestionRemark(str.toString());
+                }
+            });
+        }
+    }
 }
 }