src/main/java/com/mindskip/xzs/controller/admin/ExamTemplatesController.java
@@ -20,7 +20,6 @@ @RestController("AdminExamTemplatesController") @RequestMapping(value = "/api/admin/exam/templates") @Slf4j public class ExamTemplatesController extends BaseApiController { private final ExamTemplatesService examTemplatesService; @@ -33,7 +32,6 @@ @RequestMapping(value = "/edit", method = RequestMethod.POST) public RestResponse edit(@RequestBody @Valid ExamPaperEditRequestVM model) { log.info("--------->参数{}",model); examTemplatesService.add(model); return RestResponse.ok(); } src/main/java/com/mindskip/xzs/controller/student/DashboardController.java
@@ -22,6 +22,7 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -109,6 +110,7 @@ ExamTemplatesVO vo = new ExamTemplatesVO(); vo.setStatus("0"); vo.setUserId(user.getId()); vo.setNow(LocalDateTime.now()); List<ExamTemplates> gets = templatesMapper.gets(vo); ExamTemplatesUserCountVO templatesUserCountVO = new ExamTemplatesUserCountVO(); templatesUserCountVO.setUserId(user.getId()); src/main/java/com/mindskip/xzs/domain/ExamTemplates.java
@@ -16,22 +16,22 @@ private String status; private String menuIds; private List<String> limitDateTime; private LocalDateTime startTime; private LocalDateTime endTime; private Date startTime; private Date endTime; public LocalDateTime getStartTime() { public Date getStartTime() { return startTime; } public void setStartTime(LocalDateTime startTime) { public void setStartTime(Date startTime) { this.startTime = startTime; } public LocalDateTime getEndTime() { public Date getEndTime() { return endTime; } public void setEndTime(LocalDateTime endTime) { public void setEndTime(Date endTime) { this.endTime = endTime; } src/main/java/com/mindskip/xzs/domain/vo/ExamTemplatesVO.java
@@ -5,6 +5,7 @@ import com.mindskip.xzs.domain.ExamTemplatesSubject; import java.io.Serializable; import java.time.LocalDateTime; import java.util.Arrays; import java.util.Date; import java.util.List; @@ -14,10 +15,18 @@ private Integer id; private String name; private Date ctime; private LocalDateTime now; private Integer[] subjectId; private String status; private Integer userId; public LocalDateTime getNow() { return now; } public void setNow(LocalDateTime now) { this.now = now; } public Integer getId() { return id; @@ -73,8 +82,9 @@ "id=" + id + ", name='" + name + '\'' + ", ctime=" + ctime + ", now=" + now + ", subjectId=" + Arrays.toString(subjectId) + ", status=" + status + ", status='" + status + '\'' + ", userId=" + userId + '}'; } src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java
@@ -17,7 +17,10 @@ import org.springframework.format.annotation.DateTimeFormat; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; @@ -57,17 +60,23 @@ } ExamTemplates examTemplates = ExamTemplatesClassConvert.INSTANCE.ExamPaperEditRequestVMToExamTemplates(model); DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime startTime = LocalDateTime.parse(model.getLimitDateTime().get(0),dateTimeFormatter); LocalDateTime endTime = LocalDateTime.parse(model.getLimitDateTime().get(1),dateTimeFormatter); if (!CollectionUtils.isEmpty(model.getLimitDateTime())) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date startTime = null; Date endTime = null; try { startTime = dateFormat.parse(model.getLimitDateTime().get(0)); endTime = dateFormat.parse(model.getLimitDateTime().get(1)); } catch (Exception e) { log.info(e.getMessage()); } examTemplates.setStartTime(startTime); examTemplates.setEndTime(endTime); } examTemplates.setCtime(new Date()); examTemplates.setTitleName(model.getTitleItems().get(0).getName()); examTemplates.setStatus(model.getStatus()); examTemplates.setMenuIds(model.getMenuIds()); examTemplates.setStartTime(startTime); examTemplates.setEndTime(endTime); examTemplatesMapper.add(examTemplates); List<ExamTemplatesQuestion> examTemplatesQuestions = ExamTemplatesClassConvert.INSTANCE.QuestionTypeVMListToExamTemplatesQuestionList(model.getQuestionTypeVMS()) @@ -85,11 +94,11 @@ subjects.add(examTemplatesSubject); } examTemplatesSubjectMapper.saves(subjects); if("0".equals(model.getStatus())){ if ("0".equals(model.getStatus())) { Object[] obj = Arrays.stream(model.getUserIds()).sorted().distinct().toArray(); Integer[] userIds = new Integer[obj.length]; for(int i = 0;i<obj.length;i++) { userIds[i] = (Integer)obj[i]; for (int i = 0; i < obj.length; i++) { userIds[i] = (Integer) obj[i]; } for (Integer userId : userIds) { ExamTemplatesUser templatesUser = new ExamTemplatesUser(); @@ -164,14 +173,27 @@ removes(id); } public ExamPaperEditRequestVM restore(Integer id){ if(id == null){ public ExamPaperEditRequestVM restore(Integer id) { if (id == null) { ExamTemplates examTemplates = examTemplatesMapper.getTime(); id = examTemplates.getId(); } ExamTemplates examTemplates = examTemplatesMapper.getById(id); ExamPaperEditRequestVM vm = ExamTemplatesClassConvert.INSTANCE.ExamTemplatesToExamPaperEditRequestVM(examTemplates); vm.setMenuIds(examTemplates.getMenuIds()); List<String> limitDateTime = new ArrayList<>(); Date startTime = examTemplates.getStartTime(); Date endTime = examTemplates.getEndTime(); if (startTime != null && endTime != null) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String start = dateFormat.format(startTime); String end = dateFormat.format(endTime); limitDateTime.add(start); limitDateTime.add(end); vm.setLimitDateTime(limitDateTime); } Integer[] ids = examTemplatesSubjectMapper.getTemplatesId(id) .stream().map(ExamTemplatesSubject::getSubjectId).toArray(Integer[]::new); vm.setSubjectId(ids); @@ -184,7 +206,7 @@ list.add(examPaperTitleItemVM); vm.setTitleItems(list); vm.setAggregateSource(100); if("0".equals(examTemplates.getStatus())){ if ("0".equals(examTemplates.getStatus())) { List<ExamTemplatesUser> byId = examTemplatesUserMapper.getById(id); List<String> collect = byId.stream().map(ExamTemplatesUser::getUserId).collect(Collectors.toList()); Integer[] userIds = new Integer[collect.size()]; @@ -195,7 +217,8 @@ } return vm; } public void removes(Integer id){ public void removes(Integer id) { examTemplatesMapper.removeById(id); examTemplatesQuestionMapper.removeByTemplatesId(id); examTemplatesSubjectMapper.removeByTemplatesId(id); src/main/java/com/mindskip/xzs/viewmodel/student/dashboard/PaperFilter.java
@@ -1,6 +1,9 @@ package com.mindskip.xzs.viewmodel.student.dashboard; import org.joda.time.DateTime; import java.time.LocalDateTime; import java.util.Date; public class PaperFilter { @@ -11,6 +14,7 @@ private Integer subjectId; public Integer getUserId() { return userId; } src/main/resources/mapper/ExamTemplatesMapper.xml
@@ -10,16 +10,18 @@ <result column="ctime" jdbcType="TIMESTAMP" property="ctime"/> <result column="status" jdbcType="VARCHAR" property="status"/> <result column="menu_ids" jdbcType="VARCHAR" property="menuIds"/> <result column="start_time" jdbcType="TIMESTAMP" property="startTime"/> <result column="end_time" jdbcType="TIMESTAMP" property="endTime"/> </resultMap> <sql id="Base_Column_List"> id , name, paper_type, suggest_time, title_name, ctime, status, menu_ids , name, paper_type, suggest_time, title_name, ctime, status, menu_ids,start_time,end_time </sql> <insert id="add" parameterType="com.mindskip.xzs.domain.ExamTemplates" useGeneratedKeys="true" keyProperty="id"> insert into t_exam_templates (name, paper_type, suggest_time, title_name, ctime, status, menu_ids) values (#{name}, #{paperType}, #{suggestTime}, #{titleName}, #{ctime}, #{status}, #{menuIds}) insert into t_exam_templates (name, paper_type, suggest_time, title_name, ctime, status, menu_ids,start_time,end_time) values (#{name}, #{paperType}, #{suggestTime}, #{titleName}, #{ctime}, #{status}, #{menuIds},#{startTime},#{endTime}) </insert> <select id="getTime" resultMap="BaseResultMap"> @@ -36,6 +38,7 @@ from t_exam_templates e inner join t_exam_templates_user u on e.id = u.templates_id <where> paper_type != 7 <if test="status != null"> and e.status = 0 </if> @@ -46,6 +49,26 @@ and u.user_id = #{userId} </if> </where> union all select e.* from t_exam_templates e inner join t_exam_templates_user u on e.id = u.templates_id <where> paper_type = 7 <if test="status != null"> and e.status = 0 </if> <if test="status == null"> and e.status is null </if> <if test="userId != null"> and u.user_id = #{userId} </if> <if test="now !=null"> and #{now} between e.start_time and e.end_time </if> </where> </select> <select id="getById" resultMap="BaseResultMap">