Files
go/internal/service/limit_board_service.go
T
yang d5c053e59d 1、新增二板炸板情况统计;
2、更新项目结构;
2026-05-09 16:59:45 +08:00

60 lines
1.0 KiB
Go

package service
import (
"fmt"
"gorm.io/gorm"
)
type LimitBoardService struct {
DB *gorm.DB
}
const stockLimitCombinedTable = "stock_limit_combined_data"
func boardLabel(boardCount int) string {
switch boardCount {
case 1:
return "首板"
case 2:
return "二板"
case 3:
return "三板"
case 4:
return "四板"
case 5:
return "五板"
case 6:
return "六板"
case 7:
return "七板"
case 8:
return "八板"
case 9:
return "九板"
default:
return fmt.Sprintf("%d板", boardCount)
}
}
func (s *LimitBoardService) loadTradeCalendar(tradeDate string) ([]string, int, error) {
var tradeDates []string
if err := s.DB.Table("trade_calendar").
Select("DATE_FORMAT(cal_date, '%Y-%m-%d') AS trade_date").
Where("exchange = ? AND is_open = ? AND cal_date <= ?", "SSE", 1, tradeDate).
Order("cal_date ASC").
Scan(&tradeDates).Error; err != nil {
return nil, -1, err
}
dateIndex := -1
for i, d := range tradeDates {
if d == tradeDate {
dateIndex = i
break
}
}
return tradeDates, dateIndex, nil
}