|
@@ -1,12 +1,101 @@
|
|
package com.qmth.exam.reserve.service.impl;
|
|
package com.qmth.exam.reserve.service.impl;
|
|
|
|
|
|
|
|
+import com.aliyuncs.utils.StringUtils;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
+import com.qmth.exam.reserve.bean.timeperiod.TimePeriodExamSiteBean;
|
|
|
|
+import com.qmth.exam.reserve.bean.timeperiod.TimePeriodExamSiteInfo;
|
|
|
|
+import com.qmth.exam.reserve.bean.timeperiod.TimePeriodExamSiteVo;
|
|
import com.qmth.exam.reserve.dao.TimePeriodExamSiteDao;
|
|
import com.qmth.exam.reserve.dao.TimePeriodExamSiteDao;
|
|
|
|
+import com.qmth.exam.reserve.entity.ApplyTaskEntity;
|
|
import com.qmth.exam.reserve.entity.TimePeriodExamSiteEntity;
|
|
import com.qmth.exam.reserve.entity.TimePeriodExamSiteEntity;
|
|
|
|
+import com.qmth.exam.reserve.service.ApplyTaskService;
|
|
import com.qmth.exam.reserve.service.TimePeriodExamSiteService;
|
|
import com.qmth.exam.reserve.service.TimePeriodExamSiteService;
|
|
|
|
+import com.qmth.exam.reserve.service.TimePeriodService;
|
|
|
|
+import com.qmth.exam.reserve.util.DateUtil;
|
|
|
|
+import org.apache.commons.collections4.CollectionUtils;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.Collections;
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
+
|
|
@Service
|
|
@Service
|
|
public class TimePeriodExamSiteServiceImpl extends ServiceImpl<TimePeriodExamSiteDao, TimePeriodExamSiteEntity> implements TimePeriodExamSiteService {
|
|
public class TimePeriodExamSiteServiceImpl extends ServiceImpl<TimePeriodExamSiteDao, TimePeriodExamSiteEntity> implements TimePeriodExamSiteService {
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private ApplyTaskService applyTaskService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private TimePeriodService timePeriodService;
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public List<String> listTimePeriod(Long taskId) {
|
|
|
|
+ taskId = getTaskId(taskId);
|
|
|
|
+ return timePeriodService.listTimePeriod(taskId);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private Long getTaskId(Long taskId) {
|
|
|
|
+ if (taskId == null) {
|
|
|
|
+ ApplyTaskEntity task = applyTaskService.findApplyTask();
|
|
|
|
+ if (task != null) {
|
|
|
|
+ taskId = task.getId();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return taskId;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public List<TimePeriodExamSiteVo> ListDetail(Long taskId, Long examSiteId) {
|
|
|
|
+ taskId = getTaskId(taskId);
|
|
|
|
+ // 所有的预约日期
|
|
|
|
+ List<String> dateList = timePeriodService.listTimePeriodDate(taskId);
|
|
|
|
+ if (CollectionUtils.isEmpty(dateList)) {
|
|
|
|
+ return Collections.emptyList();
|
|
|
|
+ }
|
|
|
|
+ //所有的时段
|
|
|
|
+ List<TimePeriodExamSiteBean> timePeriodList = timePeriodService.listTimePeriodByExamSiteId(taskId, examSiteId);
|
|
|
|
+ if (CollectionUtils.isEmpty(timePeriodList)) {
|
|
|
|
+ timePeriodList = timePeriodService.listTimePeriodByTask(taskId);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //按日期封装
|
|
|
|
+ List<TimePeriodExamSiteVo> list = new ArrayList<>();
|
|
|
|
+ for (String date : dateList) {
|
|
|
|
+ TimePeriodExamSiteVo timePeriodVo = new TimePeriodExamSiteVo();
|
|
|
|
+ timePeriodVo.setDateStr(getDateStr(date));
|
|
|
|
+ timePeriodVo.setTimePeriodList(filterTimePeriod(date, timePeriodList));
|
|
|
|
+ list.add(timePeriodVo);
|
|
|
|
+ }
|
|
|
|
+ return list;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private String getDateStr(String date) {
|
|
|
|
+ if (StringUtils.isEmpty(date)) {
|
|
|
|
+ return "";
|
|
|
|
+ }
|
|
|
|
+ String[] dateArr = date.split("-");
|
|
|
|
+ if (dateArr.length != 3) {
|
|
|
|
+ return "";
|
|
|
|
+ }
|
|
|
|
+ return dateArr[1] + "月" + dateArr[2] + "日";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private List<TimePeriodExamSiteInfo> filterTimePeriod(String date, List<TimePeriodExamSiteBean> timePeriodList) {
|
|
|
|
+ List<TimePeriodExamSiteInfo> list = new ArrayList<>();
|
|
|
|
+ List<TimePeriodExamSiteBean> filterTimePerildList = timePeriodList.stream()
|
|
|
|
+ .filter(item -> DateUtil.getShortDateByLongTime(item.getStartTime()).equals(date))
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+ for (TimePeriodExamSiteBean time : filterTimePerildList) {
|
|
|
|
+ TimePeriodExamSiteInfo bean = new TimePeriodExamSiteInfo();
|
|
|
|
+ bean.setId(time.getId());
|
|
|
|
+ bean.setEnable(time.getEnable());
|
|
|
|
+ bean.setTimePeriodStr(DateUtil.getStartToEndTime(time.getStartTime(), time.getEndTime()));
|
|
|
|
+ list.add(bean);
|
|
|
|
+ }
|
|
|
|
+ return list;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
}
|
|
}
|