package com.mooctest.service; import com.mooctest.dao.FinalReportDao; import com.mooctest.data.FinalReportDTO; import com.mooctest.model.FinalReport; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.sql.Timestamp; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @Service public class FinalReportService { @Autowired FinalReportDao finalReportDao; public FinalReportDTO save(FinalReportDTO dto) { FinalReport finalReport = new FinalReport(); BeanUtils.copyProperties(dto, finalReport); finalReport.setImgUrls(String.join(",", dto.getImgUrls())); finalReport.setCreateTime(new Date()); finalReport = finalReportDao.save(finalReport); BeanUtils.copyProperties(finalReport, dto); return dto; } public FinalReportDTO update(long reportId, FinalReportDTO dto) { FinalReport report = finalReportDao.findOne(reportId); dto.setCreateTime(report.getCreateTime()); BeanUtils.copyProperties(dto, report); report.setImgUrls(String.join(",", dto.getImgUrls())); finalReportDao.save(report); return dto; } public List getByExamIdAndCaseId(long examId, long caseId) { List frs = finalReportDao.findByExamIdAndCaseId(examId, caseId); return wrap(frs); } public List getBySourceId(String sourceId) { List frs = finalReportDao.findBySourceId(sourceId); return wrap(frs); } private List wrap(List frs) { return frs.stream().map(finalReport -> { FinalReportDTO dto = new FinalReportDTO(); BeanUtils.copyProperties(finalReport, dto); dto.setImgUrls(finalReport.getImgUrls().split(",")); return dto; }).collect(Collectors.toList()); } public void delete(long reportId) { finalReportDao.delete(reportId); } }