增加考试人数、考试次数接口

newBigdata
yz 11 months ago
parent 3619e728b2
commit 2f2e7ed67b

@ -11,6 +11,7 @@ import com.sztzjy.financial_bigdata.config.security.TokenProvider;
import com.sztzjy.financial_bigdata.entity.*; import com.sztzjy.financial_bigdata.entity.*;
import com.sztzjy.financial_bigdata.entity.stu_dto.StuUserDto; import com.sztzjy.financial_bigdata.entity.stu_dto.StuUserDto;
import com.sztzjy.financial_bigdata.mapper.StuClassMapper; import com.sztzjy.financial_bigdata.mapper.StuClassMapper;
import com.sztzjy.financial_bigdata.mapper.StuStudentExamMapper;
import com.sztzjy.financial_bigdata.mapper.StuUserMapper; import com.sztzjy.financial_bigdata.mapper.StuUserMapper;
import com.sztzjy.financial_bigdata.mapper.SysLoginLogMapper; import com.sztzjy.financial_bigdata.mapper.SysLoginLogMapper;
import com.sztzjy.financial_bigdata.service.tea.ITeaUserService; import com.sztzjy.financial_bigdata.service.tea.ITeaUserService;
@ -55,6 +56,8 @@ public class UserController {
private SysLoginLogMapper sysLoginLogMapper; private SysLoginLogMapper sysLoginLogMapper;
@Resource @Resource
private AuthenticationManagerBuilder authenticationManagerBuilder; private AuthenticationManagerBuilder authenticationManagerBuilder;
@Autowired
private StuStudentExamMapper studentExamMapper;
// 用户登录时记录的信息 // 用户登录时记录的信息
private static LocalDateTime loginTime; private static LocalDateTime loginTime;
@ -476,4 +479,22 @@ public class UserController {
@RequestParam(required = false) String classId) { @RequestParam(required = false) String classId) {
userService.logExport(response, schoolId, studentId, classId); userService.logExport(response, schoolId, studentId, classId);
} }
@AnonymousAccess
@GetMapping("/getStudentExamPeopleCountAndStudentExamTime")
@ApiOperation("考试人数和考试次数")
public ResultEntity<Map<Long,Long>> getStudentExamCountAndStudentCount(String schoolId){
StuUserExample stuUserExample = new StuUserExample();
stuUserExample.createCriteria().andSchoolIdEqualTo(schoolId).andExamStatusEqualTo("true");
//考试人数
long examPeopleCount= stuUserMapper.countByExample(stuUserExample);
StuStudentExamExample stuStudentExamExample = new StuStudentExamExample();
//考试次数
long examTime = studentExamMapper.countByExample(stuStudentExamExample);
HashMap<Long, Long> countMap = new HashMap<>();
countMap.put(examPeopleCount,examTime);
return new ResultEntity<>(HttpStatus.OK, "考试人数和考试次数查询成功", countMap);
}
} }

