package internal import ( "encoding/json" "log" "net/http" "time" "git.apinb.com/bsm-sdk/core/utils" "github.com/gin-gonic/gin" ) func TickRecv(c *gin.Context) { log.Println("TickRecv called") stocks := GetAllowStocks() if len(stocks) == 0 { c.JSON(http.StatusOK, gin.H{ "status": "OK", "num": len(stocks), }) return } data := map[string]any{} // Gin 的 Bind 方法会自动根据 Content-Type 解析 if err := c.Bind(&data); err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) return } for key, value := range data { if utils.ArrayInString(key, stocks) { RedisService.Set(key, value, 1*time.Hour) } } // 处理数据... c.JSON(http.StatusOK, gin.H{ "status": "OK", }) } func GetAllowStocks() []string { result, err := utils.HttpGet("http://139.224.247.176:13499/a/pass_codes") if err != nil { log.Println("Error: Http Get pass_codes", err.Error()) return nil } var stocks []string err = json.Unmarshal(result, &stocks) if err != nil { log.Println("Error: Json Unmarshal pass_codes", err.Error()) return nil } return stocks }