package com.gkhy.exam.institutionalaccess.service.serviceImpl; import com.gkhy.exam.institutionalaccess.entity.ThStudyAuth; import com.gkhy.exam.institutionalaccess.entity.ThStudyTrack; import com.gkhy.exam.institutionalaccess.model.query.ThStudyDetailQuery; import com.gkhy.exam.institutionalaccess.model.vo.ThStudyAuthVO; import com.gkhy.exam.institutionalaccess.model.vo.ThStudyDetailVO; import com.gkhy.exam.institutionalaccess.model.vo.ThStudyTrackVO; import com.gkhy.exam.institutionalaccess.service.ThStudyAuthService; import com.gkhy.exam.institutionalaccess.service.ThStudyDetailService; import com.gkhy.exam.institutionalaccess.service.ThStudyRecordManagerService; import com.gkhy.exam.institutionalaccess.service.ThStudyTrackService; import com.gkhy.exam.institutionalaccess.utils.ConvertTimeUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @Service("ThStudyRecordManagerService") public class ThStudyRecordManagerServiceImpl implements ThStudyRecordManagerService { @Autowired private ThStudyDetailService thStudyDetailService; @Autowired private ThStudyTrackService thStudyTrackService; @Autowired private ThStudyAuthService thStudyAuthService; @Override public List listByPage(ThStudyDetailQuery query) { List thStudyDetailVOS = thStudyDetailService.listByPage(query); if(!CollectionUtils.isEmpty(thStudyDetailVOS)){ List detailUuids = thStudyDetailVOS.stream().map(ThStudyDetailVO::getUuid).collect(Collectors.toList()); //获取认证记录 List authList = thStudyAuthService.getListByStudyDetaiIds(detailUuids); //获取轨迹 List trackList = thStudyTrackService.getListByStudyDetaiIds(detailUuids); for(ThStudyDetailVO thStudyDetailVO : thStudyDetailVOS){ thStudyDetailVO.setDurationDesc(ConvertTimeUtils.convertTimeToString(thStudyDetailVO.getDuration())); thStudyDetailVO.setStartPositionDesc(ConvertTimeUtils.convertTimeToString(thStudyDetailVO.getStartPosition())); thStudyDetailVO.setFinishPositionDesc(ConvertTimeUtils.convertTimeToString(thStudyDetailVO.getFinishPosition())); List thStudyAuthVOList = authList.stream().filter(a -> a.getStudyDetailUuid().equals(thStudyDetailVO.getUuid())) .map(a -> { ThStudyAuthVO thStudyAuthVO = new ThStudyAuthVO(); BeanUtils.copyProperties(a, thStudyAuthVO); thStudyAuthVO.setAuthPostionDesc(ConvertTimeUtils.convertTimeToString(a.getAuthPosition())); return thStudyAuthVO; }).collect(Collectors.toList()); List trackVOList = trackList.stream().filter(t -> t.getStudyDetailUuid().equals(thStudyDetailVO.getUuid())) .map(t -> { ThStudyTrackVO thStudyTrackVO = new ThStudyTrackVO(); BeanUtils.copyProperties(t, thStudyTrackVO); thStudyTrackVO.setTimeIntervalDesc(ConvertTimeUtils.convertTimeToString(t.getTimeInterval())); return thStudyTrackVO; }).collect(Collectors.toList()); thStudyDetailVO.setAuthList(thStudyAuthVOList); thStudyDetailVO.setTrackList(trackVOList); } } return thStudyDetailVOS; } }