新增注释

This commit is contained in:
2026-05-09 17:50:40 +08:00
parent d5c053e59d
commit 8504838ccb
19 changed files with 404 additions and 217 deletions
@@ -6,8 +6,10 @@ import (
"level_go/internal/model"
)
// GetLimitOpenThresholdGroups 返回昨日涨停股今日开盘是否低于前收 101% 的分组。
func (s *LimitBoardService) GetLimitOpenThresholdGroups(tradeDate string) (model.LimitOpenThresholdResponse, error) {
resp := model.LimitOpenThresholdResponse{TradeDate: tradeDate}
// thresholdRatio 是开盘价阈值,1.01 表示前收的 101%。
const thresholdRatio = 1.01
tradeDates, dateIndex, err := s.loadTradeCalendar(tradeDate)
@@ -34,6 +36,7 @@ func (s *LimitBoardService) GetLimitOpenThresholdGroups(tradeDate string) (model
withinThresholdStocks := make([]model.LimitOpenThresholdStock, 0)
atOrAboveThresholdStocks := make([]model.LimitOpenThresholdStock, 0)
for _, stock := range stocks {
// 前收价格有效时才计算阈值价格和开盘/前收比值,避免除零和误导性数据。
if stock.HasPreviousClose && stock.PreviousClose > 0 {
stock.OpenThresholdPrice = stock.PreviousClose * thresholdRatio
}
@@ -59,6 +62,7 @@ func (s *LimitBoardService) GetLimitOpenThresholdGroups(tradeDate string) (model
return resp, nil
}
// loadLimitOpenThresholdStocks 查询昨日涨停且今日继续涨停的股票,并补齐今日开盘和前收。
func (s *LimitBoardService) loadLimitOpenThresholdStocks(tradeDate, previousTradeDate string) ([]model.LimitOpenThresholdStock, error) {
var stocks []model.LimitOpenThresholdStock
query := `SELECT
@@ -105,6 +109,7 @@ func (s *LimitBoardService) loadLimitOpenThresholdStocks(tradeDate, previousTrad
return stocks, err
}
// buildLimitOpenThresholdGroups 构造低于阈值和达到/超过阈值两个固定分组。
func buildLimitOpenThresholdGroups(withinThresholdStocks, atOrAboveThresholdStocks []model.LimitOpenThresholdStock) []model.LimitOpenThresholdGroup {
if withinThresholdStocks == nil {
withinThresholdStocks = []model.LimitOpenThresholdStock{}
@@ -132,6 +137,7 @@ func buildLimitOpenThresholdGroups(withinThresholdStocks, atOrAboveThresholdStoc
}
}
// sortLimitOpenThresholdStocks 按涨跌幅降序、股票代码升序稳定展示分组内股票。
func sortLimitOpenThresholdStocks(stocks []model.LimitOpenThresholdStock) {
sort.Slice(stocks, func(i, j int) bool {
if stocks[i].PctChg == stocks[j].PctChg {