Fix adhoc Raid Instance saving
This commit is contained in:
@@ -46,10 +46,10 @@ public class RaidInstanceController{
|
|||||||
|
|
||||||
List<RaidInstance> raidInstances;
|
List<RaidInstance> raidInstances;
|
||||||
if(searchTerm == null || searchTerm.isEmpty()){
|
if(searchTerm == null || searchTerm.isEmpty()){
|
||||||
raidInstances = raidInstanceService.findAllByRaidGroupIdAndEndDate(raidGroupId, ZonedDateTime.now(), page, pageSize);
|
raidInstances = raidInstanceService.findAllByRaidGroupIdAndEndDate(raidGroupId, ZonedDateTime.now().minusYears(1), page, pageSize);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
raidInstances = raidInstanceService.findAllByRaidGroupIdAndEndDate(raidGroupId, ZonedDateTime.now(), page, pageSize, searchTerm);
|
raidInstances = raidInstanceService.findAllByRaidGroupIdAndEndDate(raidGroupId, ZonedDateTime.now().minusYears(1), page, pageSize, searchTerm);
|
||||||
}
|
}
|
||||||
log.debug("Found {} raid instances", raidInstances.size());
|
log.debug("Found {} raid instances", raidInstances.size());
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,10 @@
|
|||||||
package com.mattrixwv.raidbuilder.repository.raid_instance;
|
package com.mattrixwv.raidbuilder.repository.raid_instance;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
|
||||||
public interface RaidInstanceCustomRepository{
|
public interface RaidInstanceCustomRepository{
|
||||||
|
public void clearRaidLayoutId(UUID raidLayoutId);
|
||||||
|
public void clearRaidLayoutIdIn(Iterable<UUID> raidLayoutIds);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ public interface RaidInstanceRepository extends RaidInstanceCustomRepository, Jp
|
|||||||
|
|
||||||
|
|
||||||
public List<RaidInstance> findAllByRaidGroupId(UUID raidGroupId);
|
public List<RaidInstance> findAllByRaidGroupId(UUID raidGroupId);
|
||||||
|
public List<RaidInstance> findAllByRaidGroupIdIn(Iterable<UUID> raidGroupIds);
|
||||||
public List<RaidInstance> findAllByRaidGroupId(UUID raidGroupId, PageRequest pageRequest);
|
public List<RaidInstance> findAllByRaidGroupId(UUID raidGroupId, PageRequest pageRequest);
|
||||||
public List<RaidInstance> findAllByRaidGroupIdAndRaidInstanceNameContainingIgnoreCase(UUID raidGroupId, String searchTerm, PageRequest pageRequest);
|
public List<RaidInstance> findAllByRaidGroupIdAndRaidInstanceNameContainingIgnoreCase(UUID raidGroupId, String searchTerm, PageRequest pageRequest);
|
||||||
public List<RaidInstance> findAllByRaidGroupIdAndRaidEndDateAfter(UUID raidGroupId, ZonedDateTime raidEndDate, PageRequest pageRequest);
|
public List<RaidInstance> findAllByRaidGroupIdAndRaidEndDateAfter(UUID raidGroupId, ZonedDateTime raidEndDate, PageRequest pageRequest);
|
||||||
|
|||||||
@@ -1,9 +1,39 @@
|
|||||||
package com.mattrixwv.raidbuilder.repository.raid_instance;
|
package com.mattrixwv.raidbuilder.repository.raid_instance;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import jakarta.persistence.EntityManager;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
|
@RequiredArgsConstructor
|
||||||
public class RaidInstanceRepositoryImpl implements RaidInstanceCustomRepository{
|
public class RaidInstanceRepositoryImpl implements RaidInstanceCustomRepository{
|
||||||
|
private final EntityManager entityManager;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clearRaidLayoutId(UUID raidLayoutId){
|
||||||
|
entityManager.createQuery("""
|
||||||
|
UPDATE RaidInstance r
|
||||||
|
SET r.raidLayoutId = NULL
|
||||||
|
WHERE r.raidLayoutId = :raidLayoutId
|
||||||
|
""")
|
||||||
|
.setParameter("raidLayoutId", raidLayoutId)
|
||||||
|
.executeUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clearRaidLayoutIdIn(Iterable<UUID> raidLayoutIds){
|
||||||
|
entityManager.createQuery("""
|
||||||
|
UPDATE RaidInstance r
|
||||||
|
SET r.raidLayoutId = NULL
|
||||||
|
WHERE r.raidLayoutId IN :raidLayoutIds
|
||||||
|
""")
|
||||||
|
.setParameter("raidLayoutIds", raidLayoutIds)
|
||||||
|
.executeUpdate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,13 +14,16 @@ import com.mattrixwv.raidbuilder.entity.RaidInstance;
|
|||||||
import com.mattrixwv.raidbuilder.repository.raid_instance.RaidInstanceRepository;
|
import com.mattrixwv.raidbuilder.repository.raid_instance.RaidInstanceRepository;
|
||||||
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class RaidInstanceService{
|
public class RaidInstanceService{
|
||||||
private final RaidInstanceRepository raidInstanceRepository;
|
private final RaidInstanceRepository raidInstanceRepository;
|
||||||
|
private final RaidInstancePersonCharacterXrefService ripcXrefService;
|
||||||
|
|
||||||
|
|
||||||
//Write
|
//Write
|
||||||
@@ -33,23 +36,30 @@ public class RaidInstanceService{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void deleteById(UUID raidInstanceId){
|
public void deleteById(UUID raidInstanceId){
|
||||||
|
ripcXrefService.deleteByRaidInstanceId(raidInstanceId);
|
||||||
raidInstanceRepository.deleteById(raidInstanceId);
|
raidInstanceRepository.deleteById(raidInstanceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deleteByRaidGroupId(UUID raidGroupId){
|
public void deleteByRaidGroupId(UUID raidGroupId){
|
||||||
|
List<RaidInstance> raidInstances = raidInstanceRepository.findAllByRaidGroupId(raidGroupId);
|
||||||
|
ripcXrefService.deleteByRaidInstanceIds(raidInstances.stream().map(RaidInstance::getRaidInstanceId).toList());
|
||||||
|
|
||||||
raidInstanceRepository.deleteAllByRaidGroupId(raidGroupId);
|
raidInstanceRepository.deleteAllByRaidGroupId(raidGroupId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deleteByRaidGroupIds(Iterable<UUID> raidGroupIds){
|
public void deleteByRaidGroupIds(Iterable<UUID> raidGroupIds){
|
||||||
|
List<RaidInstance> raidInstances = raidInstanceRepository.findAllByRaidGroupIdIn(raidGroupIds);
|
||||||
|
ripcXrefService.deleteByRaidInstanceIds(raidInstances.stream().map(RaidInstance::getRaidInstanceId).toList());
|
||||||
|
|
||||||
raidInstanceRepository.deleteAllByRaidGroupIdIn(raidGroupIds);
|
raidInstanceRepository.deleteAllByRaidGroupIdIn(raidGroupIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deleteByRaidLayoutId(UUID raidLayoutId){
|
public void deleteByRaidLayoutId(UUID raidLayoutId){
|
||||||
raidInstanceRepository.deleteAllByRaidLayoutId(raidLayoutId);
|
raidInstanceRepository.clearRaidLayoutId(raidLayoutId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deleteByRaidLayoutIds(Iterable<UUID> raidLayoutIds){
|
public void deleteByRaidLayoutIds(Iterable<UUID> raidLayoutIds){
|
||||||
raidInstanceRepository.deleteAllByRaidLayoutIdIn(raidLayoutIds);
|
raidInstanceRepository.clearRaidLayoutIdIn(raidLayoutIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -71,11 +81,11 @@ public class RaidInstanceService{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public List<RaidInstance> findAllByRaidGroupIdAndEndDate(UUID raidGroupId, ZonedDateTime endDate, int page, int pageSize){
|
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()));
|
return raidInstanceRepository.findAllByRaidGroupIdAndRaidEndDateAfter(raidGroupId, endDate, PageRequest.of(page, pageSize, Sort.by("raidEndDate").descending()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<RaidInstance> findAllByRaidGroupIdAndEndDate(UUID raidGroupId, ZonedDateTime endDate, int page, int pageSize, String searchTerm){
|
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()));
|
return raidInstanceRepository.findAllByRaidGroupIdAndRaidEndDateAfterAndRaidInstanceNameContainingIgnoreCase(raidGroupId, endDate, searchTerm, PageRequest.of(page, pageSize, Sort.by("raidEndDate").descending()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public long countByRaidGroupId(UUID raidGroupId){
|
public long countByRaidGroupId(UUID raidGroupId){
|
||||||
|
|||||||
Reference in New Issue
Block a user