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);
- }
-
- }