node_order.go 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package app
  2. import (
  3. model "go_server/model/biz_modules/app"
  4. "go_server/service/base"
  5. "go_server/base/core"
  6. "go_server/model/common/response"
  7. "github.com/gin-gonic/gin"
  8. "strings"
  9. )
  10. type NodeOrderService struct {
  11. base.BizCommonService
  12. }
  13. func (s *NodeOrderService) Get(c *gin.Context) {
  14. s.SetDbAlias("app")
  15. base.NewBaseHandler(model.NewNodeOrder()).Get(c,s.DB())
  16. }
  17. func (s *NodeOrderService) Find(c *gin.Context) {
  18. s.SetDbAlias("app")
  19. type request[T any] struct {
  20. base.ListRequest[T]
  21. Id *int64 `form:"id"`
  22. IsExport *bool `form:"isExport"`
  23. Fields *string `form:"fields"` // 指定返回字段 , 分割
  24. BeginTime *int64 `form:"beginTime"`
  25. EndTime *int64 `form:"endTime"`
  26. }
  27. req := new(request[model.NodeOrder])
  28. if err := c.BindQuery(req); err != nil {
  29. response.Resp(c, err.Error())
  30. return
  31. }
  32. db := s.DB()
  33. if req.Id != nil && *req.Id != 0 {
  34. db = db.Where("id", req.Id)
  35. }
  36. if req.BeginTime != nil && *req.BeginTime > 0 && req.EndTime != nil && *req.EndTime > 0{
  37. db = db.Where("created_at between ? and ?", *req.BeginTime, *req.EndTime)
  38. }
  39. // 导出处理
  40. fields := make([]string, 0)
  41. if req.Fields != nil {
  42. fields = strings.Split(*req.Fields, ",")
  43. }
  44. var url string
  45. colInfo := s.GetColumnCommentFromStruct(model.NodeOrder{})
  46. var err error
  47. if req.IsExport != nil && *req.IsExport {
  48. if len(fields) == 0 {
  49. for _, col := range colInfo {
  50. fields = append(fields, col.Field)
  51. }
  52. }
  53. core.Log.Infof("导出的字段:%s", fields)
  54. url, err = base.ExportCsv[model.NodeOrder](db, fields, colInfo)
  55. if err != nil {
  56. response.Resp(c, err.Error())
  57. return
  58. }
  59. }
  60. resp, err := base.NewQueryBaseHandler(model.NewNodeOrder()).List(db, req)
  61. if err != nil {
  62. response.Resp(c, err.Error())
  63. return
  64. }
  65. response.Resp(c, map[string]interface{}{
  66. "url": url,
  67. "cols": colInfo,
  68. "list": resp.List,
  69. "paging": resp.Paging,
  70. })
  71. }
  72. func (s *NodeOrderService) Comment(c *gin.Context) {
  73. s.SetDbAlias("app")
  74. dbs, err := s.GetColumnComment("app", model.NewNodeOrder().TableName())
  75. if err != nil {
  76. response.Resp(c, "获取失败")
  77. return
  78. } else {
  79. response.Resp(c, gin.H{"dbs": dbs})
  80. return
  81. }
  82. }