修改排序后端代码

This commit is contained in:
浓睡不消残酒 2025-06-23 16:37:20 +08:00
parent 6bdff0a0f3
commit 9337084ebf
2 changed files with 11 additions and 26 deletions

View File

@ -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(&currentStock).Error; err != nil {
tx.Rollback()
if err := db.Dao.Model(&FollowedStock{}).Where("stock_code = ?", strings.ToLower(stockCode)).First(&currentStock).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) {

View File

@ -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){