69 lines
2.2 KiB
Java
69 lines
2.2 KiB
Java
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.PersonCharacter;
|
|
import com.mattrixwv.raidbuilder.repository.person_character.PersonCharacterRepository;
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
|
@Service
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@RequiredArgsConstructor
|
|
public class PersonCharacterService{
|
|
private final PersonCharacterRepository personCharacterRepository;
|
|
|
|
|
|
//Write
|
|
public PersonCharacter createPersonCharacter(PersonCharacter personCharacter){
|
|
return personCharacterRepository.save(personCharacter);
|
|
}
|
|
|
|
public PersonCharacter updatePersonCharacter(PersonCharacter personCharacter){
|
|
return personCharacterRepository.save(personCharacter);
|
|
}
|
|
|
|
public void deletePersonCharacter(UUID personCharacterId){
|
|
personCharacterRepository.deleteById(personCharacterId);
|
|
}
|
|
|
|
public void deletePersonCharactersByPersonId(UUID personId){
|
|
personCharacterRepository.deleteAllByPersonId(personId);
|
|
|
|
}
|
|
|
|
public void deletePersonCharactersByPersonIds(Iterable<UUID> personIds){
|
|
personCharacterRepository.deleteAllByPersonIdIn(personIds);
|
|
}
|
|
|
|
|
|
//Read
|
|
public List<PersonCharacter> getByPersonId(UUID personId){
|
|
return personCharacterRepository.findAllByPersonId(personId);
|
|
}
|
|
|
|
public List<PersonCharacter> getByPersonId(UUID personId, int page, int pageSize){
|
|
return personCharacterRepository.findAllByPersonId(personId, PageRequest.of(page, pageSize, Sort.by("characterName").ascending()));
|
|
}
|
|
|
|
public List<PersonCharacter> getByPersonId(UUID personId, int page, int pageSize, String searchTerm){
|
|
return personCharacterRepository.findAllByPersonIdAndCharacterNameContainingIgnoreCase(personId, searchTerm, PageRequest.of(page, pageSize, Sort.by("characterName").ascending()));
|
|
}
|
|
|
|
public long getCountByPersonId(UUID personId){
|
|
return personCharacterRepository.countByPersonId(personId);
|
|
}
|
|
|
|
public long getCountByPersonId(UUID personId, String searchTerm){
|
|
return personCharacterRepository.countByPersonIdAndCharacterNameContainingIgnoreCase(personId, searchTerm);
|
|
}
|
|
}
|