Przeglądaj źródła

收藏和错题 提交

小么熊🐻 2 lat temu
rodzic
commit
8d803c9dc8
26 zmienionych plików z 323 dodań i 246 usunięć
  1. 48 89
      sdjk-admin/src/main/java/com/miaxis/app/controller/question/QuestionCollectionController.java
  2. 61 78
      sdjk-admin/src/main/java/com/miaxis/app/controller/question/QuestionWrongController.java
  3. 1 1
      sdjk-common/src/main/java/com/miaxis/common/core/domain/Response.java
  4. 1 1
      sdjk-framework/src/main/java/com/miaxis/framework/web/service/TokenService.java
  5. 4 9
      sdjk-service/src/main/java/com/miaxis/question/domain/QuestionCollection.java
  6. 3 8
      sdjk-service/src/main/java/com/miaxis/question/domain/QuestionWrong.java
  7. 13 0
      sdjk-service/src/main/java/com/miaxis/question/dto/QuestionColYunDTO.java
  8. 2 5
      sdjk-service/src/main/java/com/miaxis/question/dto/QuestionCollectionDTO.java
  9. 2 6
      sdjk-service/src/main/java/com/miaxis/question/dto/QuestionCollectionDelDTO.java
  10. 2 5
      sdjk-service/src/main/java/com/miaxis/question/dto/QuestionCollectionListDTO.java
  11. 24 0
      sdjk-service/src/main/java/com/miaxis/question/dto/QuestionCollectionYunDTO.java
  12. 22 0
      sdjk-service/src/main/java/com/miaxis/question/dto/QuestionWgYunDTO.java
  13. 2 5
      sdjk-service/src/main/java/com/miaxis/question/dto/QuestionWrongDTO.java
  14. 2 5
      sdjk-service/src/main/java/com/miaxis/question/dto/QuestionWrongDelDTO.java
  15. 2 6
      sdjk-service/src/main/java/com/miaxis/question/dto/QuestionWrongListDTO.java
  16. 28 0
      sdjk-service/src/main/java/com/miaxis/question/dto/QuestionWrongYunDTO.java
  17. 3 4
      sdjk-service/src/main/java/com/miaxis/question/mapper/QuestionCollectionMapper.java
  18. 4 3
      sdjk-service/src/main/java/com/miaxis/question/mapper/QuestionWrongMapper.java
  19. 3 2
      sdjk-service/src/main/java/com/miaxis/question/service/IQuestionCollectionService.java
  20. 4 3
      sdjk-service/src/main/java/com/miaxis/question/service/IQuestionWrongService.java
  21. 5 3
      sdjk-service/src/main/java/com/miaxis/question/service/impl/QuestionCollectionServiceImpl.java
  22. 5 4
      sdjk-service/src/main/java/com/miaxis/question/service/impl/QuestionWrongServiceImpl.java
  23. 38 0
      sdjk-service/src/main/java/com/miaxis/question/vo/QuestionColIdDateVo.java
  24. 39 0
      sdjk-service/src/main/java/com/miaxis/question/vo/QuestionWrongIdDateVo.java
  25. 2 4
      sdjk-service/src/main/resources/mapper/question/QuestionCollectionMapper.xml
  26. 3 5
      sdjk-service/src/main/resources/mapper/question/QuestionWrongMapper.xml

+ 48 - 89
sdjk-admin/src/main/java/com/miaxis/app/controller/question/QuestionCollectionController.java

@@ -5,22 +5,21 @@ import com.miaxis.common.annotation.Log;
 import com.miaxis.common.constant.Constants;
 import com.miaxis.common.core.controller.BaseController;
 import com.miaxis.common.core.domain.Response;
-import com.miaxis.common.core.page.ResponsePageInfo;
 import com.miaxis.common.enums.BusinessTypeEnum;
-import com.miaxis.common.exception.CustomException;
 import com.miaxis.common.utils.SecurityUtils;
 import com.miaxis.question.domain.QuestionCollection;
-import com.miaxis.question.domain.QuestionInfo;
-import com.miaxis.question.domain.QuestionWrong;
 import com.miaxis.question.dto.*;
 import com.miaxis.question.service.IQuestionCollectionService;
