|
@@ -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();
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
}
|