小么熊🐻 2 سال پیش
والد
کامیت
abfb57663e

+ 11 - 9
nbjk-admin/src/main/java/com/miaxis/app/controller/question/QuestionCollectionController.java

@@ -9,10 +9,7 @@ import com.miaxis.common.enums.BusinessTypeEnum;
 import com.miaxis.common.utils.SecurityUtils;
 import com.miaxis.question.domain.QuestionCollection;
 import com.miaxis.question.domain.QuestionInfo;
-import com.miaxis.question.dto.QuestionCollectionDTO;
-import com.miaxis.question.dto.QuestionCollectionDelDTO;
-import com.miaxis.question.dto.QuestionCollectionListDTO;
-import com.miaxis.question.dto.QuestionCollectionYunDTO;
+import com.miaxis.question.dto.*;
 import com.miaxis.question.service.IQuestionCollectionService;
 import com.miaxis.question.vo.QuestionColIdDateVo;
 import io.swagger.annotations.Api;
@@ -23,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -73,14 +71,16 @@ public class QuestionCollectionController extends BaseController {
         List<String> questionIdsStr = dblist.stream().map(o -> (o.getQuestionId()+","+o.getKm())).collect(Collectors.toList());
 
         List<QuestionCollection> qlist = new ArrayList<QuestionCollection>();
-        for (Long qid : col.getQuestionIds()) {
-            if (questionIdsStr.contains(qid+","+col.getKm())) {
+        for (QuestionColYunDTO colDTO : col.getCols()) {
+            if (questionIdsStr.contains(colDTO.getQuestionId()+","+col.getKm())) {
                 continue;
             }
             QuestionCollection questionCollection = new QuestionCollection();
             questionCollection.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
             questionCollection.setKm(col.getKm());
-            questionCollection.setQuestionId(qid);
+            questionCollection.setQuestionId(colDTO.getQuestionId());
+            Date crDate = new Date(colDTO.getTimestamp());
+            questionCollection.setCreateTime(crDate);
             qlist.add(questionCollection);
         }
         if (qlist.isEmpty()) {
@@ -103,11 +103,13 @@ public class QuestionCollectionController extends BaseController {
 
         //保存上传的收藏题
         List<QuestionCollection> qlist = new ArrayList<QuestionCollection>();
-        for (Long qid : col.getQuestionIds()) {
+        for (QuestionColYunDTO colDTO : col.getCols()) {
             QuestionCollection questionCollection = new QuestionCollection();
             questionCollection.setUserId(userId);
             questionCollection.setKm(col.getKm());
-            questionCollection.setQuestionId(qid);
+            questionCollection.setQuestionId(colDTO.getQuestionId());
+            Date crDate = new Date(colDTO.getTimestamp());
+            questionCollection.setCreateTime(crDate);
             qlist.add(questionCollection);
         }
         if (qlist.isEmpty()) {

+ 37 - 38
nbjk-admin/src/main/java/com/miaxis/app/controller/question/QuestionWrongController.java

@@ -7,10 +7,7 @@ import com.miaxis.common.core.domain.Response;
 import com.miaxis.common.utils.SecurityUtils;
 import com.miaxis.question.domain.QuestionInfo;
 import com.miaxis.question.domain.QuestionWrong;
-import com.miaxis.question.dto.QuestionWrongDTO;
-import com.miaxis.question.dto.QuestionWrongDelDTO;
-import com.miaxis.question.dto.QuestionWrongListDTO;
-import com.miaxis.question.dto.QuestionWrongYunDTO;
+import com.miaxis.question.dto.*;
 import com.miaxis.question.service.IQuestionWrongService;
 import com.miaxis.question.vo.QuestionWrongIdDateVo;
 import io.swagger.annotations.Api;
@@ -21,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -31,58 +29,59 @@ import java.util.stream.Collectors;
  * @date 2021-08-19
  */
 @RestController
-@RequestMapping(Constants.STUDENT_PREFIX+"/question/wrong")
-@Api(tags={"【APP-错题】"})
-public class QuestionWrongController extends BaseController{
+@RequestMapping(Constants.STUDENT_PREFIX + "/question/wrong")
+@Api(tags = {"【APP-错题】"})
+public class QuestionWrongController extends BaseController {
     @Autowired
     private IQuestionWrongService questionWrongService;
 
 
-
     /**
      * 新增wrong
      */
     @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("该错已加入错题集");
-            Response response = new Response(200,"该错已加入错题集");
+            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("合并本机和云端错题")
-    public Response<Integer> wrongs(@RequestBody QuestionWrongYunDTO wrong){
+    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> questionIdsStr = 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 (Long qid : wrong.getQuestionIds()) {
-            if (questionIdsStr.contains(qid+","+wrong.getKm())) {
+        for (QuestionWgYunDTO wgYunDTO : wrong.getWrongs()) {
+            if (questionIdsStr.contains(wgYunDTO.getQuestionId() + "," + wrong.getKm())) {
                 continue;
             }
             QuestionWrong questionWrong = new QuestionWrong();
             questionWrong.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
             questionWrong.setKm(wrong.getKm());
-            questionWrong.setQuestionId(qid);
+            questionWrong.setQuestionId(wgYunDTO.getQuestionId());
+            Date crDate = new Date(wgYunDTO.getTimestamp() * 1000);
+            questionWrong.setCreateTime(crDate);
             qlist.add(questionWrong);
         }
         if (qlist.isEmpty()) {
-            Response response = new Response(200,"选中的错题都已添加!");
+            Response response = new Response(200, "选中的错题都已添加!");
             return response;
         }
         return toResponse(questionWrongService.saveBatch(qlist) ? 1 : 0);
@@ -91,43 +90,43 @@ public class QuestionWrongController extends BaseController{
 
     @PostMapping("bakWrongs")
     @ApiOperation("备份本机错题到云端")
-    public Response bakWrongs(@RequestBody QuestionWrongYunDTO wrong){
+    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());
+        queryWrapper.eq("user_id", userId);
+        queryWrapper.eq("km", wrong.getKm());
         questionWrongService.remove(queryWrapper);
 
         //保存上传的错题
         List<QuestionWrong> qlist = new ArrayList<QuestionWrong>();
-        for (Long qid : wrong.getQuestionIds()) {
+        for (QuestionWgYunDTO wgYunDTO : wrong.getWrongs()) {
             QuestionWrong questionWrong = new QuestionWrong();
             questionWrong.setUserId(userId);
             questionWrong.setKm(wrong.getKm());
-            questionWrong.setQuestionId(qid);
+            questionWrong.setQuestionId(wgYunDTO.getQuestionId());
+            Date crDate = new Date(wgYunDTO.getTimestamp() * 1000);
+            questionWrong.setCreateTime(crDate);
             qlist.add(questionWrong);
         }
         if (qlist.isEmpty()) {
-            Response response = new Response(200,"该错已加入错题集(无须提示给用户)");
+            Response response = new Response(200, "该错已加入错题集(无须提示给用户)");
             return response;
         }
         return toResponse(questionWrongService.saveBatch(qlist) ? 1 : 0);
     }
 
 
-
-
     @DeleteMapping("/cancel/{questionId}")
     @ApiOperation("删除错题")
-    public  Response<Integer> remove(
+    public Response<Integer> remove(
             @ApiParam(name = "questionId", value = "问题id", required = true)
             @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();
 
@@ -135,11 +134,11 @@ public class QuestionWrongController extends BaseController{
 
     @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<QuestionWrong> queryWrapper = new QueryWrapper<QuestionWrong>();
+        queryWrapper.eq("user_id", userId);
+        queryWrapper.eq("km", questionWrongDelDTO.getKm());
         questionWrongService.remove(queryWrapper);
         return Response.success();
     }
@@ -147,7 +146,7 @@ public class QuestionWrongController extends BaseController{
 
     @GetMapping("/wrongByUser")
     @ApiOperation("小程序恢复云端错题到本机(根据用户获取错题)")
-    public Response<List<QuestionInfo>> wrongByUser(@ModelAttribute QuestionWrongListDTO dto){
+    public Response<List<QuestionInfo>> wrongByUser(@ModelAttribute QuestionWrongListDTO dto) {
         dto.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
         List<QuestionInfo> list = questionWrongService.selectWrongByUserId(dto);
         return Response.success(list);
@@ -155,7 +154,7 @@ public class QuestionWrongController extends BaseController{
 
     @GetMapping("/appWrongByUser")
     @ApiOperation("app恢复云端错题到本机(根据用户获取错题)")
-    public Response<List<QuestionWrongIdDateVo>> appWrongByUser(@ModelAttribute QuestionWrongListDTO dto){
+    public Response<List<QuestionWrongIdDateVo>> appWrongByUser(@ModelAttribute QuestionWrongListDTO dto) {
         dto.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
         List<QuestionWrongIdDateVo> list = questionWrongService.selectWrongIdByUserId(dto);
         return Response.success(list);
@@ -164,7 +163,7 @@ public class QuestionWrongController extends BaseController{
 
     @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);

+ 13 - 0
nbjk-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 questionId;
+    @ApiModelProperty(value = "时间戳(收藏时间)", required = true, example = "1680249607")
+    private Long timestamp;
+}

+ 5 - 2
nbjk-service/src/main/java/com/miaxis/question/dto/QuestionCollectionYunDTO.java

@@ -3,13 +3,15 @@ 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, example = "[1,2,3,4]")
-    private Long[] questionIds;
+    @ApiModelProperty(value = "题目ID", required = true)
+    private List<QuestionColYunDTO> cols;
 
     /**
      * 科目
@@ -18,4 +20,5 @@ public class QuestionCollectionYunDTO {
     private Integer km;
 
 
+
 }

+ 22 - 0
nbjk-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 questionId;
+    @ApiModelProperty(value = "时间戳(做错时间)", required = true, example = "1680249607")
+    private Long timestamp;
+
+
+}

+ 3 - 1
nbjk-service/src/main/java/com/miaxis/question/dto/QuestionWrongYunDTO.java

@@ -4,6 +4,8 @@ import com.miaxis.common.core.domain.BaseBusinessEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * wrong对象 question_wrong
  *
@@ -15,7 +17,7 @@ public class QuestionWrongYunDTO {
 
 
     @ApiModelProperty(value = "题目ID", required = true, example = "[1,2,3,4]")
-    private Long[] questionIds;
+    private List<QuestionWgYunDTO> wrongs;
 
     /**
      * 科目

+ 6 - 3
nbjk-service/src/main/java/com/miaxis/question/vo/QuestionColIdDateVo.java

@@ -17,8 +17,11 @@ public class QuestionColIdDateVo {
     private Long id;
 
     /** 创建时间 */
-    @ApiModelProperty(value = "创建时间")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date createTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private transient Date createTime;
 
+    @ApiModelProperty(value = "时间戳(收藏时间)")
+    public long getTimestamp() {
+        return createTime.getTime(); // 将日期类型转换为长整型时间戳
+    }
 }

+ 6 - 1
nbjk-service/src/main/java/com/miaxis/question/vo/QuestionWrongIdDateVo.java

@@ -19,6 +19,11 @@ public class QuestionWrongIdDateVo {
     /** 创建时间 */
     @ApiModelProperty(value = "创建时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date createTime;
+    private transient Date createTime;
+
+    @ApiModelProperty(value = "时间戳(收藏时间)")
+    public long getTimestamp() {
+        return createTime.getTime(); // 将日期类型转换为长整型时间戳
+    }
 
 }