新增 Web 浏览端(Go+Vue 报表系统)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
fish
2026-05-03 14:34:50 +08:00
parent bf8f578761
commit 750584e619
47 changed files with 2557 additions and 18 deletions

View File

@@ -0,0 +1,70 @@
package handlers
import (
"errors"
"net/http"
"strconv"
"github.com/go-chi/chi/v5"
"trade/web/internal/store"
)
func (d *Deps) ListScores(w http.ResponseWriter, r *http.Request) {
q := r.URL.Query()
limit := 0
if s := q.Get("limit"); s != "" {
if n, err := strconv.Atoi(s); err == nil {
limit = n
}
}
rows, err := d.Futures.ListScores(store.ScoreFilter{
TsCode: q.Get("ts_code"),
Start: q.Get("start"),
End: q.Get("end"),
Limit: limit,
})
if err != nil {
writeErr(w, http.StatusInternalServerError, err.Error())
return
}
writeJSON(w, http.StatusOK, rows)
}
func (d *Deps) GetScore(w http.ResponseWriter, r *http.Request) {
idStr := chi.URLParam(r, "id")
id, err := strconv.ParseInt(idStr, 10, 64)
if err != nil {
writeErr(w, http.StatusBadRequest, "invalid id")
return
}
row, err := d.Futures.GetScore(id)
if err != nil {
writeErr(w, http.StatusNotFound, err.Error())
return
}
writeJSON(w, http.StatusOK, row)
}
func (d *Deps) ListContracts(w http.ResponseWriter, r *http.Request) {
out, err := d.Futures.ListContracts()
if err != nil {
writeErr(w, http.StatusInternalServerError, err.Error())
return
}
writeJSON(w, http.StatusOK, out)
}
func (d *Deps) ListCandles(w http.ResponseWriter, r *http.Request) {
q := r.URL.Query()
rows, err := d.Futures.ListCandles(q.Get("ts_code"), q.Get("start"), q.Get("end"))
if err != nil {
if errors.Is(err, store.ErrMissingTsCode) {
writeErr(w, http.StatusBadRequest, err.Error())
return
}
writeErr(w, http.StatusInternalServerError, err.Error())
return
}
writeJSON(w, http.StatusOK, rows)
}