Bladeren bron

PC收藏错题修改

小么熊🐻 2 jaren geleden
bovenliggende
commit
2390dabf2c

+ 6 - 0
jpcj-admin/src/main/java/com/miaxis/app/controller/h5/QuestionCollectionController.java

@@ -80,6 +80,7 @@ public class QuestionCollectionController extends BaseController {
             questionCollection.setQuestionId(colDTO.getId());
             Timestamp crDate = new Timestamp(colDTO.getTimestamp());
             questionCollection.setCreateTime(crDate);
+            questionCollection.setDeviceType(1);
             qlist.add(questionCollection);
         }
         if (qlist.isEmpty()) {
@@ -109,6 +110,7 @@ public class QuestionCollectionController extends BaseController {
             questionCollection.setQuestionId(colDTO.getId());
             Timestamp crDate = new Timestamp(colDTO.getTimestamp());
             questionCollection.setCreateTime(crDate);
+            questionCollection.setDeviceType(1);
             qlist.add(questionCollection);
         }
         if (qlist.isEmpty()) {
@@ -129,6 +131,7 @@ public class QuestionCollectionController extends BaseController {
         QueryWrapper<QuestionCollection> queryWrapper = new QueryWrapper<QuestionCollection>();
         queryWrapper.eq("user_id", userId);
         queryWrapper.eq("question_id", questionId);
+        queryWrapper.eq("device_type",1);
         questionCollectionService.remove(queryWrapper);
         return Response.success();
     }
@@ -141,6 +144,7 @@ public class QuestionCollectionController extends BaseController {
         QueryWrapper<QuestionCollection> queryWrapper = new QueryWrapper<QuestionCollection>();
         queryWrapper.eq("user_id",userId);
         queryWrapper.eq("km",questionCollectionDelDTO.getKm());
+        queryWrapper.eq("device_type",1);
         questionCollectionService.remove(queryWrapper);
         return Response.success();
     }
@@ -151,6 +155,7 @@ public class QuestionCollectionController extends BaseController {
     @ApiOperation("恢复云端收藏到本机(根据用户获取收藏题)")
     public Response<List<QuestionColIdDateVo>> appCollectionByUser(@ModelAttribute QuestionCollectionListDTO dto){
         dto.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
+        dto.setDeviceType(1);
         List<QuestionColIdDateVo> list = questionCollectionService.selectCollectionIdByUserId(dto);
         return Response.success(list);
     }
@@ -159,6 +164,7 @@ public class QuestionCollectionController extends BaseController {
     @ApiOperation("根据用户获取收藏题数")
     public Response<Integer> collectionCountByUser(@ModelAttribute QuestionCollectionListDTO dto){
         dto.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
+        dto.setDeviceType(1);
         Integer count = questionCollectionService.selectCollectionCountByUserId(dto);
         return Response.success(count);
     }

+ 173 - 0
jpcj-admin/src/main/java/com/miaxis/pc/controller/question/PcQuestionCollectionController.java

@@ -0,0 +1,173 @@
+package com.miaxis.pc.controller.question;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+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.enums.BusinessTypeEnum;
+import com.miaxis.common.utils.SecurityUtils;
+import com.miaxis.question.domain.QuestionCollection;
+import com.miaxis.question.dto.*;
+import com.miaxis.question.service.IQuestionCollectionService;
+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.List;
+import java.util.stream.Collectors;
+
+/**
+ * 【collection】Controller
+ *
+ * @author miaxis
+ * @date 2021-08-18
+ */
+@RestController
+@RequestMapping("/question/collection")
+@Api(tags={"【H5-题目收藏】"})
+public class PcQuestionCollectionController extends BaseController {
+    @Autowired
+    private IQuestionCollectionService questionCollectionService;
+
+    /**
+     * 新增collection
+     */
+    @Log(title = "collection", businessType = BusinessTypeEnum.INSERT)
+    @PostMapping
+    @ApiOperation("新增collection")
+    public Response<Integer> add(@RequestBody QuestionCollectionDTO questionCollectionDTO) {
+        //查询该用户已收藏的题目列表
+        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()) && questionCollectionDTO.getKm().equals(o.getKm())).count();
+        if (count > 0) {
+            Response response = new Response(200,"该题目已收藏过");
+            return response;
+        }
+        QuestionCollection questionCollection = new QuestionCollection();
+        BeanUtils.copyProperties(questionCollectionDTO, questionCollection);
+        questionCollection.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
+        questionCollection.setDeviceType(2);
+        return toResponse(questionCollectionService.save(questionCollection) ? 1 : 0);
+    }
+
+    @PostMapping("collections")
+    @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> questionIdsStr = dblist.stream().map(o -> (o.getQuestionId()+","+o.getKm())).collect(Collectors.toList());
+
+        List<QuestionCollection> qlist = new ArrayList<QuestionCollection>();
+        for (QuestionColYunDTO colDTO : col.getCols()) {
+            if (questionIdsStr.contains(colDTO.getId()+","+col.getKm())) {
+                continue;
+            }
+            QuestionCollection questionCollection = new QuestionCollection();
+            questionCollection.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
+            questionCollection.setKm(col.getKm());
+            questionCollection.setQuestionId(colDTO.getId());
+            Timestamp crDate = new Timestamp(colDTO.getTimestamp());
+            questionCollection.setCreateTime(crDate);
+            questionCollection.setDeviceType(2);
+            qlist.add(questionCollection);
+        }
+        if (qlist.isEmpty()) {
+            Response response = new Response(200,"选中的题目已收藏!");
+            return response;
+        }
+        return toResponse(questionCollectionService.saveBatch(qlist) ? 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);
+
+        //保存上传的收藏题
+        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);
+            questionCollection.setDeviceType(2);
+            qlist.add(questionCollection);
+        }
+        if (qlist.isEmpty()) {
+            Response response = new Response(200,"请先收藏题目。");
+            return response;
+        }
+        return toResponse(questionCollectionService.saveBatch(qlist) ? 1 : 0);
+    }
+
+
+    @DeleteMapping("/cancel/{questionId}")
+    @ApiOperation("取消收藏")
+    public Response<Integer> remove(
+            @ApiParam(name = "questionId", value = "题目id", required = true)
+            @PathVariable String questionId
+    ) {
+        Long userId = SecurityUtils.getLoginUser().getStudent().getId();
+        QueryWrapper<QuestionCollection> queryWrapper = new QueryWrapper<QuestionCollection>();
+        queryWrapper.eq("user_id", userId);
+        queryWrapper.eq("question_id", questionId);
+        queryWrapper.eq("device_type",2);
+        questionCollectionService.remove(queryWrapper);
+        return Response.success();
+    }
+
+
+    @DeleteMapping("/cancelAll")
+    @ApiOperation("清空收藏")
+    public  Response<Integer> removeAll(@RequestBody QuestionCollectionDelDTO questionCollectionDelDTO){
+        Long userId = SecurityUtils.getLoginUser().getStudent().getId();
+        QueryWrapper<QuestionCollection> queryWrapper = new QueryWrapper<QuestionCollection>();
+        queryWrapper.eq("user_id",userId);
+        queryWrapper.eq("km",questionCollectionDelDTO.getKm());
+        queryWrapper.eq("device_type",2);
+        questionCollectionService.remove(queryWrapper);
+        return Response.success();
+    }
+
+
+
+    @GetMapping("/collectionByUser")
+    @ApiOperation("恢复云端收藏到本机(根据用户获取收藏题)")
+    public Response<List<QuestionColIdDateVo>> appCollectionByUser(@ModelAttribute QuestionCollectionListDTO dto){
+        dto.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
+        dto.setDeviceType(2);
+        List<QuestionColIdDateVo> list = questionCollectionService.selectCollectionIdByUserId(dto);
+        return Response.success(list);
+    }
+
+    @GetMapping("/collectionCountByUser")
+    @ApiOperation("根据用户获取收藏题数")
+    public Response<Integer> collectionCountByUser(@ModelAttribute QuestionCollectionListDTO dto){
+        dto.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
+        dto.setDeviceType(2);
+        Integer count = questionCollectionService.selectCollectionCountByUserId(dto);
+        return Response.success(count);
+    }
+
+
+
+}

