Althars123 3 år sedan
förälder
incheckning
086fc55fd5

+ 48 - 24
jkt-admin/src/main/java/com/miaxis/app/controller/question/QuestionCollectionController.java

@@ -4,13 +4,16 @@ 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.BaseBusinessEntity;
 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.common.utils.poi.ExcelUtil;
 import com.miaxis.question.domain.QuestionCollection;
 import com.miaxis.question.dto.QuestionCollectionDTO;
+import com.miaxis.question.dto.QuestionCollectionListDTO;
 import com.miaxis.question.service.IQuestionCollectionService;
 import com.miaxis.score.domain.ScoreInfo;
 import io.swagger.annotations.*;
@@ -22,6 +25,7 @@ import org.springframework.web.bind.annotation.*;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 【collection】Controller
@@ -32,7 +36,7 @@ import java.util.List;
 @RestController
 @RequestMapping(Constants.STUDENT_PREFIX+"/question/collection")
 @Api(tags={"【APP-题目收藏】"})
-public class QuestionCollectionController extends BaseController{
+public class QuestionCollectionController extends BaseController {
     @Autowired
     private IQuestionCollectionService questionCollectionService;
 
@@ -42,15 +46,14 @@ public class QuestionCollectionController extends BaseController{
 
     @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),
+    @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(){
+    public ResponsePageInfo<QuestionCollection> list(@ModelAttribute QuestionCollectionListDTO dto) {
+        dto.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
         startPage();
-        QuestionCollection questionCollection = new QuestionCollection();
-        questionCollection.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
-        List<QuestionCollection> list = questionCollectionService.selectQuestionCollectionList(questionCollection);
+        List<QuestionCollection> list = questionCollectionService.selectQuestionCollectionList(dto);
         return toResponsePageInfo(list);
     }
 
@@ -76,7 +79,7 @@ public class QuestionCollectionController extends BaseController{
     public Response<QuestionCollection> getInfo(
             @ApiParam(name = "id", value = "collection参数", required = true)
             @PathVariable("id") Long id
-    ){
+    ) {
         return Response.success(questionCollectionService.getById(id));
     }
 
@@ -86,23 +89,42 @@ public class QuestionCollectionController extends BaseController{
     @Log(title = "collection", businessType = BusinessTypeEnum.INSERT)
     @PostMapping
     @ApiOperation("新增collection")
-    public Response<Integer> add(@RequestBody QuestionCollectionDTO questionCollectionDTO){
+    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())).count();
+        if (count > 0) {
+            throw new CustomException("该题目已搜藏过");
+        }
         QuestionCollection questionCollection = new QuestionCollection();
-        BeanUtils.copyProperties(questionCollectionDTO,questionCollection);
+        BeanUtils.copyProperties(questionCollectionDTO, questionCollection);
         questionCollection.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
         return toResponse(questionCollectionService.save(questionCollection) ? 1 : 0);
     }
 
     @PostMapping("collections")
     @ApiOperation("批量新增collection")
-    public Response<Integer> collections(@RequestBody List<QuestionCollectionDTO> list){
+    public Response<Integer> collections(@RequestBody List<QuestionCollectionDTO> list) {
+        //查询该用户已收藏的题目列表
+        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<QuestionCollection> qlist = new ArrayList<QuestionCollection>();
-        for (QuestionCollectionDTO questionCollectionDTO: list) {
+        for (QuestionCollectionDTO questionCollectionDTO : list) {
+            if (questionIds.contains(questionCollectionDTO.getQuestionId())) {
+                continue;
+            }
             QuestionCollection questionCollection = new QuestionCollection();
-            BeanUtils.copyProperties(questionCollectionDTO,questionCollection);
+            BeanUtils.copyProperties(questionCollectionDTO, questionCollection);
             questionCollection.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
             qlist.add(questionCollection);
         }
+        if (qlist.isEmpty()) {
+            throw new CustomException("选中的题目已收藏!");
+        }
         return toResponse(questionCollectionService.saveBatch(qlist) ? 1 : 0);
     }
 
@@ -114,9 +136,9 @@ public class QuestionCollectionController extends BaseController{
     @Log(title = "collection", businessType = BusinessTypeEnum.UPDATE)
     @PutMapping
     @ApiOperation("修改collection")
-    public Response<Integer> edit(@RequestBody QuestionCollectionDTO questionCollectionDTO){
+    public Response<Integer> edit(@RequestBody QuestionCollectionDTO questionCollectionDTO) {
         QuestionCollection questionCollection = new QuestionCollection();
-        BeanUtils.copyProperties(questionCollectionDTO,questionCollection);
+        BeanUtils.copyProperties(questionCollectionDTO, questionCollection);
         questionCollection.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
         return toResponse(questionCollectionService.updateById(questionCollection) ? 1 : 0);
     }
@@ -125,12 +147,12 @@ public class QuestionCollectionController extends BaseController{
      * 删除collection
      */
     @Log(title = "collection", businessType = BusinessTypeEnum.DELETE)
-	@DeleteMapping("/{ids}")
+    @DeleteMapping("/{ids}")
     @ApiOperation("删除collection")
-    public  Response<Integer> remove(
+    public Response<Integer> remove(
             @ApiParam(name = "ids", value = "collectionids参数", required = true)
             @PathVariable Long[] ids
-    ){
+    ) {
         return toResponse(questionCollectionService.removeByIds(Arrays.asList(ids)) ? 1 : 0);
     }
 
@@ -138,16 +160,18 @@ public class QuestionCollectionController extends BaseController{
     @Log(title = "collectionQuestion", 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
-    ){
+    ) {
         Long userId = SecurityUtils.getLoginUser().getStudent().getId();
-        QueryWrapper<QuestionCollection> queryWrapper= new QueryWrapper<QuestionCollection>();
-        queryWrapper.eq("user_id",userId);
-        queryWrapper.eq("question_id",questionId);
+        QueryWrapper<QuestionCollection> queryWrapper = new QueryWrapper<QuestionCollection>();
+        queryWrapper.eq("user_id", userId);
+        queryWrapper.eq("question_id", questionId);
         questionCollectionService.remove(queryWrapper);
         return Response.success();
 
     }
+
+
 }

+ 1 - 0
jkt-admin/src/main/java/com/miaxis/app/controller/question/QuestionVersionController.java

@@ -1,5 +1,6 @@
 package com.miaxis.app.controller.question;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.miaxis.common.constant.Constants;
 import java.util.List;
 import java.util.Arrays;

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

@@ -10,7 +10,9 @@ import java.util.Arrays;
 import com.miaxis.common.utils.SecurityUtils;
 import com.miaxis.question.domain.QuestionCollection;
 import com.miaxis.question.dto.QuestionCollectionDTO;
+import com.miaxis.question.dto.QuestionCollectionListDTO;
 import com.miaxis.question.dto.QuestionWrongDTO;
+import com.miaxis.question.dto.QuestionWrongListDTO;
 import com.miaxis.score.domain.ScoreInfo;
 import io.swagger.annotations.*;
 import com.miaxis.common.core.domain.Response;
@@ -56,11 +58,10 @@ public class QuestionWrongController extends BaseController{
             @ApiImplicitParam(name = "pageNum",value = "当前页码" ,dataType = "int", paramType = "query", required = false),
             @ApiImplicitParam(name = "pageSize",value = "每页数据量" , dataType = "int", paramType = "query", required = false),
     })
-    public ResponsePageInfo<QuestionWrong> list(){
+    public ResponsePageInfo<QuestionWrong> list(@ModelAttribute QuestionWrongListDTO dto){
         startPage();
-        QuestionWrong questionWrong = new QuestionWrong();
-        questionWrong.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
-        List<QuestionWrong> list = questionWrongService.selectQuestionWrongList(questionWrong);
+        dto.setUserId(SecurityUtils.getLoginUser().getStudent().getId());
+        List<QuestionWrong> list = questionWrongService.selectQuestionWrongList(dto);
         return toResponsePageInfo(list);
     }
 

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

@@ -20,7 +20,7 @@ public class QuestionCollectionDTO {
 
     /** 题目ID */
 
-    @ApiModelProperty(value = "题目ID")
+    @ApiModelProperty(value = "题目ID",required=true)
     private Long questionId;
 
 

+ 28 - 0
jkt-service/src/main/java/com/miaxis/question/dto/QuestionCollectionListDTO.java

@@ -0,0 +1,28 @@
+package com.miaxis.question.dto;
+
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.miaxis.common.annotation.Excel;
+import com.miaxis.common.core.domain.BaseBusinessEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * collection对象 question_collection
+ *
+ * @author miaxis
+ * @date 2021-08-18
+ */
+@Data
+public class QuestionCollectionListDTO extends BaseBusinessEntity {
+
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "用户ID",hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "题目ID",hidden = true)
+    private Long questionId;
+
+}

+ 26 - 0
jkt-service/src/main/java/com/miaxis/question/dto/QuestionWrongListDTO.java

@@ -0,0 +1,26 @@
+package com.miaxis.question.dto;
+
+import com.miaxis.common.core.domain.BaseBusinessEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * wrong对象 question_wrong
+ *
+ * @author miaxis
+ * @date 2021-08-19
+ */
+@Data
+public class QuestionWrongListDTO extends BaseBusinessEntity {
+
+
+    @ApiModelProperty(value = "用户ID",hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "题目ID",hidden = true)
+    private Long questionId;
+
+
+
+
+}

+ 2 - 1
jkt-service/src/main/java/com/miaxis/question/mapper/QuestionCollectionMapper.java

@@ -3,6 +3,7 @@ package com.miaxis.question.mapper;
 import java.util.List;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.miaxis.question.domain.QuestionCollection;
+import com.miaxis.question.dto.QuestionCollectionListDTO;
 
 /**
  * collectionMapper接口
@@ -17,6 +18,6 @@ public interface QuestionCollectionMapper extends BaseMapper<QuestionCollection>
      * @param questionCollection collection
      * @return collection集合
      */
-    public List<QuestionCollection> selectQuestionCollectionList(QuestionCollection questionCollection);
+    public List<QuestionCollection> selectQuestionCollectionList(QuestionCollectionListDTO questionCollection);
 
 }

+ 2 - 1
jkt-service/src/main/java/com/miaxis/question/mapper/QuestionWrongMapper.java

@@ -3,6 +3,7 @@ package com.miaxis.question.mapper;
 import java.util.List;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.miaxis.question.domain.QuestionWrong;
+import com.miaxis.question.dto.QuestionWrongListDTO;
 
 /**
  * wrongMapper接口
@@ -17,6 +18,6 @@ public interface QuestionWrongMapper extends BaseMapper<QuestionWrong> {
      * @param questionWrong wrong
      * @return wrong集合
      */
-    public List<QuestionWrong> selectQuestionWrongList(QuestionWrong questionWrong);
+    public List<QuestionWrong> selectQuestionWrongList(QuestionWrongListDTO questionWrong);
 
 }

+ 2 - 1
jkt-service/src/main/java/com/miaxis/question/service/IQuestionCollectionService.java

@@ -2,6 +2,7 @@ package com.miaxis.question.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.miaxis.question.domain.QuestionCollection;
+import com.miaxis.question.dto.QuestionCollectionListDTO;
 
 import java.util.List;
 
@@ -18,6 +19,6 @@ public interface IQuestionCollectionService extends IService<QuestionCollection>
      * @param questionCollection collection
      * @return collection集合
      */
-    public List<QuestionCollection> selectQuestionCollectionList(QuestionCollection questionCollection);
+    public List<QuestionCollection> selectQuestionCollectionList(QuestionCollectionListDTO questionCollection);
 
 }

+ 2 - 1
jkt-service/src/main/java/com/miaxis/question/service/IQuestionWrongService.java

@@ -3,6 +3,7 @@ package com.miaxis.question.service;
 import java.util.List;
 import com.miaxis.question.domain.QuestionWrong;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.miaxis.question.dto.QuestionWrongListDTO;
 
 /**
  * wrongService接口
@@ -17,5 +18,5 @@ public interface IQuestionWrongService extends IService<QuestionWrong>{
      * @param questionWrong wrong
      * @return wrong集合
      */
-    public List<QuestionWrong> selectQuestionWrongList(QuestionWrong questionWrong);
+    public List<QuestionWrong> selectQuestionWrongList(QuestionWrongListDTO questionWrong);
 }

+ 2 - 6
jkt-service/src/main/java/com/miaxis/question/service/impl/QuestionCollectionServiceImpl.java

@@ -2,13 +2,9 @@ package com.miaxis.question.service.impl;
 
 import java.util.List;
 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.question.dto.QuestionCollectionDTO;
+import com.miaxis.question.dto.QuestionCollectionListDTO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.apache.commons.lang3.StringUtils;
 import com.miaxis.question.mapper.QuestionCollectionMapper;
 import com.miaxis.question.domain.QuestionCollection;
 import com.miaxis.question.service.IQuestionCollectionService;
@@ -31,7 +27,7 @@ public class QuestionCollectionServiceImpl extends ServiceImpl<QuestionCollectio
      * @return collection
      */
     @Override
-    public List<QuestionCollection> selectQuestionCollectionList(QuestionCollection questionCollection){
+    public List<QuestionCollection> selectQuestionCollectionList(QuestionCollectionListDTO questionCollection){
         return questionCollectionMapper.selectQuestionCollectionList(questionCollection);
     }
 

+ 2 - 5
jkt-service/src/main/java/com/miaxis/question/service/impl/QuestionWrongServiceImpl.java

@@ -2,12 +2,9 @@ package com.miaxis.question.service.impl;
 
 import java.util.List;
 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.question.dto.QuestionWrongListDTO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.apache.commons.lang3.StringUtils;
 import com.miaxis.question.mapper.QuestionWrongMapper;
 import com.miaxis.question.domain.QuestionWrong;
 import com.miaxis.question.service.IQuestionWrongService;
@@ -30,7 +27,7 @@ public class QuestionWrongServiceImpl extends ServiceImpl<QuestionWrongMapper, Q
      * @return wrong
      */
     @Override
-    public List<QuestionWrong> selectQuestionWrongList(QuestionWrong questionWrong){
+    public List<QuestionWrong> selectQuestionWrongList(QuestionWrongListDTO questionWrong){
         return questionWrongMapper.selectQuestionWrongList(questionWrong);
     }
 }

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

@@ -16,7 +16,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select * from question_collection
     </sql>
 
-    <select id="selectQuestionCollectionList" parameterType="QuestionCollection" resultMap="QuestionCollectionResult">
+    <select id="selectQuestionCollectionList"  parameterType="QuestionCollectionListDTO" resultMap="QuestionCollectionResult">
         <include refid="selectQuestionCollectionVo"/>
         <where>
             <if test="userId != null "> and user_id = #{userId}</if>