|
|
@@ -1,13 +1,17 @@
|
|
|
package com.zhongzheng.modules.exam.service.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.lang.func.VoidFunc0;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
+import com.zhongzheng.modules.exam.bo.ExamArrangementTimeAddBo;
|
|
|
+import com.zhongzheng.modules.exam.domain.ExamArrangementTime;
|
|
|
import com.zhongzheng.modules.exam.service.IExamArrangementStudentService;
|
|
|
import com.zhongzheng.modules.exam.service.IExamArrangementTimeService;
|
|
|
import com.zhongzheng.modules.exam.vo.ExamArrangementTimeVo;
|
|
|
import com.zhongzheng.modules.exam.vo.ExamUserVo;
|
|
|
import com.zhongzheng.modules.user.service.IUserService;
|
|
|
import com.zhongzheng.modules.user.vo.UserVo;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
@@ -21,6 +25,7 @@ import com.zhongzheng.modules.exam.domain.ExamArrangement;
|
|
|
import com.zhongzheng.modules.exam.mapper.ExamArrangementMapper;
|
|
|
import com.zhongzheng.modules.exam.vo.ExamArrangementVo;
|
|
|
import com.zhongzheng.modules.exam.service.IExamArrangementService;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Collection;
|
|
|
@@ -50,12 +55,29 @@ public class ExamArrangementServiceImpl extends ServiceImpl<ExamArrangementMappe
|
|
|
public ExamArrangementVo queryById(Long id){
|
|
|
ExamArrangement db = this.baseMapper.selectById(id);
|
|
|
ExamArrangementVo examArrangementVo = BeanUtil.toBean(db, ExamArrangementVo.class);
|
|
|
- List<ExamArrangementTimeVo> examArrangementTimeVos = new ArrayList<>();
|
|
|
- BeanUtil.copyProperties(examArrangementTimeService.queryById(examArrangementVo.getId()),examArrangementTimeVos);
|
|
|
+ //獲得考試時間
|
|
|
+ LambdaQueryWrapper<ExamArrangementTime> lqw = Wrappers.lambdaQuery();
|
|
|
+ lqw.eq(true,ExamArrangementTime::getArrangementId,db.getId());
|
|
|
+ List<ExamArrangementTime> list = examArrangementTimeService.list(lqw);
|
|
|
+ List<ExamArrangementTimeVo> examArrangementTimeVos = entity2TimeVo(list);
|
|
|
examArrangementVo.setExamArrangementTimeVo(examArrangementTimeVos);
|
|
|
+
|
|
|
return examArrangementVo;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 实体类转化成视图对象
|
|
|
+ *
|
|
|
+ * @param collection 实体类集合
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private List<ExamArrangementTimeVo> entity2TimeVo(Collection<ExamArrangementTime> collection) {
|
|
|
+ List<ExamArrangementTimeVo> voList = collection.stream()
|
|
|
+ .map(any -> BeanUtil.toBean(any, ExamArrangementTimeVo.class))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ return voList;
|
|
|
+ }
|
|
|
@Override
|
|
|
public List<ExamArrangementVo> queryList(ExamArrangementQueryBo bo) {
|
|
|
LambdaQueryWrapper<ExamArrangement> lqw = Wrappers.lambdaQuery();
|
|
|
@@ -74,21 +96,24 @@ public class ExamArrangementServiceImpl extends ServiceImpl<ExamArrangementMappe
|
|
|
lqw.eq(StrUtil.isNotBlank(bo.getRegGuide()), ExamArrangement::getRegGuide, bo.getRegGuide());
|
|
|
lqw.eq(StrUtil.isNotBlank(bo.getExamPeriod()), ExamArrangement::getExamPeriod, bo.getExamPeriod());
|
|
|
lqw.eq(bo.getStatus() != null, ExamArrangement::getStatus, bo.getStatus());
|
|
|
+ lqw.eq(bo.getStatus() == null, ExamArrangement::getStatus, 0);
|
|
|
lqw.eq(bo.getExamForm() != null, ExamArrangement::getExamForm, bo.getExamForm());
|
|
|
lqw.eq(StrUtil.isNotBlank(bo.getExamFromUrl()), ExamArrangement::getExamFromUrl, bo.getExamFromUrl());
|
|
|
lqw.eq(StrUtil.isNotBlank(bo.getPrintUrl()), ExamArrangement::getPrintUrl, bo.getPrintUrl());
|
|
|
lqw.eq(StrUtil.isNotBlank(bo.getGradesUrl()), ExamArrangement::getGradesUrl, bo.getGradesUrl());
|
|
|
lqw.eq(StrUtil.isNotBlank(bo.getScoreLineUrl()), ExamArrangement::getScoreLineUrl, bo.getScoreLineUrl());
|
|
|
lqw.eq(StrUtil.isNotBlank(bo.getCertificate()), ExamArrangement::getCertificate, bo.getCertificate());
|
|
|
- List<ExamArrangementVo> list = new ArrayList<>();
|
|
|
- BeanUtil.copyProperties(this.list(lqw),list);
|
|
|
- list.stream().forEach(e -> {
|
|
|
- List<ExamArrangementTimeVo> examArrangementTimeVos = new ArrayList<>();
|
|
|
- BeanUtil.copyProperties(examArrangementTimeService.queryById(e.getId()),examArrangementTimeVos);
|
|
|
- e.setExamArrangementTimeVo(examArrangementTimeVos);
|
|
|
+ List<ExamArrangementVo> examArrangementVos = entity2Vo(this.list(lqw));
|
|
|
+ //獲得考試時間
|
|
|
+ examArrangementVos.stream().forEach(e -> {
|
|
|
+ LambdaQueryWrapper<ExamArrangementTime> lqwTime = Wrappers.lambdaQuery();
|
|
|
+ lqwTime.eq(true,ExamArrangementTime::getArrangementId,e.getId());
|
|
|
+ List<ExamArrangementTime> list = examArrangementTimeService.list(lqwTime);
|
|
|
+ List<ExamArrangementTimeVo> examArrangementTimeVos = entity2TimeVo(list);
|
|
|
+ e.setExamArrangementTimeVo(examArrangementTimeVos);
|
|
|
}
|
|
|
);
|
|
|
- return entity2Vo(list);
|
|
|
+ return examArrangementVos;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -97,12 +122,12 @@ public class ExamArrangementServiceImpl extends ServiceImpl<ExamArrangementMappe
|
|
|
* @param collection 实体类集合
|
|
|
* @return
|
|
|
*/
|
|
|
- private List<ExamArrangementVo> entity2Vo(Collection<ExamArrangementVo> collection) {
|
|
|
+ private List<ExamArrangementVo> entity2Vo(Collection<ExamArrangement> collection) {
|
|
|
List<ExamArrangementVo> voList = collection.stream()
|
|
|
.map(any -> BeanUtil.toBean(any, ExamArrangementVo.class))
|
|
|
.collect(Collectors.toList());
|
|
|
if (collection instanceof Page) {
|
|
|
- Page<ExamArrangementVo> page = (Page<ExamArrangementVo>)collection;
|
|
|
+ Page<ExamArrangement> page = (Page<ExamArrangement>)collection;
|
|
|
Page<ExamArrangementVo> pageVo = new Page<>();
|
|
|
BeanUtil.copyProperties(page,pageVo);
|
|
|
pageVo.addAll(voList);
|
|
|
@@ -115,13 +140,42 @@ public class ExamArrangementServiceImpl extends ServiceImpl<ExamArrangementMappe
|
|
|
public Boolean insertByAddBo(ExamArrangementAddBo bo) {
|
|
|
ExamArrangement add = BeanUtil.toBean(bo, ExamArrangement.class);
|
|
|
validEntityBeforeSave(add);
|
|
|
+ examArrangementTimeService.saveBatch(entity2Time(bo.getExamArrangementTimeAddBo()));
|
|
|
return this.save(add);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 实体类转化成视图对象
|
|
|
+ *
|
|
|
+ * @param collection 实体类集合
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private List<ExamArrangementTime> entity2Time(Collection<ExamArrangementTimeAddBo> collection) {
|
|
|
+ List<ExamArrangementTime> voList = collection.stream()
|
|
|
+ .map(any -> BeanUtil.toBean(any, ExamArrangementTime.class))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ return voList;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public Boolean updateByEditBo(ExamArrangementEditBo bo) {
|
|
|
ExamArrangement update = BeanUtil.toBean(bo, ExamArrangement.class);
|
|
|
validEntityBeforeSave(update);
|
|
|
+ if (!CollectionUtils.isEmpty(bo.getExamArrangementTimeEditBoList())) {
|
|
|
+ bo.getExamArrangementTimeEditBoList().stream().forEach(e -> {
|
|
|
+ if (e.getStatus() != null && e.getStatus() == 0){
|
|
|
+ LambdaQueryWrapper<ExamArrangementTime> lqw = Wrappers.lambdaQuery();
|
|
|
+ lqw.eq(e.getArrangementId()!= null,ExamArrangementTime::getArrangementId,e.getArrangementId());
|
|
|
+ lqw.eq(e.getEndTime() != null,ExamArrangementTime::getEndTime,e.getEndTime());
|
|
|
+ lqw.eq(e.getStartTime() != null,ExamArrangementTime::getStartTime,e.getStartTime());
|
|
|
+ examArrangementTimeService.remove(lqw);
|
|
|
+ }else {
|
|
|
+ ExamArrangementTime examArrangementTime = BeanUtil.toBean(e, ExamArrangementTime.class);
|
|
|
+ examArrangementTime.setArrangementId(bo.getId());
|
|
|
+ examArrangementTimeService.insertExamArrangementTime(examArrangementTime);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
return this.updateById(update);
|
|
|
}
|
|
|
|
|
|
@@ -136,16 +190,15 @@ public class ExamArrangementServiceImpl extends ServiceImpl<ExamArrangementMappe
|
|
|
|
|
|
@Override
|
|
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
|
|
- if(isValid){
|
|
|
- //TODO 做一些业务上的校验,判断是否需要校验
|
|
|
- }
|
|
|
- return this.removeByIds(ids);
|
|
|
+ List<ExamArrangement> examArrangementList = new ArrayList<>();
|
|
|
+ ids.stream().forEach(id -> examArrangementList.add(new ExamArrangement().setId(id).setStatus(0)));
|
|
|
+ return this.updateBatchById(examArrangementList);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public List<ExamUserVo> queryUserList(ExamArrangementQueryBo bo) {
|
|
|
|
|
|
List<ExamUserVo> examUserVos = examArrangementStudentService.queryUserList(bo);
|
|
|
- return null;
|
|
|
+ return examUserVos;
|
|
|
}
|
|
|
}
|