Browse Source

Merge branch 'master' of ssh://192.168.8.213:10022/miaxis/jkt

Althars123 3 years ago
parent
commit
c56e963779

+ 5 - 3
jkt-admin/src/main/java/com/miaxis/app/controller/question/QuestionCollectionController.java

@@ -90,7 +90,7 @@ public class QuestionCollectionController extends BaseController {
         QuestionCollectionListDTO dto = new QuestionCollectionListDTO();
         dto.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
         List<QuestionCollection> list = questionCollectionService.selectQuestionCollectionList(dto);
-        long count = list.stream().filter(o -> questionCollectionDTO.getQuestionId().equals(o.getQuestionId())).count();
+        long count = list.stream().filter(o -> questionCollectionDTO.getQuestionId().equals(o.getQuestionId()) && questionCollectionDTO.getKm().equals(o.getKm())).count();
         if (count > 0) {
             throw new CustomException("该题目已收藏过");
         }
@@ -107,10 +107,12 @@ public class QuestionCollectionController extends BaseController {
         QuestionCollectionListDTO dto = new QuestionCollectionListDTO();
         dto.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
         List<QuestionCollection> dblist = questionCollectionService.selectQuestionCollectionList(dto);
-        List<Long> questionIds = dblist.stream().map(o -> o.getQuestionId()).collect(Collectors.toList());
+        List<String> questionIds = dblist.stream().map(o -> (o.getQuestionId()+","+o.getKm())).collect(Collectors.toList());
+
+
         List<QuestionCollection> qlist = new ArrayList<QuestionCollection>();
         for (QuestionCollectionDTO questionCollectionDTO : list) {
-            if (questionIds.contains(questionCollectionDTO.getQuestionId())) {
+            if (questionIds.contains(questionCollectionDTO.getQuestionId()+","+questionCollectionDTO.getKm())) {
                 continue;
             }
             QuestionCollection questionCollection = new QuestionCollection();

+ 4 - 4
jkt-admin/src/main/java/com/miaxis/app/controller/question/QuestionWrongController.java

@@ -92,9 +92,9 @@ public class QuestionWrongController extends BaseController{
         QuestionWrongListDTO dto = new QuestionWrongListDTO();
         dto.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
         List<QuestionWrong> list = questionWrongService.selectQuestionWrongList(dto);
-        long count = list.stream().filter(o -> questionWrongDTO.getQuestionId().equals(o.getQuestionId())).count();
+        long count = list.stream().filter(o -> questionWrongDTO.getQuestionId().equals(o.getQuestionId()) &&  questionWrongDTO.getKm().equals(o.getKm())).count();
         if (count > 0) {
-            throw new CustomException("");
+            throw new CustomException("该错已加入错题集");
         }
         QuestionWrong questionWrong = new QuestionWrong();
         BeanUtils.copyProperties(questionWrongDTO,questionWrong);
@@ -109,10 +109,10 @@ public class QuestionWrongController extends BaseController{
         QuestionWrongListDTO dto = new QuestionWrongListDTO();
         dto.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
         List<QuestionWrong> dblist = questionWrongService.selectQuestionWrongList(dto);
-        List<Long> questionIds = dblist.stream().map(o -> o.getQuestionId()).collect(Collectors.toList());
+        List<String> questionIds = dblist.stream().map(o -> o.getQuestionId()+","+o.getKm()).collect(Collectors.toList());
         List<QuestionWrong> qlist = new ArrayList<QuestionWrong>();
         for (QuestionWrongDTO questionWrongDTO : list) {
-            if (questionIds.contains(questionWrongDTO.getQuestionId())) {
+            if (questionIds.contains(questionWrongDTO.getQuestionId()+","+questionWrongDTO.getKm())) {
                 continue;
             }
             QuestionWrong questionWrong = new QuestionWrong();

+ 28 - 17
jkt-admin/src/main/java/com/miaxis/app/controller/score/ScoreInfoController.java

@@ -10,6 +10,7 @@ import com.miaxis.common.utils.SecurityUtils;
 import com.miaxis.common.utils.poi.ExcelUtil;
 import com.miaxis.question.domain.QuestionCollection;
 import com.miaxis.score.domain.ScoreInfo;
+import com.miaxis.score.dto.ScoreInfoAllDTO;
 import com.miaxis.score.dto.ScoreInfoDTO;
 import com.miaxis.score.service.IScoreInfoService;
 import io.swagger.annotations.*;
@@ -107,29 +108,39 @@ public class ScoreInfoController extends BaseController{
     /**
      * 获取预测成功
      */
-    @GetMapping(value = "/forecastScore")
-    @ApiOperation("获取预测成绩")
-    public Response<Integer> getInfo(){
-        ScoreInfo scoreInfo = new ScoreInfo();
-        scoreInfo.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
-        int forecastScore = scoreInfoService.getForecastScore(scoreInfo);
-//        Map<String,Object> map = new HashMap<String,Object>();
-//        map.put("forecastScore",forecastScore);
-        return Response.success(forecastScore);
-    }
+//    @GetMapping(value = "/forecastScore")
+//    @ApiOperation("获取预测成绩")
+//    public Response<Integer> getInfo(){
+//        ScoreInfo scoreInfo = new ScoreInfo();
+//        scoreInfo.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
+//        int forecastScore = scoreInfoService.getForecastScore(scoreInfo);
+//        return Response.success(forecastScore);
+//    }
 
 
     /**
      * 获取预测成功
      */
-    @GetMapping(value = "/avgScore")
-    @ApiOperation("获取平均成绩")
-    public Response<Integer> getAvgScore(){
+//    @GetMapping(value = "/avgScore")
+//    @ApiOperation("获取平均成绩")
+//    public Response<Integer> getAvgScore(){
+//        ScoreInfo scoreInfo = new ScoreInfo();
+//        scoreInfo.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
+//        int aveScore = scoreInfoService.getAveScore(scoreInfo);
+//        return Response.success(aveScore);
+//    }
+
+
+
+    /**
+     * 获取最大成绩,平均成绩,预测成绩
+     */
+    @GetMapping(value = "/getScoreInfoAll")
+    @ApiOperation("获取最大成绩,平均成绩,预测成绩")
+    public Response<ScoreInfoAllDTO> getScoreInfoAll(){
         ScoreInfo scoreInfo = new ScoreInfo();
         scoreInfo.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
-        int aveScore = scoreInfoService.getAveScore(scoreInfo);
-//        Map<String,Object> map = new HashMap<String,Object>();
-//        map.put("forecastScore",forecastScore);
-        return Response.success(aveScore);
+        ScoreInfoAllDTO scoreInfoAllDTO = scoreInfoService.getScoreInfoAll(scoreInfo);
+        return Response.success(scoreInfoAllDTO);
     }
 }

+ 2 - 2
jkt-service/src/main/java/com/miaxis/question/dto/QuestionCollectionDTO.java

@@ -24,11 +24,11 @@ public class QuestionCollectionDTO {
     private Long questionId;
 
     /** 科目 */
-    @ApiModelProperty(value = "考试科目(科目一、科目二、科目三、科目四)")
+    @ApiModelProperty(value = "考试科目(科目一、科目二、科目三、科目四)",required=true)
     private String km;
 
     /** 车型 */
-    @ApiModelProperty(value = "车型(小车 、客车、货车、摩托车)")
+    @ApiModelProperty(value = "车型(小车 、客车、货车、摩托车)",required=true)
     private String carType;
 
 }

+ 2 - 2
jkt-service/src/main/java/com/miaxis/question/dto/QuestionWrongDTO.java

@@ -23,11 +23,11 @@ public class QuestionWrongDTO {
     private Long questionId;
 
     /** 科目 */
-    @ApiModelProperty(value = "考试科目(科目一、科目二、科目三、科目四)")
+    @ApiModelProperty(value = "考试科目(科目一、科目二、科目三、科目四)",required=true)
     private String km;
 
     /** 车型 */
-    @ApiModelProperty(value = "车型(小车 、客车、货车、摩托车)")
+    @ApiModelProperty(value = "车型(小车 、客车、货车、摩托车)",required=true)
     private String carType;
 
 }

+ 31 - 0
jkt-service/src/main/java/com/miaxis/score/dto/ScoreInfoAllDTO.java

@@ -0,0 +1,31 @@
+package com.miaxis.score.dto;
+
+import com.miaxis.common.core.domain.BaseBusinessEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 模拟考成绩对象 score_info
+ *
+ * @author miaxis
+ * @date 2021-08-23
+ */
+@Data
+public class ScoreInfoAllDTO {
+    private static final long serialVersionUID = 1L;
+
+
+
+    /** 最大成绩 */
+    @ApiModelProperty(value = "最大成绩")
+    private Integer maxScore;
+
+    /** 平均成绩 */
+    @ApiModelProperty(value = "平均成绩")
+    private Integer avgScore;
+
+    /** 预测成绩 */
+    @ApiModelProperty(value = "预测成绩")
+    private Integer forecastScore;
+
+}

+ 7 - 0
jkt-service/src/main/java/com/miaxis/score/mapper/ScoreInfoMapper.java

@@ -34,4 +34,11 @@ public interface ScoreInfoMapper extends BaseMapper<ScoreInfo> {
      * @return
      */
     public List getLast10Score(ScoreInfo scoreInfo);
+
+    /**
+     * 返回最大成绩
+     * @param scoreInfo
+     * @return
+     */
+    public int getMaxScore(ScoreInfo scoreInfo);
 }

+ 19 - 0
jkt-service/src/main/java/com/miaxis/score/service/IScoreInfoService.java

@@ -3,6 +3,7 @@ package com.miaxis.score.service;
 import java.util.List;
 import com.miaxis.score.domain.ScoreInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.miaxis.score.dto.ScoreInfoAllDTO;
 
 /**
  * 模拟考成绩Service接口
@@ -32,4 +33,22 @@ public interface IScoreInfoService extends IService<ScoreInfo>{
      * @return
      */
     public int getForecastScore(ScoreInfo scoreInfo);
+
+
+    /**
+     * 最大成绩
+     * @param scoreInfo
+     * @return
+     */
+    public int getMaxScore(ScoreInfo scoreInfo);
+
+
+
+    /**
+     * 同时返回
+     * 最小成绩,最大成绩,平均成绩,预测成绩
+     * @param scoreInfo
+     * @return
+     */
+    public ScoreInfoAllDTO getScoreInfoAll(ScoreInfo scoreInfo);
 }

+ 24 - 2
jkt-service/src/main/java/com/miaxis/score/service/impl/ScoreInfoServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.miaxis.common.utils.DateUtils;
+import com.miaxis.score.dto.ScoreInfoAllDTO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.apache.commons.lang3.StringUtils;
@@ -51,9 +52,30 @@ public class ScoreInfoServiceImpl extends ServiceImpl<ScoreInfoMapper, ScoreInfo
         for (int a: list) {
             total +=a;
         }
-        int forecastScore= total/list.size();
-        return forecastScore;
+        if(total==0){
+            return 0;
+        } else {
+            int forecastScore= total/list.size();
+            return forecastScore;
+        }
     }
 
 
+
+    @Override
+    public int getMaxScore(ScoreInfo scoreInfo) {
+        int maxScore = scoreInfoMapper.getMaxScore(scoreInfo);
+        return maxScore;
+    }
+
+
+    @Override
+    public ScoreInfoAllDTO getScoreInfoAll(ScoreInfo scoreInfo) {
+        ScoreInfoAllDTO scoreInfoAllDTO = new ScoreInfoAllDTO();
+        scoreInfoAllDTO.setAvgScore(this.getAveScore(scoreInfo));
+        scoreInfoAllDTO.setForecastScore(this.getForecastScore(scoreInfo));
+        scoreInfoAllDTO.setMaxScore(this.getMaxScore(scoreInfo));
+        return scoreInfoAllDTO;
+    }
+
 }

+ 4 - 2
jkt-service/src/main/resources/mapper/question/QuestionCollectionMapper.xml

@@ -19,8 +19,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="selectQuestionCollectionList"  parameterType="QuestionCollectionListDTO" resultMap="QuestionCollectionResult">
         <include refid="selectQuestionCollectionVo"/>
         <where>
-            <if test="userId != null "> and user_id = #{userId}</if>
-            <if test="questionId != null "> and question_id = #{questionId}</if>
+            <if test="userId != null and userId !='' "> and user_id = #{userId}</if>
+            <if test="questionId != null and questionId !=''  "> and question_id = #{questionId}</if>
+            <if test="km != null and km !='' "> and km = #{km}</if>
+            <if test="carType != null and carType !='' "> and car_type = #{carType}</if>
         </where>
     </select>
 

+ 4 - 2
jkt-service/src/main/resources/mapper/question/QuestionWrongMapper.xml

@@ -19,8 +19,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="selectQuestionWrongList" parameterType="QuestionWrong" resultMap="QuestionWrongResult">
         <include refid="selectQuestionWrongVo"/>
         <where>
-            <if test="userId != null "> and user_id = #{userId}</if>
-            <if test="questionId != null "> and question_id = #{questionId}</if>
+            <if test="userId != null and userId !='' "> and user_id = #{userId}</if>
+            <if test="questionId != null and questionId != '' "> and question_id = #{questionId}</if>
+            <if test="km != null and km!='' "> and km = #{km}</if>
+            <if test="carType != null and carType !='' "> and car_type = #{carType}</if>
         </where>
     </select>
 

+ 2 - 13
jkt-service/src/main/resources/mapper/score/ScoreInfoMapper.xml

@@ -39,7 +39,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </select>
 
     <select id="getAvgScore" parameterType="ScoreInfo" resultType="int">
-        select ROUND(avg(score),0) from score_info s
+        select IFNULL(ROUND(avg(score),0),0) from score_info s
         <where>
             <if test="userId != null "> and user_id = #{userId}</if>
         </where>
@@ -47,21 +47,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
 
 
-    <select id="getMinScore" parameterType="ScoreInfo" resultType="int">
-        select min(score) from score_info s
-        <where>
-            <if test="userId != null "> and user_id = #{userId}</if>
-            <if test="type != null  and type != ''"> and type = #{type}</if>
-            <if test="kskm != null  and kskm != ''"> and kskm = #{kskm}</if>
-        </where>
-    </select>
-
     <select id="getMaxScore" parameterType="ScoreInfo" resultType="int">
-        select max(score) from score_info s
+        select IFNULL(max(score),0) from score_info s
         <where>
             <if test="userId != null "> and user_id = #{userId}</if>
-            <if test="type != null  and type != ''"> and type = #{type}</if>
-            <if test="kskm != null  and kskm != ''"> and kskm = #{kskm}</if>
         </where>
     </select>