fix: [临时提交]

This commit is contained in:
ovo 2025-04-15 23:50:51 +08:00
parent e01fe45e8b
commit a3decaedb4
6 changed files with 374 additions and 0 deletions

View File

@ -0,0 +1,68 @@
package com.guwan.backend.model.exam.controller;
import com.guwan.backend.core.api.ApiRest;
import com.guwan.backend.core.api.controller.BaseController;
import com.guwan.backend.core.api.dto.BaseIdReqDTO;
import com.guwan.backend.core.api.dto.BaseIdRespDTO;
import com.guwan.backend.model.exam.dto.PaperCreateReqDTO;
import com.guwan.backend.model.exam.service.PaperService;
import com.guwan.backend.security.CustomUserDetails;
import com.guwan.backend.util.JwtUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.bind.annotation.*;
/**
* <p>
* 试卷控制器
* </p>
*
* @author 聪明笨狗
* @since 2020-05-25 16:33
*/
@Api(tags={"试卷"})
@RestController
@RequestMapping("/exam/api/paper/paper")
public class PaperController extends BaseController {
@Autowired
private PaperService baseService;
@Autowired
private JwtUtil jwtUtil;
/**
* 创建试卷
* @param reqDTO
* @return
*/
@ApiOperation(value = "创建试卷")
@PostMapping(value = "/create-paper")
public ApiRest<BaseIdRespDTO> save(@RequestBody PaperCreateReqDTO reqDTO) {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (authentication != null && authentication.getPrincipal() instanceof CustomUserDetails userDetails) {
// sysLog.setUserId(userDetails.getUserId());
// sysLog.setUsername(userDetails.getUsername());
}
//复制参数
// String paperId = baseService.createPaper(UserUtils.getUserId(), reqDTO.getExamId());
String paperId = baseService.createPaper("111",
reqDTO.getExamId());
return super.success(new BaseIdRespDTO(paperId));
}
}

View File

@ -0,0 +1,21 @@
package com.guwan.backend.model.exam.dto;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author bool
*/
@Data
@ApiModel(value="试卷创建请求类", description="试卷创建请求类")
public class PaperCreateReqDTO {
@JsonIgnore
private String userId;
@ApiModelProperty(value = "考试ID", required=true)
private String examId;
}

View File

@ -0,0 +1,125 @@
package com.guwan.backend.model.exam.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import java.util.Date;
/**
* <p>
* 试卷实体类
* </p>
*
* @author 聪明笨狗
* @since 2020-05-25 17:31
*/
@Data
@TableName("el_paper")
public class Paper extends Model<Paper> {
private static final long serialVersionUID = 1L;
/**
* 试卷ID
*/
@TableId(value = "id", type = IdType.ASSIGN_ID)
private String id;
/**
* 用户ID
*/
@TableField("user_id")
private String userId;
/**
* 部门ID
*/
@TableField("depart_id")
private String departId;
/**
* 规则ID
*/
@TableField("exam_id")
private String examId;
/**
* 考试标题
*/
private String title;
/**
* 考试时长
*/
@TableField("total_time")
private Integer totalTime;
/**
* 用户时长
*/
@TableField("user_time")
private Integer userTime;
/**
* 试卷总分
*/
@TableField("total_score")
private Integer totalScore;
/**
* 及格分
*/
@TableField("qualify_score")
private Integer qualifyScore;
/**
* 客观分
*/
@TableField("obj_score")
private Integer objScore;
/**
* 主观分
*/
@TableField("subj_score")
private Integer subjScore;
/**
* 用户得分
*/
@TableField("user_score")
private Integer userScore;
/**
* 是否包含简答题
*/
@TableField("has_saq")
private Boolean hasSaq;
/**
* 试卷状态
*/
private Integer state;
/**
* 创建时间
*/
@TableField("create_time")
private Date createTime;
/**
* 更新时间
*/
@TableField("update_time")
private Date updateTime;
/**
* 截止时间
*/
@TableField("limit_time")
private Date limitTime;
}

View File

@ -0,0 +1,23 @@
package com.guwan.backend.model.exam.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.guwan.backend.model.exam.entity.Paper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 试卷Mapper
* </p>
*
* @author 聪明笨狗
* @since 2020-05-25 16:33
*/
public interface PaperMapper extends BaseMapper<Paper> {
}

View File

@ -0,0 +1,33 @@
package com.guwan.backend.model.exam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.guwan.backend.model.exam.entity.Paper;
/**
* <p>
* 试卷业务类
* </p>
*
* @author 聪明笨狗
* @since 2020-05-25 16:33
*/
public interface PaperService extends IService<Paper> {
/**
* 创建试卷
* @param userId
* @param examId
* @return
*/
String createPaper(String userId, String examId);
}

View File

@ -0,0 +1,104 @@
package com.guwan.backend.model.exam.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.guwan.backend.core.BeanMapper;
import com.guwan.backend.core.api.ApiError;
import com.guwan.backend.core.api.dto.PagingReqDTO;
import com.guwan.backend.core.exception.ServiceException;
import com.guwan.backend.model.exam.dto.ExamDTO;
import com.guwan.backend.model.exam.entity.Paper;
import com.guwan.backend.model.exam.enums.ExamState;
import com.guwan.backend.model.exam.mapper.PaperMapper;
import com.guwan.backend.model.exam.service.ExamRepoService;
import com.guwan.backend.model.exam.service.ExamService;
import com.guwan.backend.model.exam.service.PaperService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.Arrays;
import java.util.List;
/**
* <p>
* 语言设置 服务实现类
* </p>
*
* @author 聪明笨狗
* @since 2020-05-25 16:33
*/
@Service
public class PaperServiceImpl extends ServiceImpl<PaperMapper, Paper> implements PaperService {
@Autowired
private ExamService examService;
/**
* 展示的选项ABC这样
*/
private static List<String> ABC = Arrays.asList(new String[]{
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K","L","M","N","O","P","Q","R","S","T","U","V","W","X"
,"Y","Z"
});
@Transactional(rollbackFor = Exception.class)
@Override
public String createPaper(String userId, String examId) {
// 校验是否有正在考试的试卷
/* QueryWrapper<Paper> wrapper = new QueryWrapper<>();
wrapper.lambda()
.eq(Paper::getUserId, userId)
.eq(Paper::getState, PaperState.ING);
long exists = this.count(wrapper);
if (exists > 0) {
throw new ServiceException(ApiError.ERROR_20010002);
}*/
// 查找考试
ExamDTO exam = examService.findById(examId);
if(exam == null){
throw new ServiceException(1, "考试不存在!");
}
if(!ExamState.ENABLE.equals(exam.getState())){
throw new ServiceException(1, "考试状态不正确!");
}
// 考试题目列表
/* List<PaperQu> quList = this.generateByRepo(examId);
if(CollectionUtils.isEmpty(quList)){
throw new ServiceException(1, "规则不正确,无对应的考题!");
}
//保存试卷内容
Paper paper = this.savePaper(userId, exam, quList);*/
// return paper.getId();
return "1";
}
}