From 99987067cc2b0f2e94f73fa1487005394cdf306e Mon Sep 17 00:00:00 2001 From: alterdekim <alterwain@protonmail.com> Date: Thu, 28 Nov 2024 00:20:15 +0300 Subject: [PATCH] synergy fix --- .../javabot/controller/DatabaseController.java | 10 +++++----- .../javabot/repository/SynergyRepository.java | 9 +++++++++ .../com/alterdekim/javabot/service/SynergyService.java | 3 +++ .../alterdekim/javabot/service/SynergyServiceImpl.java | 6 ++++++ 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/alterdekim/javabot/controller/DatabaseController.java b/src/main/java/com/alterdekim/javabot/controller/DatabaseController.java index 566d0ab..0cb3a0b 100644 --- a/src/main/java/com/alterdekim/javabot/controller/DatabaseController.java +++ b/src/main/java/com/alterdekim/javabot/controller/DatabaseController.java @@ -325,11 +325,11 @@ public class DatabaseController { String section = params.get("section"); long entry_id = Long.parseLong(params.get("entry_id")); switch (section) { - case "agge" -> bioService.removeById(entry_id); - case "hobb" -> hobbyService.removeById(entry_id); - case "lugg" -> luggageService.removeById(entry_id); - case "heal" -> healthService.removeById(entry_id); - case "prof" -> workService.removeById(entry_id); + case "agge" -> { bioService.removeById(entry_id); synergyService.removeByEntityId(entry_id, SectionType.AGE); } + case "hobb" -> { hobbyService.removeById(entry_id); synergyService.removeByEntityId(entry_id, SectionType.HOBBY); } + case "lugg" -> { luggageService.removeById(entry_id); synergyService.removeByEntityId(entry_id, SectionType.LUGGAGE); } + case "heal" -> { healthService.removeById(entry_id); synergyService.removeByEntityId(entry_id, SectionType.HEALTH); } + case "prof" -> { workService.removeById(entry_id); synergyService.removeByEntityId(entry_id, SectionType.WORK); } case "actions" -> actionService.removeById(entry_id); case "script_request" -> actionRequestService.removeById(entry_id); case "themes" -> themeService.removeById(entry_id); diff --git a/src/main/java/com/alterdekim/javabot/repository/SynergyRepository.java b/src/main/java/com/alterdekim/javabot/repository/SynergyRepository.java index 37f8112..2febcce 100644 --- a/src/main/java/com/alterdekim/javabot/repository/SynergyRepository.java +++ b/src/main/java/com/alterdekim/javabot/repository/SynergyRepository.java @@ -2,6 +2,10 @@ package com.alterdekim.javabot.repository; import com.alterdekim.javabot.entities.Synergy; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Optional; @@ -10,4 +14,9 @@ public interface SynergyRepository extends JpaRepository<Synergy, Long> { Optional<Synergy> findById(Long id); List<Synergy> findAll(); + + @Transactional + @Modifying + @Query("DELETE FROM Synergy s WHERE (s.firstEntityId = :uuid AND s.firstType = :sectionType) OR (s.secondEntityId = :uuid AND s.secondType = :sectionType)") + void deleteByEntityId(@Param("uuid") Long entityId, @Param("sectionType") Integer sectionType); } diff --git a/src/main/java/com/alterdekim/javabot/service/SynergyService.java b/src/main/java/com/alterdekim/javabot/service/SynergyService.java index b356711..fc1a6b8 100644 --- a/src/main/java/com/alterdekim/javabot/service/SynergyService.java +++ b/src/main/java/com/alterdekim/javabot/service/SynergyService.java @@ -1,5 +1,6 @@ package com.alterdekim.javabot.service; +import com.alterdekim.javabot.bot.SectionType; import com.alterdekim.javabot.entities.Luggage; import com.alterdekim.javabot.entities.Synergy; @@ -11,4 +12,6 @@ public interface SynergyService { void saveSynergy(Synergy synergy); List<Synergy> getAllSynergies(); + + void removeByEntityId(Long entityId, SectionType sectionType); } diff --git a/src/main/java/com/alterdekim/javabot/service/SynergyServiceImpl.java b/src/main/java/com/alterdekim/javabot/service/SynergyServiceImpl.java index da6a9c3..0027933 100644 --- a/src/main/java/com/alterdekim/javabot/service/SynergyServiceImpl.java +++ b/src/main/java/com/alterdekim/javabot/service/SynergyServiceImpl.java @@ -1,5 +1,6 @@ package com.alterdekim.javabot.service; +import com.alterdekim.javabot.bot.SectionType; import com.alterdekim.javabot.entities.Synergy; import com.alterdekim.javabot.repository.SynergyRepository; import org.springframework.stereotype.Service; @@ -29,4 +30,9 @@ public class SynergyServiceImpl implements SynergyService { public List<Synergy> getAllSynergies() { return repository.findAll(); } + + @Override + public void removeByEntityId(Long entityId, SectionType sectionType) { + repository.deleteByEntityId(entityId, sectionType.ordinal()+1); + } }