package service import ( "gorm.io/gorm" "level_go/internal/model" ) // CommonService 提供通用基础数据查询能力。 type CommonService struct { DB *gorm.DB // 数据库连接。 } // GetTradeCalendar 查询上交所全部开市日期,并返回最新开市日期。 func (s *CommonService) GetTradeCalendar() (model.CalendarResponse, error) { var results []struct { DateStr string `gorm:"column:ds"` } var resp model.CalendarResponse err := s.DB.Model(&model.TradeCalendar{}). Select("DATE_FORMAT(cal_date, '%Y-%m-%d') as ds"). Where("is_open = ? AND exchange = ?", 1, "SSE"). Order("cal_date ASC").Scan(&results).Error if err != nil { return resp, err } // 按日期升序扫描,因此循环中最后一次赋值即为最大开市日期。 for _, r := range results { resp.OpenDates = append(resp.OpenDates, r.DateStr) resp.MaxDate = r.DateStr } return resp, nil }