From d8524dc5ef974bcfacba99128d5e79a268ccdf3f Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期二, 28 十一月 2023 23:39:29 +0800 Subject: [PATCH] 随机案件时间段回显 --- src/main/java/com/mindskip/xzs/controller/admin/ExamTemplatesController.java | 2 - src/main/java/com/mindskip/xzs/controller/student/DashboardController.java | 2 + src/main/resources/mapper/ExamTemplatesMapper.xml | 29 +++++++++++++- src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java | 51 ++++++++++++++++++------- src/main/java/com/mindskip/xzs/viewmodel/student/dashboard/PaperFilter.java | 4 ++ src/main/java/com/mindskip/xzs/domain/vo/ExamTemplatesVO.java | 14 ++++++- src/main/java/com/mindskip/xzs/domain/ExamTemplates.java | 12 +++--- 7 files changed, 87 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/mindskip/xzs/controller/admin/ExamTemplatesController.java b/src/main/java/com/mindskip/xzs/controller/admin/ExamTemplatesController.java index 021b513..843762e 100644 --- a/src/main/java/com/mindskip/xzs/controller/admin/ExamTemplatesController.java +++ b/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(); } diff --git a/src/main/java/com/mindskip/xzs/controller/student/DashboardController.java b/src/main/java/com/mindskip/xzs/controller/student/DashboardController.java index a011aec..3e847cc 100644 --- a/src/main/java/com/mindskip/xzs/controller/student/DashboardController.java +++ b/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()); diff --git a/src/main/java/com/mindskip/xzs/domain/ExamTemplates.java b/src/main/java/com/mindskip/xzs/domain/ExamTemplates.java index 0424a39..ca587ed 100644 --- a/src/main/java/com/mindskip/xzs/domain/ExamTemplates.java +++ b/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; } diff --git a/src/main/java/com/mindskip/xzs/domain/vo/ExamTemplatesVO.java b/src/main/java/com/mindskip/xzs/domain/vo/ExamTemplatesVO.java index e36ffce..fcd6c46 100644 --- a/src/main/java/com/mindskip/xzs/domain/vo/ExamTemplatesVO.java +++ b/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 + '}'; } diff --git a/src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java index 4aa2e16..d1da647 100644 --- a/src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java +++ b/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); diff --git a/src/main/java/com/mindskip/xzs/viewmodel/student/dashboard/PaperFilter.java b/src/main/java/com/mindskip/xzs/viewmodel/student/dashboard/PaperFilter.java index 209a2b0..e3fb3a6 100644 --- a/src/main/java/com/mindskip/xzs/viewmodel/student/dashboard/PaperFilter.java +++ b/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; } diff --git a/src/main/resources/mapper/ExamTemplatesMapper.xml b/src/main/resources/mapper/ExamTemplatesMapper.xml index c6a450a..3e2fda7 100644 --- a/src/main/resources/mapper/ExamTemplatesMapper.xml +++ b/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"> -- Gitblit v1.8.0