AverageCowHealthService.java
package edu.ucsb.cs156.happiercows.services;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import edu.ucsb.cs156.happiercows.entities.UserCommons;
import edu.ucsb.cs156.happiercows.repositories.CommonsRepository;
import edu.ucsb.cs156.happiercows.repositories.UserCommonsRepository;
@Service("AverageCowHealthService")
public class AverageCowHealthService {
@Autowired
CommonsRepository commonsRepository;
@Autowired
UserCommonsRepository userCommonsRepository;
public int getTotalNumCows(Long commonsId) {
commonsRepository.findById(commonsId).orElseThrow(() -> new IllegalArgumentException(String.format("Commons with id %d not found", commonsId)));
Iterable<UserCommons> allUserCommons = userCommonsRepository.findByCommonsId(commonsId);
int totalNumCows = 0;
for (UserCommons userCommons : allUserCommons) {
totalNumCows += userCommons.getNumOfCows();
}
return totalNumCows;
}
public double getAverageCowHealth(Long commonsId) {
commonsRepository.findById(commonsId).orElseThrow(() -> new IllegalArgumentException(String.format("Commons with id %d not found", commonsId)));
Iterable<UserCommons> allUserCommons = userCommonsRepository.findByCommonsId(commonsId);
double totalHealth = 0;
for (UserCommons userCommons : allUserCommons) {
totalHealth += userCommons.getCowHealth() * userCommons.getNumOfCows();
}
return totalHealth / getTotalNumCows(commonsId);
}
}