product_list.go 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. package handler
  2. import (
  3. "errors"
  4. "fmt"
  5. "github.com/caixw/lib.go/conv"
  6. "time"
  7. "youngee_m_api/consts"
  8. "youngee_m_api/model/http_model"
  9. "youngee_m_api/pack"
  10. "youngee_m_api/service"
  11. "youngee_m_api/util"
  12. "github.com/gin-gonic/gin"
  13. "github.com/sirupsen/logrus"
  14. )
  15. func WrapFullProjectListHandler(ctx *gin.Context) {
  16. handler := newFullProjectListHandler(ctx)
  17. BaseRun(handler)
  18. }
  19. func newFullProjectListHandler(ctx *gin.Context) *FullProjectListHandler {
  20. return &FullProjectListHandler{
  21. req: http_model.NewFullProjectListRequest(),
  22. resp: http_model.NewFullProjectListResponse(),
  23. ctx: ctx,
  24. }
  25. }
  26. type FullProjectListHandler struct {
  27. req *http_model.FullProjectListRequest
  28. resp *http_model.CommonResponse
  29. ctx *gin.Context
  30. }
  31. func (h *FullProjectListHandler) getRequest() interface{} {
  32. return h.req
  33. }
  34. func (h *FullProjectListHandler) getContext() *gin.Context {
  35. return h.ctx
  36. }
  37. func (h *FullProjectListHandler) getResponse() interface{} {
  38. return h.resp
  39. }
  40. func (h *FullProjectListHandler) run() {
  41. condition := pack.HttpFullProjectRequestToCondition(h.req)
  42. data, err := service.Project.GetFullProjectList(h.ctx, h.req.PageSize, h.req.PageNum, condition, h.req.ProjectType)
  43. if err != nil {
  44. logrus.WithContext(h.ctx).Errorf("[FullProjectListHandler] error GetFullProjectList, err:%+v", err)
  45. util.HandlerPackErrorResp(h.resp, consts.ErrorInternal, consts.DefaultToast)
  46. return
  47. }
  48. h.resp.Data = data
  49. }
  50. func (h *FullProjectListHandler) checkParam() error {
  51. var errs []error
  52. if h.req.PageNum < 0 || h.req.PageSize <= 0 {
  53. errs = append(errs, errors.New("page param error"))
  54. }
  55. h.req.PageNum--
  56. h.req.ProjectForm = util.IsNull(h.req.ProjectForm)
  57. if _, err := conv.Int64(h.req.ProjectForm); err != nil {
  58. errs = append(errs, err)
  59. }
  60. h.req.ProjectId = util.IsNull(h.req.ProjectId)
  61. if _, err := conv.Int64(h.req.ProjectId); err != nil {
  62. errs = append(errs, err)
  63. }
  64. //h.req.ProjectName = util.IsNull(h.req.ProjectName)
  65. h.req.ProjectStatus = util.IsNull(h.req.ProjectStatus)
  66. if _, err := conv.Int64(h.req.ProjectStatus); err != nil {
  67. errs = append(errs, err)
  68. }
  69. formatTime, _ := time.Parse("2006-01-02 15:04:05", h.req.ProjectUpdated)
  70. //fmt.Println(h.req.ProjectUpdated)
  71. h.req.ProjectUpdated = util.IsNull(h.req.ProjectUpdated)
  72. if _, err := conv.Int64(formatTime.Unix()); err != nil {
  73. errs = append(errs, err)
  74. }
  75. h.req.ProjectContentType = util.IsNull(h.req.ProjectContentType)
  76. if _, err := conv.Int64(h.req.ProjectContentType); err != nil {
  77. errs = append(errs, err)
  78. }
  79. h.req.ProjectPlatform = util.IsNull(h.req.ProjectPlatform)
  80. if _, err := conv.Int64(h.req.ProjectPlatform); err != nil {
  81. errs = append(errs, err)
  82. }
  83. if len(errs) != 0 {
  84. return fmt.Errorf("check param errs:%+v", errs)
  85. }
  86. return nil
  87. }