package admin import ( "strconv" "think-go/controllers/services" "think-go/utils" beego "github.com/beego/beego/v2/server/web" ) type CoinController struct { beego.Controller } // KlineView page func (c *CoinController) KlineView() { c.TplName = "admin/kline.tpl" } // GET /admin/coin/kline?symbol=BTCUSDT&interval=hour&limit=200 func (c *CoinController) Kline() { symbol := c.GetString("symbol") if symbol == "" { symbol = "BTCUSDT" } interval := c.GetString("interval") if interval == "" { interval = "hour" } limit, _ := strconv.Atoi(c.GetString("limit")) startTime, _ := strconv.ParseInt(c.GetString("start_time"), 10, 64) endTime, _ := strconv.ParseInt(c.GetString("end_time"), 10, 64) svc := &services.KlineService{} data, err := svc.FetchKlines(symbol, interval, limit, startTime, endTime) if err != nil { utils.JSON(&c.Controller, 201, "error", err.Error()) } utils.JSON(&c.Controller, 200, "success", map[string]interface{}{ "symbol": symbol, "interval": interval, "count": len(data), "items": data, }) }