@ -37,7 +37,7 @@ public class StuUser {
@ApiModelProperty("专业") @ApiModelProperty("专业")
private String major; private String major;
@ApiModelProperty("角色ID 学生0老师1") @ApiModelProperty("3教师 4学生")
private Integer roleId; private Integer roleId;
@ApiModelProperty("创建时间") @ApiModelProperty("创建时间")
@ -52,6 +52,9 @@ public class StuUser {
@ApiModelProperty("状态 0未删除 1删除") @ApiModelProperty("状态 0未删除 1删除")
private Integer status; private Integer status;
@ApiModelProperty("是否参加过考试")
private String examStatus;
public String getUserid() { public String getUserid() {
return userid; return userid;
} }
@ -163,4 +166,12 @@ public class StuUser {
public void setStatus(Integer status) { public void setStatus(Integer status) {
this.status = status; this.status = status;
} }
public String getExamStatus() {
return examStatus;
}
public void setExamStatus(String examStatus) {
this.examStatus = examStatus == null ? null : examStatus.trim();
}
} }

@ -1054,6 +1054,76 @@ public class StuUserExample {
addCriterion("status not between", value1, value2, "status"); addCriterion("status not between", value1, value2, "status");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andExamStatusIsNull() {
addCriterion("exam_status is null");
return (Criteria) this;
}
public Criteria andExamStatusIsNotNull() {
addCriterion("exam_status is not null");
return (Criteria) this;
}
public Criteria andExamStatusEqualTo(String value) {
addCriterion("exam_status =", value, "examStatus");
return (Criteria) this;
}
public Criteria andExamStatusNotEqualTo(String value) {
addCriterion("exam_status <>", value, "examStatus");
return (Criteria) this;
}
public Criteria andExamStatusGreaterThan(String value) {
addCriterion("exam_status >", value, "examStatus");
return (Criteria) this;
}
public Criteria andExamStatusGreaterThanOrEqualTo(String value) {
addCriterion("exam_status >=", value, "examStatus");
return (Criteria) this;
}
public Criteria andExamStatusLessThan(String value) {
addCriterion("exam_status <", value, "examStatus");
return (Criteria) this;
}
public Criteria andExamStatusLessThanOrEqualTo(String value) {
addCriterion("exam_status <=", value, "examStatus");
return (Criteria) this;
}
public Criteria andExamStatusLike(String value) {
addCriterion("exam_status like", value, "examStatus");
return (Criteria) this;
}
public Criteria andExamStatusNotLike(String value) {
addCriterion("exam_status not like", value, "examStatus");
return (Criteria) this;
}
public Criteria andExamStatusIn(List<String> values) {
addCriterion("exam_status in", values, "examStatus");
return (Criteria) this;
}
public Criteria andExamStatusNotIn(List<String> values) {
addCriterion("exam_status not in", values, "examStatus");
return (Criteria) this;
}
public Criteria andExamStatusBetween(String value1, String value2) {
addCriterion("exam_status between", value1, value2, "examStatus");
return (Criteria) this;
}
public Criteria andExamStatusNotBetween(String value1, String value2) {
addCriterion("exam_status not between", value1, value2, "examStatus");
return (Criteria) this;
}
} }
public static class Criteria extends GeneratedCriteria { public static class Criteria extends GeneratedCriteria {

@ -5,6 +5,7 @@ import com.sztzjy.financial_bigdata.entity.stu_dto.StuCommitCaseExamDto;
import com.sztzjy.financial_bigdata.entity.stu_dto.StuTheoryTestDto; import com.sztzjy.financial_bigdata.entity.stu_dto.StuTheoryTestDto;
import com.sztzjy.financial_bigdata.mapper.*; import com.sztzjy.financial_bigdata.mapper.*;
import com.sztzjy.financial_bigdata.service.stu.IExamService; import com.sztzjy.financial_bigdata.service.stu.IExamService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -23,6 +24,8 @@ public class ExamServiceImpl implements IExamService {
SysCaseQuestionStepMapper stepMapper; SysCaseQuestionStepMapper stepMapper;
@Autowired @Autowired
StuExamCaseMapper stuExamCaseMapper; StuExamCaseMapper stuExamCaseMapper;
@Autowired
StuUserMapper userMapper;
//如果学生考试表查询不到 则新增一条数据 //如果学生考试表查询不到 则新增一条数据
//根据examManageId 查询该考试的题目idlist 再通过idlist查询题目信息进行返回 //根据examManageId 查询该考试的题目idlist 再通过idlist查询题目信息进行返回
@ -49,6 +52,14 @@ public class ExamServiceImpl implements IExamService {
stuExam.setStartTime(new Date()); stuExam.setStartTime(new Date());
studentExamMapper.insert(stuExam); studentExamMapper.insert(stuExam);
List<SysObjectiveQuestion> objectiveQuestionList = GenerateExam(examManageId); List<SysObjectiveQuestion> objectiveQuestionList = GenerateExam(examManageId);
//查询userinfo表 修改考试状态
StuUser stuUser = userMapper.selectByPrimaryKey(userId);
if(StringUtils.isBlank(stuUser.getExamStatus())){
stuUser.setExamStatus("true");
userMapper.updateByPrimaryKey(stuUser);
}
return objectiveQuestionList; return objectiveQuestionList;
}else { }else {
StuStudentExamWithBLOBs stuExam = stuStudentExams.get(0); StuStudentExamWithBLOBs stuExam = stuStudentExams.get(0);
@ -128,6 +139,7 @@ public class ExamServiceImpl implements IExamService {
//案例开始答题 //案例开始答题
//先查询考试stustudentexam数据是否生成
//先查询当前时间是否在考试时间之内 //先查询当前时间是否在考试时间之内
//在考试时间外 返回不在考试时间内 //在考试时间外 返回不在考试时间内
//考试时间内 //考试时间内
@ -136,6 +148,32 @@ public class ExamServiceImpl implements IExamService {
@Override @Override
public List<SysCaseQuestionStep> startCase(String examManageId, String userId, String classId,String caseId){ public List<SysCaseQuestionStep> startCase(String examManageId, String userId, String classId,String caseId){
StuStudentExamExample stuExamexample = new StuStudentExamExample();
stuExamexample.createCriteria().andUseridEqualTo(userId).andExamManageIdEqualTo(examManageId);
List<StuStudentExamWithBLOBs> stuStudentExams = studentExamMapper.selectByExampleWithBLOBs(stuExamexample);
if(stuStudentExams==null || stuStudentExams.size()==0){
StuStudentExamWithBLOBs stuExam = new StuStudentExamWithBLOBs();
stuExam.setStudentExamId(String.valueOf(UUID.randomUUID()));
stuExam.setExamManageId(examManageId);
stuExam.setUserid(userId);
stuExam.setClassId(classId);
stuExam.setStartTime(new Date());
studentExamMapper.insert(stuExam);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//查询userinfo表 修改考试状态
StuUser stuUser = userMapper.selectByPrimaryKey(userId);
if(StringUtils.isBlank(stuUser.getExamStatus())){
stuUser.setExamStatus("true");
userMapper.updateByPrimaryKey(stuUser);
}
}
TeaExamManageWithBLOBs manage = examManageMapper.selectByPrimaryKey(examManageId); TeaExamManageWithBLOBs manage = examManageMapper.selectByPrimaryKey(examManageId);
Date endTime = manage.getEndTime(); Date endTime = manage.getEndTime();
if(endTime.before(new Date())){ if(endTime.before(new Date())){
@ -195,7 +233,7 @@ public class ExamServiceImpl implements IExamService {
SysCaseQuestionStep sysCaseQuestionStep = stepMapper.selectByPrimaryKey(caseStepId); SysCaseQuestionStep sysCaseQuestionStep = stepMapper.selectByPrimaryKey(caseStepId);
if(stuExamCases==null || stuExamCases.size()==0){ if(stuExamCases==null || stuExamCases.size()==0){
StuExamCase stuExamCase = new StuExamCase(); StuExamCase stuExamCase = new StuExamCase();
stuExamCase.setCaseId(String.valueOf(UUID.randomUUID())); stuExamCase.setExamCaseId(String.valueOf(UUID.randomUUID()));
stuExamCase.setExamManageId(commitCaseExamDto.getExamManageId()); stuExamCase.setExamManageId(commitCaseExamDto.getExamManageId());
stuExamCase.setCaseId(commitCaseExamDto.getCaseId()); stuExamCase.setCaseId(commitCaseExamDto.getCaseId());
stuExamCase.setStudentAnswer(commitCaseExamDto.getStuAnswer()); stuExamCase.setStudentAnswer(commitCaseExamDto.getStuAnswer());

@ -52,7 +52,7 @@ public class ExerciseServiceImpl implements IExerciseService {
return dtos; return dtos;
}else { }else {
StuTrainingWithBLOBs bloBs = stuTrainingWithBLOBs.get(0); StuTrainingWithBLOBs bloBs = stuTrainingWithBLOBs.get(0);
if (bloBs.getLearningEvalIdlist().isEmpty()) { if (bloBs==null || bloBs.getLearningEvalIdlist().isEmpty()) {
List<SysObjectiveQuestion> objectiveQuestionList = objectiveService.selectObjectQuestionListByChapterId(chapterId); List<SysObjectiveQuestion> objectiveQuestionList = objectiveService.selectObjectQuestionListByChapterId(chapterId);
for (int i = 0; i < objectiveQuestionList.size(); i++) { for (int i = 0; i < objectiveQuestionList.size(); i++) {
SysObjectiveQuestion objectiveQuestion = objectiveQuestionList.get(i); SysObjectiveQuestion objectiveQuestion = objectiveQuestionList.get(i);

@ -16,6 +16,7 @@
<result column="school_id" jdbcType="VARCHAR" property="schoolId" /> <result column="school_id" jdbcType="VARCHAR" property="schoolId" />
<result column="school_name" jdbcType="VARCHAR" property="schoolName" /> <result column="school_name" jdbcType="VARCHAR" property="schoolName" />
<result column="status" jdbcType="INTEGER" property="status" /> <result column="status" jdbcType="INTEGER" property="status" />
<result column="exam_status" jdbcType="VARCHAR" property="examStatus" />
</resultMap> </resultMap>
<sql id="Example_Where_Clause"> <sql id="Example_Where_Clause">
<where> <where>
@ -35,8 +36,7 @@
</when> </when>
<when test="criterion.listValue"> <when test="criterion.listValue">
and ${criterion.condition} and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
separator=",">
#{listItem} #{listItem}
</foreach> </foreach>
</when> </when>
@ -65,8 +65,7 @@
</when> </when>
<when test="criterion.listValue"> <when test="criterion.listValue">
and ${criterion.condition} and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
separator=",">
#{listItem} #{listItem}
</foreach> </foreach>
</when> </when>
@ -78,12 +77,10 @@
</where> </where>
</sql> </sql>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
userid userid, name, student_id, class_id, username, password, phone, email, major, role_id,
, name, student_id, class_id, username, password, phone, email, major, role_id, create_time, school_id, school_name, status, exam_status
create_time, school_id, school_name, status
</sql> </sql>
<select id="selectByExample" parameterType="com.sztzjy.financial_bigdata.entity.StuUserExample" <select id="selectByExample" parameterType="com.sztzjy.financial_bigdata.entity.StuUserExample" resultMap="BaseResultMap">
resultMap="BaseResultMap">
select select
<if test="distinct"> <if test="distinct">
distinct distinct
@ -104,8 +101,7 @@
where userid = #{userid,jdbcType=VARCHAR} where userid = #{userid,jdbcType=VARCHAR}
</select> </select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String"> <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
delete delete from stu_userinfo
from stu_userinfo
where userid = #{userid,jdbcType=VARCHAR} where userid = #{userid,jdbcType=VARCHAR}
</delete> </delete>
<delete id="deleteByExample" parameterType="com.sztzjy.financial_bigdata.entity.StuUserExample"> <delete id="deleteByExample" parameterType="com.sztzjy.financial_bigdata.entity.StuUserExample">
@ -119,12 +115,14 @@
class_id, username, password, class_id, username, password,
phone, email, major, phone, email, major,
role_id, create_time, school_id, role_id, create_time, school_id,
school_name, status) school_name, status, exam_status
)
values (#{userid,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{studentId,jdbcType=VARCHAR}, values (#{userid,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{studentId,jdbcType=VARCHAR},
#{classId,jdbcType=VARCHAR}, #{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{classId,jdbcType=VARCHAR}, #{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR},
#{phone,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR}, #{major,jdbcType=VARCHAR}, #{phone,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR}, #{major,jdbcType=VARCHAR},
#{roleId,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{schoolId,jdbcType=VARCHAR}, #{roleId,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{schoolId,jdbcType=VARCHAR},
#{schoolName,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}) #{schoolName,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, #{examStatus,jdbcType=VARCHAR}
)
</insert> </insert>
<insert id="insertSelective" parameterType="com.sztzjy.financial_bigdata.entity.StuUser"> <insert id="insertSelective" parameterType="com.sztzjy.financial_bigdata.entity.StuUser">
insert into stu_userinfo insert into stu_userinfo
@ -171,6 +169,9 @@
<if test="status != null"> <if test="status != null">
status, status,
</if> </if>
<if test="examStatus != null">
exam_status,
</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="userid != null"> <if test="userid != null">
@ -215,10 +216,12 @@
<if test="status != null"> <if test="status != null">
#{status,jdbcType=INTEGER}, #{status,jdbcType=INTEGER},
</if> </if>
<if test="examStatus != null">
#{examStatus,jdbcType=VARCHAR},
</if>
</trim> </trim>
</insert> </insert>
<select id="countByExample" parameterType="com.sztzjy.financial_bigdata.entity.StuUserExample" <select id="countByExample" parameterType="com.sztzjy.financial_bigdata.entity.StuUserExample" resultType="java.lang.Long">
resultType="java.lang.Long">
select count(*) from stu_userinfo select count(*) from stu_userinfo
<if test="_parameter != null"> <if test="_parameter != null">
<include refid="Example_Where_Clause" /> <include refid="Example_Where_Clause" />
@ -269,6 +272,9 @@
<if test="record.status != null"> <if test="record.status != null">
status = #{record.status,jdbcType=INTEGER}, status = #{record.status,jdbcType=INTEGER},
</if> </if>
<if test="record.examStatus != null">
exam_status = #{record.examStatus,jdbcType=VARCHAR},
</if>
</set> </set>
<if test="_parameter != null"> <if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" /> <include refid="Update_By_Example_Where_Clause" />
@ -289,7 +295,8 @@
create_time = #{record.createTime,jdbcType=TIMESTAMP}, create_time = #{record.createTime,jdbcType=TIMESTAMP},
school_id = #{record.schoolId,jdbcType=VARCHAR}, school_id = #{record.schoolId,jdbcType=VARCHAR},
school_name = #{record.schoolName,jdbcType=VARCHAR}, school_name = #{record.schoolName,jdbcType=VARCHAR},
status = #{record.status,jdbcType=INTEGER} status = #{record.status,jdbcType=INTEGER},
exam_status = #{record.examStatus,jdbcType=VARCHAR}
<if test="_parameter != null"> <if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" /> <include refid="Update_By_Example_Where_Clause" />
</if> </if>
@ -336,6 +343,9 @@
<if test="status != null"> <if test="status != null">
status = #{status,jdbcType=INTEGER}, status = #{status,jdbcType=INTEGER},
</if> </if>
<if test="examStatus != null">
exam_status = #{examStatus,jdbcType=VARCHAR},
</if>
</set> </set>
where userid = #{userid,jdbcType=VARCHAR} where userid = #{userid,jdbcType=VARCHAR}
</update> </update>
@ -353,10 +363,10 @@
create_time = #{createTime,jdbcType=TIMESTAMP}, create_time = #{createTime,jdbcType=TIMESTAMP},
school_id = #{schoolId,jdbcType=VARCHAR}, school_id = #{schoolId,jdbcType=VARCHAR},
school_name = #{schoolName,jdbcType=VARCHAR}, school_name = #{schoolName,jdbcType=VARCHAR},
status = #{status,jdbcType=INTEGER} status = #{status,jdbcType=INTEGER},
exam_status = #{examStatus,jdbcType=VARCHAR}
where userid = #{userid,jdbcType=VARCHAR} where userid = #{userid,jdbcType=VARCHAR}
</update> </update>
<insert id="batchInsertStudents" parameterType="java.util.List"> <insert id="batchInsertStudents" parameterType="java.util.List">
INSERT INTO stu_userinfo (userid, name, student_id, class_id, username, password, phone, INSERT INTO stu_userinfo (userid, name, student_id, class_id, username, password, phone,
school_name,email,major, school_name,email,major,
@ -409,9 +419,11 @@
WHERE class_id IN (SELECT class_id WHERE class_id IN (SELECT class_id
FROM tea_and_student_exam FROM tea_and_student_exam
WHERE exam_manage_id = #{examManageId} WHERE exam_manage_id = #{examManageId}
<if test='classId != null and classId != ""'> <if test="classId != null and classId != &quot;&quot;">
AND class_id = #{classId} AND class_id = #{classId}
</if> </if>
)GROUP BY class_id ) AS subquery; )GROUP BY class_id ) AS subquery;
</select> </select>
</mapper> </mapper>
Loading…
Cancel
Save