| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package functions
-
- import (
- "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"
- )
-
- // 统一的错误响应处理
- func handleErrorResponseCSV(c *gin.Context, err error) {
- errorCSV := mycsv.CreateStringToCSV(err.Error())
- c.Header("Content-Type", "text/csv; charset=utf-8")
- c.Header("X-Error", "true")
- c.Data(400, "text/csv; charset=utf-8", errorCSV)
- }
-
- // 统一的成功响应处理
- func handleSuccessResponseCSV(c *gin.Context, csvData []byte) {
- c.Header("Content-Type", "text/csv; charset=utf-8")
- c.Data(200, "text/csv; charset=utf-8", csvData)
- }
-
- // 执行查询,返回CSV数据格式。无参数查询
- func QueryToCSV(dbFactory *factory.DBFactory) func(c *gin.Context, req types.QueryRequest) {
- return func(c *gin.Context, req types.QueryRequest) {
- csvData, err := dbFactory.QueryToCSV(req.SQL, req.WriterHeader)
- if err != nil {
- handleErrorResponseCSV(c, err)
- return
- }
- handleSuccessResponseCSV(c, csvData)
- }
- }
-
- // 执行查询,返回CSV数据格式。带参数名称进行查询
- func QueryParamNameToCSV(dbFactory *factory.DBFactory) func(c *gin.Context, req types.QueryRequest) {
- return func(c *gin.Context, req types.QueryRequest) {
-
- csvData, err := dbFactory.QueryParamsNameToCSV(req.SQL, req.WriterHeader, req.Params)
- if err != nil {
- handleErrorResponseCSV(c, err)
- return
- }
- handleSuccessResponseCSV(c, csvData)
- }
- }
-
- // 执行查询,返回CSV数据格式。带占位参数进行查询
- func QueryPositionalToCSV(dbFactory *factory.DBFactory) func(c *gin.Context, req types.QueryRequest) {
- return func(c *gin.Context, req types.QueryRequest) {
- csvData, err := dbFactory.QueryPositionalToCSV(req.SQL, req.WriterHeader, req.PositionalParams)
- if err != nil {
- handleErrorResponseCSV(c, err)
- return
- }
- handleSuccessResponseCSV(c, csvData)
- }
- }
|