-import io.swagger.annotations.*;
+import com.miaxis.question.vo.QuestionColIdDateVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.sql.Timestamp;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -37,49 +36,6 @@ public class QuestionCollectionController extends BaseController {
     @Autowired
     private IQuestionCollectionService questionCollectionService;
 
-    /**
-     * 查询collection列表
-     */
-
-    @GetMapping("/list")
-    @ApiOperation("查询collection列表")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "pageNum", value = "当前页码", dataType = "int", paramType = "query", required = false),
-            @ApiImplicitParam(name = "pageSize", value = "每页数据量", dataType = "int", paramType = "query", required = false),
-    })
-    public ResponsePageInfo<QuestionCollection> list(@ModelAttribute QuestionCollectionListDTO dto) {
-        dto.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
-        startPage();
-        List<QuestionCollection> list = questionCollectionService.selectQuestionCollectionList(dto);
-        return toResponsePageInfo(list);
-    }
-
-    /**
-     * 导出collection列表
-     */
-//    @PreAuthorize("@ss.hasPermi('question:collection:export')")
-//    @Log(title = "collection", businessType = BusinessTypeEnum.EXPORT)
-//    @GetMapping("/export")
-//    @ApiOperation("导出collection列表Excel")
-//    public Response<String> export(@ModelAttribute QuestionCollection questionCollection){
-//        List<QuestionCollection> list = questionCollectionService.selectQuestionCollectionList(questionCollection);
-//        ExcelUtil<QuestionCollection> util = new ExcelUtil<QuestionCollection>(QuestionCollection.class);
-//        return util.exportExcel(list, "collection");
-//    }
-
-    /**
-     * 获取collection详细信息
-     */
-//    @PreAuthorize("@ss.hasPermi('question:collection:query')")
-    @GetMapping(value = "/{id}")
-    @ApiOperation("获取collection详细信息")
-    public Response<QuestionCollection> getInfo(
-            @ApiParam(name = "id", value = "collection参数", required = true)
-            @PathVariable("id") Long id
-    ) {
-        return Response.success(questionCollectionService.getById(id));
-    }
-
     /**
      * 新增collection
      */
