user paper exam
parent
502c83667a
commit
1a97101ee5
|
|
@ -1,14 +1,18 @@
|
|||
package org.qinan.cedu.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.qinan.cedu.model.dto.PaperCoursewarePageQueryDTO;
|
||||
import org.qinan.cedu.model.dto.QuestionTypeCountQueryDTO;
|
||||
import org.qinan.cedu.model.dto.QuestionUpdateDTO;
|
||||
import org.qinan.cedu.model.vo.QuestionCoursewareVO;
|
||||
import org.qinan.cedu.model.vo.QuestionTypeCountVO;
|
||||
import org.qinan.cedu.model.vo.QuestionVO;
|
||||
import org.qinan.cedu.service.QuestionService;
|
||||
import org.qinan.safetyeval.client.dto.PageResponse;
|
||||
import org.qinan.safetyeval.client.dto.SingleResponse;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
|
@ -49,4 +53,11 @@ public class QuestionController {
|
|||
return SingleResponse.success(questionService.countQuestionType(dto));
|
||||
}
|
||||
|
||||
@ApiOperation("分页试题信息,根据课件或者试题id")
|
||||
@GetMapping("/page/courseware")
|
||||
public PageResponse<QuestionCoursewareVO> pageCourseware(PaperCoursewarePageQueryDTO query) {
|
||||
IPage<QuestionCoursewareVO> page = questionService.pageCourseware(query);
|
||||
return PageResponse.of(page.getRecords(), page.getTotal());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,16 +5,14 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.qinan.cedu.model.dto.PaperCoursewarePageQueryDTO;
|
||||
import org.qinan.cedu.model.dto.PaperQuestionPageQueryDTO;
|
||||
import org.qinan.cedu.model.dto.QuestionTypeCountQueryDTO;
|
||||
import org.qinan.cedu.model.entity.QuestionDO;
|
||||
import org.qinan.cedu.model.vo.PaperQuestionDetailVO;
|
||||
import org.qinan.cedu.model.vo.PaperQuestionVO;
|
||||
import org.qinan.cedu.model.vo.QuestionTypeCountVO;
|
||||
import org.qinan.cedu.model.vo.QuestionVO;
|
||||
import org.qinan.cedu.model.vo.StartExamQuestionVO;
|
||||
import org.qinan.cedu.model.vo.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 试题 Mapper
|
||||
*/
|
||||
|
|
@ -82,4 +80,14 @@ public interface QuestionMapper extends BaseMapper<QuestionDO> {
|
|||
List<Long> listRandomQuestionIds(@Param("coursewareManagementIdList") List<Long> coursewareManagementIdList,
|
||||
@Param("questionType") String questionType,
|
||||
@Param("num") Integer num);
|
||||
|
||||
/**
|
||||
* pageCourseware
|
||||
*
|
||||
* @param page page
|
||||
* @param query query
|
||||
* @return QuestionCoursewareVO
|
||||
*/
|
||||
IPage<QuestionCoursewareVO> pageCourseware(Page<PaperQuestionVO> page
|
||||
,@Param("qry") PaperCoursewarePageQueryDTO query);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,29 @@
|
|||
package org.qinan.cedu.model.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.qinan.cedu.enums.PaperTypeEnum;
|
||||
import org.qinan.cedu.model.query.BasePageQuery;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 试卷分页查询请求
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ApiModel(value = "PaperCoursewarePageQueryDTO", description = "科技分页查询")
|
||||
public class PaperCoursewarePageQueryDTO extends BasePageQuery {
|
||||
|
||||
@ApiModelProperty("课件id")
|
||||
@NotNull
|
||||
private Long coursewareManagementId;
|
||||
|
||||
@ApiModelProperty(PaperTypeEnum.REMARKS)
|
||||
private String paperType;
|
||||
|
||||
@ApiModelProperty("题干id")
|
||||
private String title;
|
||||
}
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
package org.qinan.cedu.model.vo;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 试卷试题分页返回
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value = "QuestionCoursewareVO", description = "课件试题对象")
|
||||
public class QuestionCoursewareVO {
|
||||
|
||||
@ApiModelProperty("试题id")
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("题干")
|
||||
private String title;
|
||||
|
||||
@ApiModelProperty("分值")
|
||||
private BigDecimal score;
|
||||
|
||||
@ApiModelProperty("答案选项id,多个逗号隔开")
|
||||
private String answerQuestionOptionIds;
|
||||
|
||||
@ApiModelProperty("答案选项,多个逗号隔开")
|
||||
private String answer;
|
||||
|
||||
@ApiModelProperty("答案解析")
|
||||
private String analysis;
|
||||
|
||||
@ApiModelProperty("题型:single单选/multiple多选/judge判断")
|
||||
private String questionType;
|
||||
|
||||
@ApiModelProperty("标签类型")
|
||||
private String tagType;
|
||||
|
||||
@ApiModelProperty("试题号")
|
||||
private Integer questionNum;
|
||||
|
||||
@ApiModelProperty("关联课件名称")
|
||||
private String coursewareName;
|
||||
|
||||
@ApiModelProperty("关联课件id")
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long coursewareManagementId;
|
||||
}
|
||||
|
|
@ -2,12 +2,14 @@ package org.qinan.cedu.service;
|
|||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.qinan.cedu.model.dto.PaperCoursewarePageQueryDTO;
|
||||
import org.qinan.cedu.model.dto.PaperQuestionPageQueryDTO;
|
||||
import org.qinan.cedu.model.dto.QuestionTypeCountQueryDTO;
|
||||
import org.qinan.cedu.model.dto.QuestionUpdateDTO;
|
||||
import org.qinan.cedu.model.entity.QuestionDO;
|
||||
import org.qinan.cedu.model.entity.QuestionOptionDO;
|
||||
import org.qinan.cedu.model.vo.PaperQuestionVO;
|
||||
import org.qinan.cedu.model.vo.QuestionCoursewareVO;
|
||||
import org.qinan.cedu.model.vo.QuestionTypeCountVO;
|
||||
import org.qinan.cedu.model.vo.QuestionVO;
|
||||
|
||||
|
|
@ -93,4 +95,12 @@ public interface QuestionService extends IService<QuestionDO> {
|
|||
* @return 是否成功
|
||||
*/
|
||||
boolean deleteById(Long id);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param query query
|
||||
* @return QuestionCoursewareVO
|
||||
*/
|
||||
IPage<QuestionCoursewareVO> pageCourseware(PaperCoursewarePageQueryDTO query);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,13 +13,11 @@ import org.qinan.cedu.convertor.QuestionConvertor;
|
|||
import org.qinan.cedu.enums.DeleteEnum;
|
||||
import org.qinan.cedu.mapper.QuestionMapper;
|
||||
import org.qinan.cedu.mapper.QuestionOptionMapper;
|
||||
import org.qinan.cedu.model.dto.PaperQuestionPageQueryDTO;
|
||||
import org.qinan.cedu.model.dto.QuestionOptionUpdateDTO;
|
||||
import org.qinan.cedu.model.dto.QuestionTypeCountQueryDTO;
|
||||
import org.qinan.cedu.model.dto.QuestionUpdateDTO;
|
||||
import org.qinan.cedu.model.dto.*;
|
||||
import org.qinan.cedu.model.entity.QuestionDO;
|
||||
import org.qinan.cedu.model.entity.QuestionOptionDO;
|
||||
import org.qinan.cedu.model.vo.PaperQuestionVO;
|
||||
import org.qinan.cedu.model.vo.QuestionCoursewareVO;
|
||||
import org.qinan.cedu.model.vo.QuestionTypeCountVO;
|
||||
import org.qinan.cedu.model.vo.QuestionVO;
|
||||
import org.qinan.cedu.service.QuestionService;
|
||||
|
|
@ -229,6 +227,11 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, QuestionDO>
|
|||
return deleted;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<QuestionCoursewareVO> pageCourseware(PaperCoursewarePageQueryDTO query) {
|
||||
return this.baseMapper.pageCourseware(new Page<>(query.getCurrent(), query.getSize()), query);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存试题选项(重置id并绑定试题id、统一填充时间后批量插入)
|
||||
*
|
||||
|
|
|
|||
|
|
@ -90,4 +90,28 @@
|
|||
AND q.delete_enum = 'false'
|
||||
ORDER BY pqr.question_num ASC, pqr.id ASC
|
||||
</select>
|
||||
|
||||
<select id="pageCourseware" resultType="org.qinan.cedu.model.vo.QuestionCoursewareVO">
|
||||
SELECT q.id
|
||||
, q.title
|
||||
, q.score
|
||||
, q.answer_question_option_ids
|
||||
, q.analysis
|
||||
, q.question_type
|
||||
, q.tag_type
|
||||
, q.answer
|
||||
, cm.courseware_name
|
||||
, q.courseware_management_id
|
||||
FROM question q
|
||||
JOIN courseware_management cm ON cm.id = q.courseware_management_id
|
||||
WHERE cm.id = #{qry.coursewareManagementId}
|
||||
AND q.delete_enum = 'false'
|
||||
<if test="qry.title != null and qry.title != ''">
|
||||
AND q.title LIKE CONCAT('%', #{qry.title}, '%')
|
||||
</if>
|
||||
<if test="qry.questionType != null and qry.questionType != ''">
|
||||
AND q.question_type = #{qry.questionType}
|
||||
</if>
|
||||
ORDER BY q.id DESC
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
Loading…
Reference in New Issue