+ 171 - 0
jpcj-admin/src/main/java/com/miaxis/pc/controller/question/PcQuestionWrongController.java

@@ -0,0 +1,171 @@
+package com.miaxis.pc.controller.question;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.miaxis.common.constant.Constants;
+import com.miaxis.common.core.controller.BaseController;
+import com.miaxis.common.core.domain.Response;
+import com.miaxis.common.utils.SecurityUtils;
+import com.miaxis.question.domain.QuestionWrong;
+import com.miaxis.question.dto.*;
+import com.miaxis.question.service.IQuestionWrongService;
+import com.miaxis.question.vo.QuestionWrongIdDateVo;
+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.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 【wrong】Controller
+ *
+ * @author miaxis
+ * @date 2021-08-19
+ */
+@RestController
+@RequestMapping("/question/wrong")
+@Api(tags={"【H5-错题】"})
+public class PcQuestionWrongController extends BaseController {
+    @Autowired
+    private IQuestionWrongService questionWrongService;
+
+
+    /**
+     * 新增wrong
+     */
+    @PostMapping
+    @ApiOperation("新增wrong")
+    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();
+        if (count > 0) {
+            //throw new CustomException("该错已加入错题集");
+            Response response = new Response(200, "该错已加入错题集");
+            return response;
+        }
+        QuestionWrong questionWrong = new QuestionWrong();
+        BeanUtils.copyProperties(questionWrongDTO, questionWrong);
+        questionWrong.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
+        questionWrong.setDeviceType(2);
+        return toResponse(questionWrongService.save(questionWrong) ? 1 : 0);
+    }
+
+    @PostMapping("wrongs")
+    @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> questionIdsStr = dblist.stream().map(o -> o.getQuestionId() + "," + o.getKm()).collect(Collectors.toList());
+
+        List<QuestionWrong> qlist = new ArrayList<QuestionWrong>();
+        for (QuestionWgYunDTO wgYunDTO : wrong.getWrongs()) {
+            if (questionIdsStr.contains(wgYunDTO.getId() + "," + wrong.getKm())) {
+                continue;
+            }
+            QuestionWrong questionWrong = new QuestionWrong();
+            questionWrong.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
+            questionWrong.setKm(wrong.getKm());
+            questionWrong.setQuestionId(wgYunDTO.getId());
+            questionWrong.setDeviceType(2);
+            Date crDate = new Date(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);
+    }
+
+
+    @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());
+            questionWrong.setDeviceType(2);
+            Date crDate = new Date(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);
+    }
+
+
+    @DeleteMapping("/cancel/{questionId}")
+    @ApiOperation("删除错题")
+    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.eq("device_type",2);
+        questionWrongService.remove(queryWrapper);
+        return Response.success();
+
+    }
+
+    @DeleteMapping("/cancelAll")
+    @ApiOperation("清空错题")
+    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("device_type",2);
+        questionWrongService.remove(queryWrapper);
+        return Response.success();
+    }
+
+
+    @GetMapping("/wrongByUser")
+    @ApiOperation("恢复云端错题到本机(根据用户获取错题)")
+    public Response<List<QuestionWrongIdDateVo>> appWrongByUser(@ModelAttribute QuestionWrongListDTO dto) {
+        dto.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
+        dto.setDeviceType(2);
+        List<QuestionWrongIdDateVo> list = questionWrongService.selectWrongIdByUserId(dto);
+        return Response.success(list);
+    }
+
+
+    @GetMapping("/wrongCountByUser")
+    @ApiOperation("根据用户获取错题数")
+    public Response<Integer> wrongCountByUser(@ModelAttribute QuestionWrongListDTO dto) {
+        dto.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
+        dto.setDeviceType(2);
+        Integer count = questionWrongService.selectWrongCountByUserId(dto);
+        return Response.success(count);
+    }
+
+
+}

+ 2 - 0
jpcj-service/src/main/java/com/miaxis/question/dto/QuestionCollectionListDTO.java

@@ -27,4 +27,6 @@ public class QuestionCollectionListDTO extends BaseBusinessEntity {
     @ApiModelProperty(value = "考试科目(科目一、科目二、科目三、科目四)")
     private Integer km;
 
+    @ApiModelProperty(value = "终端类型",hidden = true)
+    private Integer deviceType;
 }