123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- package edu.nju.service;
- import edu.nju.dao.BugDao;
- import edu.nju.dao.BugScoreDao;
- import edu.nju.dao.ReportDao;
- import edu.nju.entities.Bug;
- import edu.nju.entities.BugScore;
- import edu.nju.entities.Report;
- import edu.nju.model.ExportBugDTO;
- import edu.nju.model.ExportReportDTO;
- import org.json.JSONObject;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Comparator;
- import java.util.List;
- import edu.nju.util.HTTP;
- @Service
- public class ExportService {
- @Autowired
- ReportDao reportDao;
- @Autowired
- BugDao bugDao;
- @Autowired
- BugScoreDao bugScoreDao;
- public List<ExportReportDTO> getExportReport(String case_take_id){
- List<Report> reportList=reportDao.findByCaseTakeId(case_take_id);
- List<ExportReportDTO> exportReportDTOList=new ArrayList<>();
- for(Report report:reportList){
- String workerId=report.getWorker_id();
- String result = HTTP.sendGet("http://114.55.91.83:8191/api/user/" + workerId, "");
- String name="";
- if(result != null && !result.equals("")) {
- JSONObject json = new JSONObject(result);
- if(json.has("name")&&!json.isNull("name")) {
- name = json.getString("name");
- }
- }
- ExportReportDTO exportReportDTO=new ExportReportDTO();
- exportReportDTO.setWorkerId(workerId);
- exportReportDTO.setWorkerName(name);
- String reportId=report.getId();
- List<Bug> bugList=bugDao.findByReport(reportId,case_take_id);
- exportReportDTO.setBugCount(String.valueOf(bugList.size()));
- List<ExportBugDTO> exportBugDTOList=new ArrayList<>();
- //获取bug信息
- int totalScore=0;
- List<ExportBugDTO> bugDTOList=new ArrayList<>();
- for(Bug bug: bugList){
- ExportBugDTO exportBugDTO=new ExportBugDTO();
- BugScore bugScore=bugScoreDao.findById(bug.getId());
- exportBugDTO.setTitle(bug.getTitle());
- exportBugDTO.setDescription(bug.getDescription());
- if(bugScore!=null) {
- exportBugDTO.setScore(String.valueOf(bugScore.getGrade()));
- totalScore += bugScore.getGrade();
- }else{
- exportBugDTO.setScore("0");
- }
- String page=bug.getBug_page();
- String[] pages=page.split("-");
- exportBugDTO.setPage1("");
- exportBugDTO.setPage2("");
- exportBugDTO.setPage3("");
- if(pages.length>0) {
- exportBugDTO.setPage1(pages[0]);
- }
- if(pages.length>1) {
- exportBugDTO.setPage2(pages[1]);
- }
- if(pages.length>2) {
- exportBugDTO.setPage3(pages[2]);
- }
- String imgUrl=bug.getImg_url();
- String[] imgUrlList=imgUrl.split(",");
- exportBugDTO.setImgUrlList(Arrays.asList(imgUrlList));
- exportBugDTOList.add(exportBugDTO);
- }
- exportReportDTO.setExportBugDTOList(exportBugDTOList);
- exportReportDTO.setTotalScore(String.valueOf(totalScore));
- exportReportDTOList.add(exportReportDTO);
- }
- totalScoreSort(exportReportDTOList);
- return exportReportDTOList;
- }
- public void totalScoreSort(List<ExportReportDTO> list ){
- list.sort(new Comparator<ExportReportDTO>() {
- public int compare(ExportReportDTO report1, ExportReportDTO report2) {
- return (Integer.parseInt(report2.getTotalScore()) - Integer.parseInt(report1.getTotalScore()));
- }
- });
- }
- }
|