1 | package edu.ucsb.cs156.happiercows.services; | |
2 | ||
3 | import org.springframework.beans.factory.annotation.Autowired; | |
4 | import org.springframework.stereotype.Service; | |
5 | ||
6 | import edu.ucsb.cs156.happiercows.entities.Commons; | |
7 | import edu.ucsb.cs156.happiercows.entities.Report; | |
8 | import edu.ucsb.cs156.happiercows.entities.ReportLine; | |
9 | import edu.ucsb.cs156.happiercows.entities.UserCommons; | |
10 | import edu.ucsb.cs156.happiercows.repositories.CommonsRepository; | |
11 | import edu.ucsb.cs156.happiercows.repositories.ReportLineRepository; | |
12 | import edu.ucsb.cs156.happiercows.repositories.ReportRepository; | |
13 | import edu.ucsb.cs156.happiercows.repositories.UserCommonsRepository; | |
14 | ||
15 | @Service("ReportService") | |
16 | public class ReportService { | |
17 | ||
18 | @Autowired | |
19 | ReportRepository reportRepository; | |
20 | ||
21 | @Autowired | |
22 | ReportLineRepository reportLineRepository; | |
23 | ||
24 | @Autowired | |
25 | CommonsRepository commonsRepository; | |
26 | ||
27 | @Autowired | |
28 | UserCommonsRepository userCommonsRepository; | |
29 | ||
30 | public Report createReport(Long commonsId) { | |
31 | Report report = createAndSaveReportHeader(commonsId); | |
32 | | |
33 | Iterable<UserCommons> allUserCommons = userCommonsRepository.findByCommonsId(commonsId); | |
34 | ||
35 | ||
36 | for (UserCommons userCommons : allUserCommons) { | |
37 | createAndSaveReportLine(report, userCommons); | |
38 | } | |
39 | ||
40 |
1
1. createReport : replaced return value with null for edu/ucsb/cs156/happiercows/services/ReportService::createReport → KILLED |
return report; |
41 | } | |
42 | ||
43 | public Report createAndSaveReportHeader(Long commonsId) { | |
44 | Commons commons = commonsRepository.findById(commonsId) | |
45 |
1
1. lambda$createAndSaveReportHeader$0 : replaced return value with null for edu/ucsb/cs156/happiercows/services/ReportService::lambda$createAndSaveReportHeader$0 → KILLED |
.orElseThrow(() -> new RuntimeException(String.format("Commons with id %d not found", commonsId))); |
46 | ||
47 | Report report = Report.builder() | |
48 | .commonsId(commonsId) | |
49 | ||
50 | .name(commons.getName()) | |
51 | .cowPrice(commons.getCowPrice()) | |
52 | .milkPrice(commons.getMilkPrice()) | |
53 | .startingBalance(commons.getStartingBalance()) | |
54 | .startingDate(commons.getStartingDate()) | |
55 | .showLeaderboard(commons.isShowLeaderboard()) | |
56 | .carryingCapacity(commons.getCarryingCapacity()) | |
57 | .degradationRate(commons.getDegradationRate()) | |
58 | .belowCapacityHealthUpdateStrategy(commons.getBelowCapacityHealthUpdateStrategy()) | |
59 | .aboveCapacityHealthUpdateStrategy(commons.getAboveCapacityHealthUpdateStrategy()) | |
60 | .numUsers(commonsRepository.getNumUsers(commonsId).orElse(0)) | |
61 | .numCows(commonsRepository.getNumCows(commonsId).orElse(0)) | |
62 | ||
63 | .build(); | |
64 | ||
65 | reportRepository.save(report); | |
66 |
1
1. createAndSaveReportHeader : replaced return value with null for edu/ucsb/cs156/happiercows/services/ReportService::createAndSaveReportHeader → KILLED |
return report; |
67 | } | |
68 | ||
69 | public ReportLine createAndSaveReportLine(Report report, UserCommons userCommons) { | |
70 | ReportLine reportLine = ReportLine.builder() | |
71 | .reportId(report.getId()) | |
72 | .userId(userCommons.getUser().getId()) | |
73 | .username(userCommons.getUsername()) | |
74 | .totalWealth(userCommons.getTotalWealth()) | |
75 | .numOfCows(userCommons.getNumOfCows()) | |
76 | .avgCowHealth(userCommons.getCowHealth()) | |
77 | .cowsBought(userCommons.getCowsBought()) | |
78 | .cowsSold(userCommons.getCowsSold()) | |
79 | .cowDeaths(userCommons.getCowDeaths()) | |
80 | .build(); | |
81 | ||
82 | reportLineRepository.save(reportLine); | |
83 |
1
1. createAndSaveReportLine : replaced return value with null for edu/ucsb/cs156/happiercows/services/ReportService::createAndSaveReportLine → KILLED |
return reportLine; |
84 | } | |
85 | ||
86 | } | |
Mutations | ||
40 |
1.1 |
|
45 |
1.1 |
|
66 |
1.1 |
|
83 |
1.1 |