| 123456789101112131415161718192021222324252627282930 |
- package routes
-
- import (
- "database/sql"
-
- "github.com/gin-gonic/gin"
-
- "git.x2erp.com/qdy/go-base/mycsv"
- "git.x2erp.com/qdy/go-base/types"
- "git.x2erp.com/qdy/go-db/factory"
- )
-
- // 创建带 db 的 handler
- func QueryHandlerCSV(db *sql.DB) func(c *gin.Context, req types.QueryRequest) {
- return func(c *gin.Context, req types.QueryRequest) {
- csvData, err := factory.QuickQueryToCSV(db, req.SQL)
- if err != nil {
- // 错误时也返回CSV格式,而不是JSON
- errorCSV := mycsv.CreateStringToCSV(err.Error())
- c.Header("Content-Type", "text/csv; charset=utf-8")
- c.Header("X-Error", "true") // 可选:通过header标记这是错误响应
- c.Data(400, "text/csv; charset=utf-8", errorCSV)
- return
- }
-
- // 成功返回CSV数据
- c.Header("Content-Type", "text/csv; charset=utf-8")
- c.Data(200, "text/csv; charset=utf-8", csvData)
- }
- }
|