CoinController.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package admin
  2. import (
  3. "strconv"
  4. "think-go/controllers/services"
  5. "think-go/utils"
  6. beego "github.com/beego/beego/v2/server/web"
  7. )
  8. type CoinController struct {
  9. beego.Controller
  10. }
  11. // KlineView page
  12. func (c *CoinController) KlineView() {
  13. c.TplName = "admin/kline.tpl"
  14. }
  15. // GET /admin/coin/kline?symbol=BTCUSDT&interval=hour&limit=200
  16. func (c *CoinController) Kline() {
  17. symbol := c.GetString("symbol")
  18. if symbol == "" {
  19. symbol = "BTCUSDT"
  20. }
  21. interval := c.GetString("interval")
  22. if interval == "" {
  23. interval = "hour"
  24. }
  25. limit, _ := strconv.Atoi(c.GetString("limit"))
  26. startTime, _ := strconv.ParseInt(c.GetString("start_time"), 10, 64)
  27. endTime, _ := strconv.ParseInt(c.GetString("end_time"), 10, 64)
  28. svc := &services.KlineService{}
  29. data, err := svc.FetchKlines(symbol, interval, limit, startTime, endTime)
  30. if err != nil {
  31. utils.JSON(&c.Controller, 201, "error", err.Error())
  32. }
  33. utils.JSON(&c.Controller, 200, "success", map[string]interface{}{
  34. "symbol": symbol,
  35. "interval": interval,
  36. "count": len(data),
  37. "items": data,
  38. })
  39. }