@@ -93,7 +49,8 @@ public class QuestionCollectionController extends BaseController {
         List<QuestionCollection> list = questionCollectionService.selectQuestionCollectionList(dto);
         long count = list.stream().filter(o -> questionCollectionDTO.getQuestionId().equals(o.getQuestionId()) && questionCollectionDTO.getKm().equals(o.getKm())).count();
         if (count > 0) {
-            throw new CustomException("该题目已收藏过");
+            Response response = new Response(200,"该题目已收藏过");
+            return response;
         }
         QuestionCollection questionCollection = new QuestionCollection();
         BeanUtils.copyProperties(questionCollectionDTO, questionCollection);
@@ -102,65 +59,68 @@ public class QuestionCollectionController extends BaseController {
     }
 
     @PostMapping("collections")
-    @ApiOperation("批量新增collection")
-    public Response<Integer> collections(@RequestBody List<QuestionCollectionDTO> list) {
+    @ApiOperation("合并本机和云端收藏")
+    public Response<Integer> collections(@RequestBody QuestionCollectionYunDTO col) {
         //查询该用户已收藏的题目列表
         QuestionCollectionListDTO dto = new QuestionCollectionListDTO();
         dto.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
         List<QuestionCollection> dblist = questionCollectionService.selectQuestionCollectionList(dto);
-        List<String> questionIds = dblist.stream().map(o -> (o.getQuestionId()+","+o.getKm())).collect(Collectors.toList());
-
+        List<String> questionIdsStr = 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()+","+questionCollectionDTO.getKm())) {
+        for (QuestionColYunDTO colDTO : col.getCols()) {
+            if (questionIdsStr.contains(colDTO.getId()+","+col.getKm())) {
                 continue;
             }
             QuestionCollection questionCollection = new QuestionCollection();
-            BeanUtils.copyProperties(questionCollectionDTO, questionCollection);
             questionCollection.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
+            questionCollection.setKm(col.getKm());
+            questionCollection.setQuestionId(colDTO.getId());
+            Timestamp crDate = new Timestamp(colDTO.getTimestamp());
+            questionCollection.setCreateTime(crDate);
             qlist.add(questionCollection);
         }
         if (qlist.isEmpty()) {
-            throw new CustomException("选中的题目已收藏!");
+            Response response = new Response(200,"选中的题目已收藏!");
+            return response;
         }
         return toResponse(questionCollectionService.saveBatch(qlist) ? 1 : 0);
     }
 
 
-    /**
-     * 修改collection
-     */
-//    @PreAuthorize("@ss.hasPermi('question:collection:edit')")
-    @Log(title = "collection", businessType = BusinessTypeEnum.UPDATE)
-    @PutMapping
-    @ApiOperation("修改collection")
-    public Response<Integer> edit(@RequestBody QuestionCollectionDTO questionCollectionDTO) {
-        QuestionCollection questionCollection = new QuestionCollection();
-        BeanUtils.copyProperties(questionCollectionDTO, questionCollection);
-        questionCollection.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
-        return toResponse(questionCollectionService.updateById(questionCollection) ? 1 : 0);
-    }
+    @PostMapping("bakCollections")
+    @ApiOperation("备份本机收藏到云端")
+    public Response bakCollections(@RequestBody QuestionCollectionYunDTO col) {
+        //首先删除云端数据
+        Long userId = SecurityUtils.getLoginUser().getStudent().getId();
+        QueryWrapper<QuestionCollection> queryWrapper = new QueryWrapper<QuestionCollection>();
+        queryWrapper.eq("user_id",userId);
+        queryWrapper.eq("km",col.getKm());
+        questionCollectionService.remove(queryWrapper);
 
-    /**
-     * 删除collection
-     */
-    @Log(title = "collection", businessType = BusinessTypeEnum.DELETE)
-    @DeleteMapping("/{ids}")
-    @ApiOperation("删除collection")
-    public Response<Integer> remove(
-            @ApiParam(name = "ids", value = "collectionids参数", required = true)
-            @PathVariable Long[] ids
-    ) {
-        return toResponse(questionCollectionService.removeByIds(Arrays.asList(ids)) ? 1 : 0);
+        //保存上传的收藏题
+        List<QuestionCollection> qlist = new ArrayList<QuestionCollection>();
+        for (QuestionColYunDTO colDTO : col.getCols()) {
+            QuestionCollection questionCollection = new QuestionCollection();
+            questionCollection.setUserId(userId);
+            questionCollection.setKm(col.getKm());
+            questionCollection.setQuestionId(colDTO.getId());
+            Timestamp crDate = new Timestamp(colDTO.getTimestamp());
+            questionCollection.setCreateTime(crDate);
+            qlist.add(questionCollection);
+        }
+        if (qlist.isEmpty()) {
+            Response response = new Response(200,"请先收藏题目。");
+            return response;
+        }
+        return toResponse(questionCollectionService.saveBatch(qlist) ? 1 : 0);
     }
 
 
-    @Log(title = "collectionQuestion", businessType = BusinessTypeEnum.DELETE)
     @DeleteMapping("/cancel/{questionId}")
     @ApiOperation("取消收藏")
     public Response<Integer> remove(
-            @ApiParam(name = "questionId", value = "题id", required = true)
+            @ApiParam(name = "questionId", value = "题id", required = true)
             @PathVariable String questionId
     ) {
         Long userId = SecurityUtils.getLoginUser().getStudent().getId();
@@ -172,7 +132,6 @@ public class QuestionCollectionController extends BaseController {
     }
 
 
-    @Log(title = "collectionQuestion", businessType = BusinessTypeEnum.DELETE)
     @DeleteMapping("/cancelAll")
     @ApiOperation("清空收藏")
     public  Response<Integer> removeAll(@RequestBody QuestionCollectionDelDTO questionCollectionDelDTO){
@@ -180,17 +139,17 @@ public class QuestionCollectionController extends BaseController {
         QueryWrapper<QuestionCollection> queryWrapper = new QueryWrapper<QuestionCollection>();
         queryWrapper.eq("user_id",userId);
         queryWrapper.eq("km",questionCollectionDelDTO.getKm());
-        queryWrapper.eq("car_type",questionCollectionDelDTO.getCarType());
         questionCollectionService.remove(queryWrapper);
         return Response.success();
     }
 
 
+
     @GetMapping("/collectionByUser")
-    @ApiOperation("根据用户获取收藏列表")
-    public Response<List<QuestionInfo>> collectionByUser(@ModelAttribute QuestionCollectionListDTO dto){
+    @ApiOperation("恢复云端收藏到本机(根据用户获取收藏题)")
+    public Response<List<QuestionColIdDateVo>> appCollectionByUser(@ModelAttribute QuestionCollectionListDTO dto){
         dto.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
-        List<QuestionInfo> list = questionCollectionService.selectCollectionByUserId(dto);
+        List<QuestionColIdDateVo> list = questionCollectionService.selectCollectionIdByUserId(dto);
         return Response.success(list);
     }
 

+ 61 - 78
sdjk-admin/src/main/java/com/miaxis/app/controller/question/QuestionWrongController.java

@@ -3,6 +3,7 @@ package com.miaxis.app.controller.question;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.miaxis.common.constant.Constants;
 
+import java.sql.Timestamp;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Arrays;
@@ -13,6 +14,7 @@ import com.miaxis.common.utils.SecurityUtils;
 import com.miaxis.question.domain.QuestionCollection;
 import com.miaxis.question.domain.QuestionInfo;
 import com.miaxis.question.dto.*;
+import com.miaxis.question.vo.QuestionWrongIdDateVo;
 import com.miaxis.score.domain.ScoreInfo;
 import io.swagger.annotations.*;
 import com.miaxis.common.core.domain.Response;
@@ -49,146 +51,127 @@ public class QuestionWrongController extends BaseController{
     @Autowired
     private IQuestionWrongService questionWrongService;
 
-    /**
-     * 查询wrong列表
-     */
-    @GetMapping("/list")
-    @ApiOperation("查询wrong列表")
-        @ApiImplicitParams({
-            @ApiImplicitParam(name = "pageNum",value = "当前页码" ,dataType = "int", paramType = "query", required = false),
-            @ApiImplicitParam(name = "pageSize",value = "每页数据量" , dataType = "int", paramType = "query", required = false),
-    })
-    public ResponsePageInfo<QuestionWrong> list(@ModelAttribute QuestionWrongListDTO dto){
-        startPage();
-        dto.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
-        List<QuestionWrong> list = questionWrongService.selectQuestionWrongList(dto);
-        return toResponsePageInfo(list);
-    }
-
-
-
-    /**
-     * 获取wrong详细信息
-     */
-    @GetMapping(value = "/{id}")
-    @ApiOperation("获取wrong详细信息")
-    public Response<QuestionWrong> getInfo(
-            @ApiParam(name = "id", value = "wrong参数", required = true)
-            @PathVariable("id") Long id
-    ){
-        return Response.success(questionWrongService.getById(id));
-    }
 
     /**
      * 新增wrong
      */
-    @Log(title = "wrong", businessType = BusinessTypeEnum.INSERT)
     @PostMapping
     @ApiOperation("新增wrong")
-    public Response<Integer> add(@RequestBody QuestionWrongDTO questionWrongDTO){
+    public Response<Integer> add(@RequestBody QuestionWrongDTO questionWrongDTO) {
         //查询该用户已收藏的题目列表
         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()) &&  questionWrongDTO.getKm().equals(o.getKm())).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("该错已加入错题集");
+            Response response = new Response(200, "该错已加入错题集");
+            return response;
         }
         QuestionWrong questionWrong = new QuestionWrong();
-        BeanUtils.copyProperties(questionWrongDTO,questionWrong);
+        BeanUtils.copyProperties(questionWrongDTO, questionWrong);
         questionWrong.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
         return toResponse(questionWrongService.save(questionWrong) ? 1 : 0);
     }
 
     @PostMapping("wrongs")
-    @ApiOperation("批量新增wrongs")
-    public Response<Integer> wrongs(@RequestBody List<QuestionWrongDTO> list){
+    @ApiOperation("合并本机和云端错题")
+    public Response<Integer> wrongs(@RequestBody QuestionWrongYunDTO wrong) {
         //查询该用户已收藏的题目列表
         QuestionWrongListDTO dto = new QuestionWrongListDTO();
         dto.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
         List<QuestionWrong> dblist = questionWrongService.selectQuestionWrongList(dto);
-        List<String> questionIds = dblist.stream().map(o -> o.getQuestionId()+","+o.getKm()).collect(Collectors.toList());
+        List<String> questionIdsStr = 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()+","+questionWrongDTO.getKm())) {
+        for (QuestionWgYunDTO wgYunDTO : wrong.getWrongs()) {
+            if (questionIdsStr.contains(wgYunDTO.getId() + "," + wrong.getKm())) {
                 continue;
             }
             QuestionWrong questionWrong = new QuestionWrong();
-            BeanUtils.copyProperties(questionWrongDTO, questionWrong);
             questionWrong.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
+            questionWrong.setKm(wrong.getKm());
+            questionWrong.setQuestionId(wgYunDTO.getId());
+            Timestamp crDate = new Timestamp(wgYunDTO.getTimestamp());
+            questionWrong.setCreateTime(crDate);
             qlist.add(questionWrong);
         }
         if (qlist.isEmpty()) {
-            throw new CustomException("选中的错题都已收藏!");
+            Response response = new Response(200, "选中的错题都已添加!");
+            return response;
         }
         return toResponse(questionWrongService.saveBatch(qlist) ? 1 : 0);
     }
 
-    /**
-     * 修改wrong
-     */
-    @Log(title = "wrong", businessType = BusinessTypeEnum.UPDATE)
-    @PutMapping
-    @ApiOperation("修改wrong")
-    public Response<Integer> edit(@RequestBody QuestionWrong questionWrong){
-        return toResponse(questionWrongService.updateById(questionWrong) ? 1 : 0);
-    }
 
-    /**
-     * 删除wrong
-     */
-    @Log(title = "wrong", businessType = BusinessTypeEnum.DELETE)
-	@DeleteMapping("/{ids}")
-    @ApiOperation("删除wrong")
-    public  Response<Integer> remove(
-            @ApiParam(name = "ids", value = "wrongids参数", required = true)
-            @PathVariable Long[] ids
-    ){
-        return toResponse(questionWrongService.removeByIds(Arrays.asList(ids)) ? 1 : 0);
+    @PostMapping("bakWrongs")
+    @ApiOperation("备份本机错题到云端")
+    public Response bakWrongs(@RequestBody QuestionWrongYunDTO wrong) {
+        //首先删除云端数据
+        Long userId = SecurityUtils.getLoginUser().getStudent().getId();
+        QueryWrapper<QuestionWrong> queryWrapper = new QueryWrapper<QuestionWrong>();
+        queryWrapper.eq("user_id", userId);
+        queryWrapper.eq("km", wrong.getKm());
+        questionWrongService.remove(queryWrapper);
+
+        //保存上传的错题
+        List<QuestionWrong> qlist = new ArrayList<QuestionWrong>();
+        for (QuestionWgYunDTO wgYunDTO : wrong.getWrongs()) {
+            QuestionWrong questionWrong = new QuestionWrong();
+            questionWrong.setUserId(userId);
+            questionWrong.setKm(wrong.getKm());
+            questionWrong.setQuestionId(wgYunDTO.getId());
+            Timestamp crDate = new Timestamp(wgYunDTO.getTimestamp());
+            questionWrong.setCreateTime(crDate);
+            qlist.add(questionWrong);
+        }
+        if (qlist.isEmpty()) {
+            Response response = new Response(200, "该错已加入错题集(无须提示给用户)");
+            return response;
+        }
+        return toResponse(questionWrongService.saveBatch(qlist) ? 1 : 0);
     }
 
 
-    @Log(title = "wrongQuestion", businessType = BusinessTypeEnum.DELETE)
     @DeleteMapping("/cancel/{questionId}")
     @ApiOperation("删除错题")
-    public  Response<Integer> remove(
+    public Response<Integer> remove(
             @ApiParam(name = "questionId", value = "问题id", required = true)
-            @PathVariable String questionId
-    ){
+            @PathVariable Long questionId
+    ) {
         Long userId = SecurityUtils.getLoginUser().getStudent().getId();
-        QueryWrapper<QuestionWrong> queryWrapper= new QueryWrapper<QuestionWrong>();
-        queryWrapper.eq("user_id",userId);
-        queryWrapper.eq("question_id",questionId);
+        QueryWrapper<QuestionWrong> queryWrapper = new QueryWrapper<QuestionWrong>();
+        queryWrapper.eq("user_id", userId);
+        queryWrapper.eq("question_id", questionId);
         questionWrongService.remove(queryWrapper);
         return Response.success();
 
     }
 
-    @Log(title = "wrongQuestion", businessType = BusinessTypeEnum.DELETE)
     @DeleteMapping("/cancelAll")
     @ApiOperation("清空错题")
-    public  Response<Integer> removeAll(@RequestBody QuestionWrongDelDTO questionWrongDelDTO){
+    public Response<Integer> removeAll(@RequestBody QuestionWrongDelDTO questionWrongDelDTO) {
         Long userId = SecurityUtils.getLoginUser().getStudent().getId();
-        QueryWrapper<QuestionWrong> queryWrapper= new QueryWrapper<QuestionWrong>();
-        queryWrapper.eq("user_id",userId);
-        queryWrapper.eq("km",questionWrongDelDTO.getKm());
-        queryWrapper.eq("car_type",questionWrongDelDTO.getCarType());
+        QueryWrapper<QuestionWrong> queryWrapper = new QueryWrapper<QuestionWrong>();
+        queryWrapper.eq("user_id", userId);
+        queryWrapper.eq("km", questionWrongDelDTO.getKm());
         questionWrongService.remove(queryWrapper);
         return Response.success();
     }
 
 
     @GetMapping("/wrongByUser")
-    @ApiOperation("根据用户获取错题列表")
-    public Response<List<QuestionInfo>> wrongByUser(@ModelAttribute QuestionWrongListDTO dto){
+    @ApiOperation("恢复云端错题到本机(根据用户获取错题)")
+    public Response<List<QuestionWrongIdDateVo>> appWrongByUser(@ModelAttribute QuestionWrongListDTO dto) {
         dto.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
-        List<QuestionInfo> list = questionWrongService.selectWrongByUserId(dto);
+        List<QuestionWrongIdDateVo> list = questionWrongService.selectWrongIdByUserId(dto);
         return Response.success(list);
     }
 
+
     @GetMapping("/wrongCountByUser")
     @ApiOperation("根据用户获取错题数")
-    public Response<Integer> wrongCountByUser(@ModelAttribute QuestionWrongListDTO dto){
+    public Response<Integer> wrongCountByUser(@ModelAttribute QuestionWrongListDTO dto) {
         dto.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
         Integer count = questionWrongService.selectWrongCountByUserId(dto);
         return Response.success(count);

+ 1 - 1
sdjk-common/src/main/java/com/miaxis/common/core/domain/Response.java

@@ -42,7 +42,7 @@ public class Response<T> {
         this.msg = responseEnum.getMessage();
     }
 
-    private Response(Integer code,String msg){
+    public Response(Integer code, String msg){
         this.code = code;
         this.msg = msg;
     }

+ 1 - 1
sdjk-framework/src/main/java/com/miaxis/framework/web/service/TokenService.java

@@ -154,7 +154,7 @@ public class TokenService
         //如果不是系统用户
         if (loginUser.getUser()== null){
             //确保唯一登录
-            uniqueLogin(loginUser.getId(),userKey);
+            uniqueLogin(loginUser.getId(),userKey);  //互踢操作
         }
         redisCache.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
 

+ 4 - 9
sdjk-service/src/main/java/com/miaxis/question/domain/QuestionCollection.java

@@ -25,8 +25,8 @@ public class QuestionCollection extends BaseBusinessEntity{
     private static final long serialVersionUID = 1L;
 
     /** 主键 */
-//    @TableId(value = "id")
-//    @ApiModelProperty(value = "主键")
+    @TableId(value = "id")
+    @ApiModelProperty(value = "主键")
     private Long id;
 
     /** 用户ID */
@@ -45,12 +45,7 @@ public class QuestionCollection extends BaseBusinessEntity{
     /** 科目 */
     @Excel(name = "科目")
     @TableField("km")
-    @ApiModelProperty(value = "考试科目(科目一、科目二、科目三、科目四)")
-    private String km;
+    @ApiModelProperty(value = "考试科目(1、2、3、4)")
+    private Integer km;
 
-    /** 车型 */
-    @Excel(name = "车型")
-    @TableField("car_type")
-    @ApiModelProperty(value = "车型(小车 、客车、货车、摩托车)")
-    private String carType;
 }

+ 3 - 8
sdjk-service/src/main/java/com/miaxis/question/domain/QuestionWrong.java

@@ -45,14 +45,9 @@ public class QuestionWrong extends BaseBusinessEntity{
     /** 科目 */
     @Excel(name = "科目")
     @TableField("km")
-    @ApiModelProperty(value = "考试科目(科目一、科目二、科目三、科目四)")
-    private String km;
-
-    /** 车型 */
-    @Excel(name = "车型")
-    @TableField("car_type")
-    @ApiModelProperty(value = "车型(小车 、客车、货车、摩托车)")
-    private String carType;
+    @ApiModelProperty(value = "考试科目(1、2、3、4)")
+    private Integer km;
+
 
 
 }

+ 13 - 0
sdjk-service/src/main/java/com/miaxis/question/dto/QuestionColYunDTO.java

@@ -0,0 +1,13 @@
+package com.miaxis.question.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class QuestionColYunDTO {
+
+    @ApiModelProperty(value = "题目ID", required = true, example = "1")
+    private Long id;
+    @ApiModelProperty(value = "时间戳(收藏时间)", required = true, example = "1680249607321")
+    private Long timestamp;
+}

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

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

+ 2 - 6
sdjk-service/src/main/java/com/miaxis/question/dto/QuestionCollectionDelDTO.java

@@ -15,12 +15,8 @@ public class QuestionCollectionDelDTO {
 
 
     /** 科目 */
-    @ApiModelProperty(value = "考试科目(科目一、科目二、科目三、科目四)")
-    private String km;
-
-    /** 车型 */
-    @ApiModelProperty(value = "车型(小车 、客车、货车、摩托车)")
-    private String carType;
+    @ApiModelProperty(value = "考试科目(1、2、3、4)")
+    private Integer km;
 
 
 

+ 2 - 5
sdjk-service/src/main/java/com/miaxis/question/dto/QuestionCollectionListDTO.java

@@ -26,10 +26,7 @@ public class QuestionCollectionListDTO extends BaseBusinessEntity {
     private Long questionId;
 
     /** 科目 */
-    @ApiModelProperty(value = "考试科目(科目一、科目二、科目三、科目四)")
-    private String km;
+    @ApiModelProperty(value = "考试科目(1、2、3、4)")
+    private Integer km;
 
-    /** 车型 */
-    @ApiModelProperty(value = "车型(小车 、客车、货车、摩托车)")
-    private String carType;
 }

+ 24 - 0
sdjk-service/src/main/java/com/miaxis/question/dto/QuestionCollectionYunDTO.java

@@ -0,0 +1,24 @@
+package com.miaxis.question.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+
+@Data
+public class QuestionCollectionYunDTO {
+
+
+    @ApiModelProperty(value = "题目ID", required = true)
+    private List<QuestionColYunDTO> cols;
+
+    /**
+     * 科目
+     */
+    @ApiModelProperty(value = "考试科目(1、2、3、4)", required = true, example = "1")
+    private Integer km;
+
+
+
+}

+ 22 - 0
sdjk-service/src/main/java/com/miaxis/question/dto/QuestionWgYunDTO.java

@@ -0,0 +1,22 @@
+package com.miaxis.question.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * wrong对象 question_wrong
+ *
+ * @author miaxis
+ * @date 2021-08-19
+ */
+@Data
+public class QuestionWgYunDTO {
+
+
+    @ApiModelProperty(value = "题目ID", required = true, example = "1")
+    private Long id;
+    @ApiModelProperty(value = "时间戳(做错时间)", required = true, example = "1680249607000")
+    private Long timestamp;
+
+
+}

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

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

+ 2 - 5
sdjk-service/src/main/java/com/miaxis/question/dto/QuestionWrongDelDTO.java

@@ -16,12 +16,9 @@ public class QuestionWrongDelDTO {
 
 
     /** 科目 */
-    @ApiModelProperty(value = "考试科目(科目一、科目二、科目三、科目四)")
-    private String km;
+    @ApiModelProperty(value = "考试科目(1、2、3、4)")
+    private Integer km;
 
-    /** 车型 */
-    @ApiModelProperty(value = "车型(小车 、客车、货车、摩托车)")
-    private String carType;
 
 
 

+ 2 - 6
sdjk-service/src/main/java/com/miaxis/question/dto/QuestionWrongListDTO.java

@@ -21,12 +21,8 @@ public class QuestionWrongListDTO extends BaseBusinessEntity {
     private Long questionId;
 
     /** 科目 */
-    @ApiModelProperty(value = "考试科目(科目一、科目二、科目三、科目四)")
-    private String km;
-
-    /** 车型 */
-    @ApiModelProperty(value = "车型(小车 、客车、货车、摩托车)")
-    private String carType;
+    @ApiModelProperty(value = "考试科目(1、2、3、4)")
+    private Integer km;
 
 
 

+ 28 - 0
sdjk-service/src/main/java/com/miaxis/question/dto/QuestionWrongYunDTO.java

@@ -0,0 +1,28 @@
+package com.miaxis.question.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * wrong对象 question_wrong
+ *
+ * @author miaxis
+ * @date 2021-08-19
+ */
+@Data
+public class QuestionWrongYunDTO {
+
+
+    @ApiModelProperty(value = "题目ID", required = true)
+    private List<QuestionWgYunDTO> wrongs;
+
+    /**
+     * 科目
+     */
+    @ApiModelProperty(value = "考试科目(1、2、3、4)", required = true, example = "1")
+    private Integer km;
+
+
+}

+ 3 - 4
sdjk-service/src/main/java/com/miaxis/question/mapper/QuestionCollectionMapper.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.miaxis.question.domain.QuestionCollection;
 import com.miaxis.question.domain.QuestionInfo;
 import com.miaxis.question.dto.QuestionCollectionListDTO;
+import com.miaxis.question.vo.QuestionColIdDateVo;
 
 /**
  * collectionMapper接口
@@ -19,11 +20,9 @@ public interface QuestionCollectionMapper extends BaseMapper<QuestionCollection>
      * @param questionCollection collection
      * @return collection集合
      */
-    public List<QuestionCollection> selectQuestionCollectionList(QuestionCollectionListDTO questionCollection);
-
-    List<QuestionInfo> selectCollectionByUserId(QuestionCollectionListDTO dto);
-
+    List<QuestionCollection> selectQuestionCollectionList(QuestionCollectionListDTO questionCollection);
 
     Integer selectCollectionCountByUserId(QuestionCollectionListDTO dto);
 
+    List<QuestionColIdDateVo> selectCollectionIdByUserId(QuestionCollectionListDTO dto);
 }

+ 4 - 3
sdjk-service/src/main/java/com/miaxis/question/mapper/QuestionWrongMapper.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.miaxis.question.domain.QuestionInfo;
 import com.miaxis.question.domain.QuestionWrong;
 import com.miaxis.question.dto.QuestionWrongListDTO;
+import com.miaxis.question.vo.QuestionWrongIdDateVo;
 
 /**
  * wrongMapper接口
@@ -19,9 +20,9 @@ public interface QuestionWrongMapper extends BaseMapper<QuestionWrong> {
      * @param questionWrong wrong
      * @return wrong集合
      */
-    public List<QuestionWrong> selectQuestionWrongList(QuestionWrongListDTO questionWrong);
-
-    List<QuestionInfo> selectWrongByUserId(QuestionWrongListDTO dto);
+    List<QuestionWrong> selectQuestionWrongList(QuestionWrongListDTO questionWrong);
 
     Integer selectWrongCountByUserId(QuestionWrongListDTO dto);
+
+    List<QuestionWrongIdDateVo> selectWrongIdByUserId(QuestionWrongListDTO dto);
 }

+ 3 - 2
sdjk-service/src/main/java/com/miaxis/question/service/IQuestionCollectionService.java

@@ -5,6 +5,7 @@ import com.miaxis.question.domain.QuestionCollection;
 import com.miaxis.question.domain.QuestionInfo;
 import com.miaxis.question.dto.QuestionCollectionListDTO;
 import com.miaxis.question.dto.QuestionWrongListDTO;
+import com.miaxis.question.vo.QuestionColIdDateVo;
 
 import java.util.List;
 
@@ -23,7 +24,7 @@ public interface IQuestionCollectionService extends IService<QuestionCollection>
      */
     List<QuestionCollection> selectQuestionCollectionList(QuestionCollectionListDTO questionCollection);
 
-    List<QuestionInfo> selectCollectionByUserId(QuestionCollectionListDTO dto);
-
     Integer selectCollectionCountByUserId(QuestionCollectionListDTO dto);
+
+    List<QuestionColIdDateVo> selectCollectionIdByUserId(QuestionCollectionListDTO dto);
 }

+ 4 - 3
sdjk-service/src/main/java/com/miaxis/question/service/IQuestionWrongService.java

@@ -6,6 +6,7 @@ import com.miaxis.question.domain.QuestionInfo;
 import com.miaxis.question.domain.QuestionWrong;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.miaxis.question.dto.QuestionWrongListDTO;
+import com.miaxis.question.vo.QuestionWrongIdDateVo;
 
 /**
  * wrongService接口
@@ -20,9 +21,9 @@ public interface IQuestionWrongService extends IService<QuestionWrong>{
      * @param questionWrong wrong
      * @return wrong集合
      */
-    public List<QuestionWrong> selectQuestionWrongList(QuestionWrongListDTO questionWrong);
-
-    List<QuestionInfo> selectWrongByUserId(QuestionWrongListDTO dto);
+    List<QuestionWrong> selectQuestionWrongList(QuestionWrongListDTO questionWrong);
 
     Integer selectWrongCountByUserId(QuestionWrongListDTO dto);
+
+    List<QuestionWrongIdDateVo> selectWrongIdByUserId(QuestionWrongListDTO dto);
 }

+ 5 - 3
sdjk-service/src/main/java/com/miaxis/question/service/impl/QuestionCollectionServiceImpl.java

@@ -4,6 +4,7 @@ import java.util.List;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.miaxis.question.domain.QuestionInfo;
 import com.miaxis.question.dto.QuestionCollectionListDTO;
+import com.miaxis.question.vo.QuestionColIdDateVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.miaxis.question.mapper.QuestionCollectionMapper;
@@ -38,10 +39,11 @@ public class QuestionCollectionServiceImpl extends ServiceImpl<QuestionCollectio
         return questionCollectionMapper.selectCollectionCountByUserId(dto);
     }
 
-
     @Override
-    public List<QuestionInfo> selectCollectionByUserId(QuestionCollectionListDTO dto) {
-        return questionCollectionMapper.selectCollectionByUserId(dto);
+    public List<QuestionColIdDateVo> selectCollectionIdByUserId(QuestionCollectionListDTO dto) {
+        return questionCollectionMapper.selectCollectionIdByUserId(dto);
     }
 
+
+
 }

+ 5 - 4
sdjk-service/src/main/java/com/miaxis/question/service/impl/QuestionWrongServiceImpl.java

@@ -4,6 +4,7 @@ import java.util.List;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.miaxis.question.domain.QuestionInfo;
 import com.miaxis.question.dto.QuestionWrongListDTO;
+import com.miaxis.question.vo.QuestionWrongIdDateVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.miaxis.question.mapper.QuestionWrongMapper;
@@ -33,12 +34,12 @@ public class QuestionWrongServiceImpl extends ServiceImpl<QuestionWrongMapper, Q
     }
 
     @Override
-    public List<QuestionInfo> selectWrongByUserId(QuestionWrongListDTO dto) {
-        return questionWrongMapper.selectWrongByUserId(dto);
+    public Integer selectWrongCountByUserId(QuestionWrongListDTO dto) {
+        return questionWrongMapper.selectWrongCountByUserId(dto);
     }
 
     @Override
-    public Integer selectWrongCountByUserId(QuestionWrongListDTO dto) {
-        return questionWrongMapper.selectWrongCountByUserId(dto);
+    public List<QuestionWrongIdDateVo> selectWrongIdByUserId(QuestionWrongListDTO dto) {
+        return questionWrongMapper.selectWrongIdByUserId(dto);
     }
 }

+ 38 - 0
sdjk-service/src/main/java/com/miaxis/question/vo/QuestionColIdDateVo.java

@@ -0,0 +1,38 @@
+package com.miaxis.question.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.sql.Timestamp;
+
+@ApiModel(value = "QuestionColIdDateVo", description = "收藏题返回ID与时间")
+public class QuestionColIdDateVo {
+
+
+
+    @ApiModelProperty(value = "分类题(包含科一到科四)")
+    private Long id;
+
+    private transient Timestamp createTime;
+
+    @ApiModelProperty(value = "时间戳(收藏时间)",name = "timestamp")
+    public long getTimestamp() {
+        if (createTime != null) {
+            return createTime.getTime();// 将日期类型转换为长整型时间戳
+        }
+        return 0;
+    }
+
+
+    public void setCreateTime(Timestamp createTime) {
+        this.createTime = createTime;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+}

+ 39 - 0
sdjk-service/src/main/java/com/miaxis/question/vo/QuestionWrongIdDateVo.java

@@ -0,0 +1,39 @@
+package com.miaxis.question.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.sql.Timestamp;
+
+@ApiModel(value = "QuestionWrongIdDateVo", description = "错题返回ID与时间")
+public class QuestionWrongIdDateVo {
+
+
+
+    @ApiModelProperty(value = "分类题(包含科一到科四)")
+    private Long id;
+
+    private transient Timestamp createTime;
+
+    @ApiModelProperty(value = "时间戳(做错时间)",name = "timestamp")
+    public long getTimestamp() {
+        if (createTime != null) {
+            return createTime.getTime();// 将日期类型转换为长整型时间戳
+        }
+        return 0;
+    }
+
+
+    public void setCreateTime(Timestamp createTime) {
+        this.createTime = createTime;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+}

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

@@ -28,14 +28,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </select>
 
 
-    <select id="selectCollectionByUserId" resultType="com.miaxis.question.domain.QuestionInfo">
+    <select id="selectCollectionIdByUserId" resultType="com.miaxis.question.vo.QuestionColIdDateVo">
 
-        select q1.* from question_info q1 join question_collection q2 on q1.id = q2.question_id
+        select q1.id,q2.create_time from question_info q1 join question_collection q2 on q1.id = q2.question_id
         <where>
             <if test="userId != null and userId !='' "> and q2.user_id = #{userId}</if>
-            <if test="questionId != null and questionId != '' "> and q2.question_id = #{questionId}</if>
             <if test="km != null and km!='' "> and q2.km = #{km}</if>
-            <if test="carType != null and carType !='' "> and q2.car_type = #{carType}</if>
         </where>
         order by q2.create_time asc
 

+ 3 - 5
sdjk-service/src/main/resources/mapper/question/QuestionWrongMapper.xml

@@ -29,18 +29,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
 
 
+    <select id="selectWrongIdByUserId" resultType="com.miaxis.question.vo.QuestionWrongIdDateVo">
 
-    <select id="selectWrongByUserId" resultType="com.miaxis.question.domain.QuestionInfo">
-
-        select q1.* from question_info q1 join question_wrong q2 on q1.id = q2.question_id
+        select q1.id,q2.create_time from question_info q1 join question_wrong q2 on q1.id = q2.question_id
         <where>
             <if test="userId != null and userId !='' "> and q2.user_id = #{userId}</if>
-            <if test="questionId != null and questionId != '' "> and q2.question_id = #{questionId}</if>
             <if test="km != null and km!='' "> and q2.km = #{km}</if>
-            <if test="carType != null and carType !='' "> and q2.car_type = #{carType}</if>
         </where>
         order by q2.create_time
     </select>
+
     <select id="selectWrongCountByUserId" resultType="int">
 
         select count(1) from question_info q1 join question_wrong q2 on q1.id = q2.question_id