Raid Instance tab working

This commit is contained in:
2025-03-11 22:46:35 -04:00
parent 15036d7e0f
commit f2f05f5adf
7 changed files with 331 additions and 0 deletions

View File

@@ -0,0 +1,92 @@
package com.mattrixwv.raidbuilder.service;
import java.time.ZonedDateTime;
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.RaidInstance;
import com.mattrixwv.raidbuilder.repository.raid_instance.RaidInstanceRepository;
import lombok.RequiredArgsConstructor;
@Service
@Transactional(rollbackFor = Exception.class)
@RequiredArgsConstructor
public class RaidInstanceService{
private final RaidInstanceRepository raidInstanceRepository;
//Write
public RaidInstance createRaidInstance(RaidInstance raidInstance){
return raidInstanceRepository.save(raidInstance);
}
public RaidInstance updateRaidInstance(RaidInstance raidInstance){
return raidInstanceRepository.save(raidInstance);
}
public void deleteById(UUID raidInstanceId){
raidInstanceRepository.deleteById(raidInstanceId);
}
public void deleteByRaidGroupId(UUID raidGroupId){
raidInstanceRepository.deleteAllByRaidGroupId(raidGroupId);
}
public void deleteByRaidGroupIds(Iterable<UUID> raidGroupIds){
raidInstanceRepository.deleteAllByRaidGroupIdIn(raidGroupIds);
}
public void deleteByRaidLayoutId(UUID raidLayoutId){
raidInstanceRepository.deleteAllByRaidLayoutId(raidLayoutId);
}
public void deleteByRaidLayoutIds(Iterable<UUID> raidLayoutIds){
raidInstanceRepository.deleteAllByRaidLayoutIdIn(raidLayoutIds);
}
//Read
public RaidInstance findById(UUID raidInstanceId){
return raidInstanceRepository.findById(raidInstanceId).orElse(null);
}
public List<RaidInstance> findAllByRaidGroupId(UUID raidGroupId, int page, int pageSize){
return raidInstanceRepository.findAllByRaidGroupId(raidGroupId, PageRequest.of(page, pageSize, Sort.by("raidInstanceName").ascending()));
}
public List<RaidInstance> findAllByRaidGroupId(UUID raidGroupId, int page, int pageSize, String searchTerm){
return raidInstanceRepository.findAllByRaidGroupIdAndRaidInstanceNameContainingIgnoreCase(raidGroupId, searchTerm, PageRequest.of(page, pageSize, Sort.by("raidInstanceName").ascending()));
}
public List<RaidInstance> findAllByRaidGroupIdAndEndDate(UUID raidGroupId, ZonedDateTime endDate, int page, int pageSize){
return raidInstanceRepository.findAllByRaidGroupIdAndRaidEndDateAfter(raidGroupId, endDate, PageRequest.of(page, pageSize, Sort.by("raidInstanceName").ascending()));
}
public List<RaidInstance> findAllByRaidGroupIdAndEndDate(UUID raidGroupId, ZonedDateTime endDate, int page, int pageSize, String searchTerm){
return raidInstanceRepository.findAllByRaidGroupIdAndRaidEndDateAfterAndRaidInstanceNameContainingIgnoreCase(raidGroupId, endDate, searchTerm, PageRequest.of(page, pageSize, Sort.by("raidInstanceName").ascending()));
}
public long countByRaidGroupId(UUID raidGroupId){
return raidInstanceRepository.countByRaidGroupId(raidGroupId);
}
public long countByRaidGroupId(UUID raidGroupId, String searchTerm){
return raidInstanceRepository.countByRaidGroupIdAndRaidInstanceNameContainingIgnoreCase(raidGroupId, searchTerm);
}
public long countByRaidGroupIdAndEndDate(UUID raidGroupId, ZonedDateTime endDate){
return raidInstanceRepository.countByRaidGroupIdAndRaidEndDateAfter(raidGroupId, endDate);
}
public long countByRaidGroupIdAndEndDate(UUID raidGroupId, ZonedDateTime endDate, String searchTerm){
return raidInstanceRepository.countByRaidGroupIdAndRaidEndDateAfterAndRaidInstanceNameContainingIgnoreCase(raidGroupId, endDate, searchTerm);
}
}