Person tab working
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
package com.mattrixwv.raidbuilder.service;
|
||||
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.mattrixwv.raidbuilder.entity.Person;
|
||||
import com.mattrixwv.raidbuilder.repository.person.PersonRepository;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
|
||||
@Service
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@RequiredArgsConstructor
|
||||
public class PersonService{
|
||||
private final PersonRepository personRepository;
|
||||
//Related services
|
||||
private final PersonCharacterService personCharacterService;
|
||||
|
||||
|
||||
//Write
|
||||
public Person createPerson(Person person){
|
||||
return personRepository.save(person);
|
||||
}
|
||||
|
||||
public Person updatePerson(Person person){
|
||||
return personRepository.save(person);
|
||||
}
|
||||
|
||||
public void deletePerson(UUID personId){
|
||||
personCharacterService.deletePersonCharactersByPersonId(personId);
|
||||
|
||||
personRepository.deleteById(personId);
|
||||
}
|
||||
|
||||
public void deleteByRaidGroupId(UUID raidGroupId){
|
||||
List<UUID> personIds = personRepository.findAllByRaidGroupId(raidGroupId).stream().map(Person::getPersonId).toList();
|
||||
personCharacterService.deletePersonCharactersByPersonIds(personIds);
|
||||
|
||||
personRepository.deleteAllByRaidGroupId(raidGroupId);
|
||||
}
|
||||
|
||||
public void deleteByRaidGroupIds(Iterable<UUID> raidGroupIds){
|
||||
List<UUID> personIds = personRepository.findAllByRaidGroupIdIn(raidGroupIds).stream().map(Person::getPersonId).toList();
|
||||
personCharacterService.deletePersonCharactersByPersonIds(personIds);
|
||||
|
||||
personRepository.deleteAllByRaidGroupIdIn(raidGroupIds);
|
||||
}
|
||||
|
||||
|
||||
//Read
|
||||
public Person getPerson(UUID personId, UUID raidGroupId){
|
||||
Person person = personRepository.findById(personId).orElse(null);
|
||||
if(person != null && person.getRaidGroupId().equals(raidGroupId)){
|
||||
return person;
|
||||
}
|
||||
else{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public List<Person> getPeopleByRaidGroup(UUID raidGroupId, int page, int pageSize){
|
||||
return personRepository.findAllByRaidGroupId(raidGroupId, PageRequest.of(page, pageSize, Sort.by("personName").ascending()));
|
||||
}
|
||||
|
||||
public List<Person> getPeopleByRaidGroup(UUID raidGroupId, int page, int pageSize, String searchTerm){
|
||||
return personRepository.findAllByRaidGroupIdAndPersonNameContainingIgnoreCase(
|
||||
raidGroupId,
|
||||
searchTerm,
|
||||
PageRequest.of(page, pageSize, Sort.by("personName").ascending())
|
||||
);
|
||||
}
|
||||
|
||||
public long getPeopleCountByRaidGroup(UUID raidGroupId){
|
||||
return personRepository.countByRaidGroupId(raidGroupId);
|
||||
}
|
||||
|
||||
public long getPeopleCountByRaidGroup(UUID raidGroupId, String searchTerm){
|
||||
return personRepository.countByRaidGroupIdAndPersonNameContainingIgnoreCase(raidGroupId, searchTerm);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user