72 lines
1.9 KiB
Java
Executable File
72 lines
1.9 KiB
Java
Executable File
package com.plannaplan.services;
|
|
|
|
import java.util.List;
|
|
import java.util.Optional;
|
|
|
|
import com.plannaplan.entities.Commision;
|
|
import com.plannaplan.entities.User;
|
|
import com.plannaplan.repositories.AssignmentRepository;
|
|
import com.plannaplan.repositories.CommisionRepository;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
/**
|
|
* Service of CommisionService which can save commision, get user's commisions, get newest user's commision, get ammount of commisions.
|
|
*/
|
|
|
|
@Service
|
|
public class CommisionService {
|
|
@Autowired
|
|
private CommisionRepository repo;
|
|
@Autowired
|
|
private AssignmentRepository aRepository;
|
|
|
|
public CommisionService() {
|
|
}
|
|
|
|
/*
|
|
* save
|
|
*
|
|
* @param commision which assignment should be save in service
|
|
* @return commision
|
|
*/
|
|
public Commision save(Commision commision) {
|
|
Optional<Commision> lastCommision = this.getNewestCommision(commision.getCommisionOwner());
|
|
if (lastCommision.isPresent()) {
|
|
final Commision lastCom = lastCommision.get();
|
|
lastCom.getAssignments().forEach(assignment -> {
|
|
assignment.setPastAssignment(true);
|
|
this.aRepository.save(assignment);
|
|
});
|
|
}
|
|
this.repo.save(commision);
|
|
return commision;
|
|
|
|
}
|
|
|
|
/*
|
|
* getUsersCommisions
|
|
* Return given users id
|
|
*/
|
|
public List<Commision> getUsersCommisions(User user) {
|
|
return this.repo.getUsers(user.getId());
|
|
}
|
|
|
|
/*
|
|
* getNewestCommision
|
|
* Return the newest commision of the user
|
|
*/
|
|
public Optional<Commision> getNewestCommision(User user) {
|
|
return this.repo.getNewestCommision(user.getId()).stream().findFirst();
|
|
}
|
|
|
|
/*
|
|
* getCommisionsAmmount
|
|
* Return ammount of commisions
|
|
*/
|
|
public long getCommisionsAmmount() {
|
|
return this.repo.count();
|
|
}
|
|
}
|