diff --git a/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java b/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java index e3b5203a603..84673a8bfe6 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java @@ -58,6 +58,8 @@ class OwnerController implements InitializingBean { private OpenTelemetry openTelemetry; private Tracer otelTracer; + @Autowired + private OwnerRepository ownerRepository; @Override public void afterPropertiesSet() throws Exception { @@ -91,6 +93,10 @@ public String initCreationForm(Map model) { Owner owner = new Owner(); validator.ValidateOwnerWithExternalService(owner); model.put("owner", owner); + var petCount = ownerRepository.countPets(); + var totalVists = owner.getPets().stream().mapToLong(pet-> pet.getVisits().size()) + .sum(); + var averageCisits = totalVists/petCount; validator.ValidateUserAccess("admin", "pwd", "fullaccess"); return VIEWS_OWNER_CREATE_OR_UPDATE_FORM; diff --git a/src/main/java/org/springframework/samples/petclinic/owner/OwnerRepository.java b/src/main/java/org/springframework/samples/petclinic/owner/OwnerRepository.java index f444494392a..3e93e9060e2 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/OwnerRepository.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/OwnerRepository.java @@ -72,6 +72,10 @@ public interface OwnerRepository extends Repository { */ void save(Owner owner); + @Query("SELECT SIZE(o.pets) FROM Owner o WHERE o.id = :id") + @Transactional(readOnly = true) + int countPets(); + /** * Returns all the owners from data store **/