From 9337084ebf4f2f259605a8f59327222d179fb07a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=93=E7=9D=A1=E4=B8=8D=E6=B6=88=E6=AE=8B=E9=85=92?= <49932926+CodeNoobLH@users.noreply.github.com> Date: Mon, 23 Jun 2025 16:37:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8E=92=E5=BA=8F=E5=90=8E?= =?UTF-8?q?=E7=AB=AF=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/data/stock_data_api.go | 32 +++++++------------------------ frontend/src/components/stock.vue | 5 ++++- 2 files changed, 11 insertions(+), 26 deletions(-) diff --git a/backend/data/stock_data_api.go b/backend/data/stock_data_api.go index f6daa0d..b022cdb 100644 --- a/backend/data/stock_data_api.go +++ b/backend/data/stock_data_api.go @@ -469,17 +469,9 @@ func (receiver StockDataApi) SetStockSort(newSort int64, stockCode string) { stockCode = strings.Replace(stockCode, "gb_", "us", 1) } - tx := db.Dao.Begin() - defer func() { - if r := recover(); r != nil { - tx.Rollback() - } - }() - // 获取当前排序值 var currentStock FollowedStock - if err := tx.Model(&FollowedStock{}).Where("stock_code = ?", strings.ToLower(stockCode)).First(¤tStock).Error; err != nil { - tx.Rollback() + if err := db.Dao.Model(&FollowedStock{}).Where("stock_code = ?", strings.ToLower(stockCode)).First(¤tStock).Error; err != nil { logger.SugaredLogger.Error("找不到当前股票: ", err.Error()) return } @@ -488,56 +480,46 @@ func (receiver StockDataApi) SetStockSort(newSort int64, stockCode string) { // 如果排序值没有变化,直接返回 if oldSort == newSort { - tx.Rollback() return } - // 检查新排序位置是否被占用 var count int64 - if err := tx.Model(&FollowedStock{}).Where("sort = ?", newSort).Count(&count).Error; err != nil { - tx.Rollback() + if err := db.Dao.Model(&FollowedStock{}).Where("sort = ?", newSort).Count(&count).Error; err != nil { logger.SugaredLogger.Error("检查新排序位置被占用失败: ", err.Error()) return } if count == 0 { // 新位置未被占用,直接更新当前记录 - if err := tx.Model(&FollowedStock{}). + if err := db.Dao.Model(&FollowedStock{}). Where("stock_code = ?", strings.ToLower(stockCode)). Update("sort", newSort).Error; err != nil { - tx.Rollback() logger.SugaredLogger.Error("更新排序位置失败: ", err.Error()) } } else { // 新位置已被占用,需要移动其他记录 if newSort < oldSort { // 向前移动:将中间记录向后移动 - if err := tx.Model(&FollowedStock{}). + if err := db.Dao.Model(&FollowedStock{}). Where("sort >= ? AND sort < ?", newSort, oldSort). Update("sort", gorm.Expr("sort + 1")).Error; err != nil { - tx.Rollback() logger.SugaredLogger.Error("向前排序更新失败: ", err.Error()) } } else { // 向后移动:将中间记录向前移动 - if err := tx.Model(&FollowedStock{}). + if err := db.Dao.Model(&FollowedStock{}). Where("sort > ? AND sort <= ?", oldSort, newSort). Update("sort", gorm.Expr("sort - 1")).Error; err != nil { - tx.Rollback() logger.SugaredLogger.Error("向后排序更新失败: ", err.Error()) } } // 更新目标记录的排序 - if err := tx.Model(&FollowedStock{}). + if err := db.Dao.Model(&FollowedStock{}). Where("stock_code = ?", strings.ToLower(stockCode)). Update("sort", newSort).Error; err != nil { - tx.Rollback() - logger.SugaredLogger.Error("Failed to update target stock sort: ", err.Error()) + logger.SugaredLogger.Error("更新股票排序失败: ", err.Error()) } } - if err := tx.Commit().Error; err != nil { - logger.SugaredLogger.Error("Failed to commit transaction: ", err.Error()) - } } func (receiver StockDataApi) SetStockAICron(cron string, stockCode string) { diff --git a/frontend/src/components/stock.vue b/frontend/src/components/stock.vue index 1b958cd..8f4e4cb 100644 --- a/frontend/src/components/stock.vue +++ b/frontend/src/components/stock.vue @@ -226,7 +226,8 @@ onMounted(() => { GetFollowList(currentGroupId.value).then(result => { - followList.value = result + followList.value = result + console.log("onMounted",result) for (const followedStock of result) { if(followedStock.StockCode.startsWith("us")){ followedStock.StockCode="gb_"+ followedStock.StockCode.replace("us", "").toLowerCase() @@ -1273,8 +1274,10 @@ function showK(code,name){ function updateCostPriceAndVolumeNew(code,price,volume,alarm,formModel){ if(formModel.sort){ + console.log("sort:",formModel.sort) SetStockSort(formModel.sort,code).then(result => { //message.success(result) + console.log("sort result:",result) }) } if(formModel.cron){