From b4e2c81d36714f022184f770a4196ad3bf999959 Mon Sep 17 00:00:00 2001 From: lanyuanxiaoyao Date: Thu, 25 Sep 2025 15:38:40 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E8=AF=AD=E5=8F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../leopard/core/repository/DailyRepository.java | 6 ++---- .../leopard/core/repository/StockRepository.java | 13 ++++--------- .../leopard/core/repository/TaskRepository.java | 6 +++++- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/leopard-core/src/main/java/com/lanyuanxiaoyao/leopard/core/repository/DailyRepository.java b/leopard-core/src/main/java/com/lanyuanxiaoyao/leopard/core/repository/DailyRepository.java index 4980dcc..7222c43 100644 --- a/leopard-core/src/main/java/com/lanyuanxiaoyao/leopard/core/repository/DailyRepository.java +++ b/leopard-core/src/main/java/com/lanyuanxiaoyao/leopard/core/repository/DailyRepository.java @@ -6,6 +6,7 @@ import com.querydsl.core.types.Predicate; import java.time.LocalDate; import java.util.List; import java.util.Optional; +import java.util.Set; import org.springframework.data.domain.Sort; import org.springframework.data.jpa.repository.EntityGraph; import org.springframework.data.jpa.repository.Query; @@ -14,10 +15,7 @@ import org.springframework.stereotype.Repository; @Repository public interface DailyRepository extends SimpleRepository { @Query("select distinct daily.tradeDate from Daily daily") - List findDistinctTradeDate(); - - @Query("select distinct daily.tradeDate from Daily daily where daily.stock.id = ?1") - List findDistinctTradeDateByStockId(Long stockId); + Set findDistinctTradeDate(); @Query("select max(daily.tradeDate) from Daily daily") LocalDate findMaxTradeDate(); diff --git a/leopard-core/src/main/java/com/lanyuanxiaoyao/leopard/core/repository/StockRepository.java b/leopard-core/src/main/java/com/lanyuanxiaoyao/leopard/core/repository/StockRepository.java index cdbadbb..ab651ac 100644 --- a/leopard-core/src/main/java/com/lanyuanxiaoyao/leopard/core/repository/StockRepository.java +++ b/leopard-core/src/main/java/com/lanyuanxiaoyao/leopard/core/repository/StockRepository.java @@ -4,8 +4,7 @@ import com.lanyuanxiaoyao.leopard.core.entity.Stock; import com.lanyuanxiaoyao.service.template.repository.SimpleRepository; import jakarta.transaction.Transactional; import java.util.Collection; -import java.util.List; -import org.springframework.data.jpa.repository.EntityGraph; +import java.util.Set; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; @@ -17,16 +16,12 @@ import org.springframework.stereotype.Repository; @Repository public interface StockRepository extends SimpleRepository { @Query("select distinct stock.industry from Stock stock where stock.industry is not null") - List findDistinctIndustries(); + Set findDistinctIndustries(); @Query("select distinct stock.code from Stock stock") - List findDistinctCodes(); + Set findDistinctCodes(); - @Modifying @Transactional(rollbackOn = Throwable.class) + @Modifying void deleteAllByCodeIn(Collection code); - - @EntityGraph(attributePaths = {"indicators"}) - @Query("from Stock stock where size(stock.indicators) >= ?1") - List findAllByIndicatorsSizeGreaterThanEqual(int count); } diff --git a/leopard-core/src/main/java/com/lanyuanxiaoyao/leopard/core/repository/TaskRepository.java b/leopard-core/src/main/java/com/lanyuanxiaoyao/leopard/core/repository/TaskRepository.java index efb8416..56d81ce 100644 --- a/leopard-core/src/main/java/com/lanyuanxiaoyao/leopard/core/repository/TaskRepository.java +++ b/leopard-core/src/main/java/com/lanyuanxiaoyao/leopard/core/repository/TaskRepository.java @@ -14,7 +14,11 @@ import org.springframework.transaction.annotation.Transactional; @Repository public interface TaskRepository extends SimpleRepository { @Modifying - @Query("update Task task set task.status = com.lanyuanxiaoyao.leopard.core.entity.Task.Status.FAILURE where task.status = com.lanyuanxiaoyao.leopard.core.entity.Task.Status.RUNNING") + @Query(""" + update Task task set + task.status = com.lanyuanxiaoyao.leopard.core.entity.Task.Status.FAILURE, + task.finishedTime = current timestamp + where task.status = com.lanyuanxiaoyao.leopard.core.entity.Task.Status.RUNNING""") void updateAllRunningTaskToFailure(); @Transactional(rollbackFor = Throwable.class)