From b90f86b081fb1973ebf215ba47d1514679c90bbf Mon Sep 17 00:00:00 2001 From: WrBug Date: Thu, 15 Jan 2026 15:05:53 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20@Transactional=20?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E7=9A=84=E5=8F=AF=E8=A7=81=E6=80=A7=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将 OrderStatusUpdateService 中 4 个使用 @Transactional 的方法从 private 改为 public, 确保 Spring 能够正确代理这些方法。 修改的方法: - cleanupDeletedAccountOrders() - checkAndDeleteUnfilledOrders() - updatePendingSellOrderPrices() - updatePendingBuyOrders() 参考 UserService.kt 的实现模式,@Transactional 方法必须是 public 的。 --- .../copytrading/statistics/OrderStatusUpdateService.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/src/main/kotlin/com/wrbug/polymarketbot/service/copytrading/statistics/OrderStatusUpdateService.kt b/backend/src/main/kotlin/com/wrbug/polymarketbot/service/copytrading/statistics/OrderStatusUpdateService.kt index bdca416..cae9855 100644 --- a/backend/src/main/kotlin/com/wrbug/polymarketbot/service/copytrading/statistics/OrderStatusUpdateService.kt +++ b/backend/src/main/kotlin/com/wrbug/polymarketbot/service/copytrading/statistics/OrderStatusUpdateService.kt @@ -106,7 +106,7 @@ class OrderStatusUpdateService( * 清理已删除账户的订单 */ @Transactional - private suspend fun cleanupDeletedAccountOrders() { + suspend fun cleanupDeletedAccountOrders() { try { // 查询所有卖出记录 val allRecords = sellMatchRecordRepository.findAll() @@ -150,7 +150,7 @@ class OrderStatusUpdateService( * 首次检测但加入缓存中30s后还没有成交,则删除 */ @Transactional - private suspend fun checkAndDeleteUnfilledOrders() { + suspend fun checkAndDeleteUnfilledOrders() { try { // 计算30秒前的时间戳 val thirtySecondsAgo = System.currentTimeMillis() - 30000 @@ -323,7 +323,7 @@ class OrderStatusUpdateService( * 注意:priceUpdated 现在同时表示价格已更新和通知已发送(共用字段) */ @Transactional - private suspend fun updatePendingSellOrderPrices() { + suspend fun updatePendingSellOrderPrices() { try { // 查询所有价格未更新的卖出记录(priceUpdated = false 表示未处理) val pendingRecords = sellMatchRecordRepository.findByPriceUpdatedFalse() @@ -566,7 +566,7 @@ class OrderStatusUpdateService( * 查询订单详情获取实际价格和数量,然后发送通知并更新数据库 */ @Transactional - private suspend fun updatePendingBuyOrders() { + suspend fun updatePendingBuyOrders() { try { // 查询所有未发送通知的买入订单 val pendingOrders = copyOrderTrackingRepository.findByNotificationSentFalse()