project_list.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. package handler
  2. import (
  3. "errors"
  4. "fmt"
  5. "time"
  6. "youngee_b_api/consts"
  7. "youngee_b_api/middleware"
  8. "youngee_b_api/model/http_model"
  9. "youngee_b_api/pack"
  10. "youngee_b_api/service"
  11. "youngee_b_api/util"
  12. "github.com/issue9/conv"
  13. "github.com/gin-gonic/gin"
  14. "github.com/sirupsen/logrus"
  15. )
  16. // WrapFullProjectListHandler
  17. // @BasePath /youngee/m/
  18. // SendCode godoc
  19. // @Summary ProjectList 商品列表
  20. // @Schemes
  21. // @Description 展示企业的商品列表
  22. // @Accept json
  23. // @Produce json
  24. // @Param Authorization header string true "登录TOKEN信息"
  25. // @Param req body http_model.FullProjectListRequest true "创建全部商品请求结构体"
  26. // @Success 200 {object} http_model.CommonResponse{data=http_model.FullProjectListData} "创建全部商品列表相应结构体"
  27. // @Router /product/list [post]
  28. func WrapFullProjectListHandler(ctx *gin.Context) {
  29. handler := newFullProjectListHandler(ctx)
  30. baseRun(handler)
  31. }
  32. func newFullProjectListHandler(ctx *gin.Context) *FullProjectListHandler {
  33. return &FullProjectListHandler{
  34. req: http_model.NewFullProjectListRequest(),
  35. resp: http_model.NewFullProjectListResponse(),
  36. ctx: ctx,
  37. }
  38. }
  39. type FullProjectListHandler struct {
  40. req *http_model.FullProjectListRequest
  41. resp *http_model.CommonResponse
  42. ctx *gin.Context
  43. }
  44. func (h *FullProjectListHandler) getRequest() interface{} {
  45. return h.req
  46. }
  47. func (h *FullProjectListHandler) getContext() *gin.Context {
  48. return h.ctx
  49. }
  50. func (h *FullProjectListHandler) getResponse() interface{} {
  51. return h.resp
  52. }
  53. func (h *FullProjectListHandler) run() {
  54. enterpriseID := middleware.GetSessionAuth(h.ctx).EnterpriseID
  55. condition := pack.HttpFullProjectRequestToCondition(h.req)
  56. data, err := service.Project.GetFullProjectList(h.ctx, enterpriseID, h.req.PageSize, h.req.PageNum, condition)
  57. if err != nil {
  58. logrus.WithContext(h.ctx).Errorf("[FullProjectListHandler] error GetFullProjectList, err:%+v", err)
  59. util.HandlerPackErrorResp(h.resp, consts.ErrorInternal, consts.DefaultToast)
  60. return
  61. }
  62. h.resp.Data = data
  63. }
  64. func (h *FullProjectListHandler) checkParam() error {
  65. var errs []error
  66. if h.req.PageNum < 0 || h.req.PageSize <= 0 {
  67. errs = append(errs, errors.New("page param error"))
  68. }
  69. h.req.PageNum--
  70. h.req.ProjectForm = util.IsNull(h.req.ProjectForm)
  71. if _, err := conv.Int64(h.req.ProjectForm); err != nil {
  72. errs = append(errs, err)
  73. }
  74. // h.req.ProjectId = util.IsNull(h.req.ProjectId)
  75. // if _, err := conv.Int64(h.req.ProjectId); err != nil {
  76. // errs = append(errs, err)
  77. // }
  78. //h.req.ProjectName = util.IsNull(h.req.ProjectName)
  79. h.req.ProjectStatus = util.IsNull(h.req.ProjectStatus)
  80. if _, err := conv.Int64(h.req.ProjectStatus); err != nil {
  81. errs = append(errs, err)
  82. }
  83. formatTime, _ := time.Parse("2006-01-02 15:04:05", h.req.ProjectUpdated)
  84. //fmt.Println(h.req.ProjectUpdated)
  85. h.req.ProjectUpdated = util.IsNull(h.req.ProjectUpdated)
  86. if _, err := conv.Int64(formatTime.Unix()); err != nil {
  87. errs = append(errs, err)
  88. }
  89. h.req.ProjectContentType = util.IsNull(h.req.ProjectContentType)
  90. if _, err := conv.Int64(h.req.ProjectContentType); err != nil {
  91. errs = append(errs, err)
  92. }
  93. h.req.ProjectPlatform = util.IsNull(h.req.ProjectPlatform)
  94. if _, err := conv.Int64(h.req.ProjectPlatform); err != nil {
  95. errs = append(errs, err)
  96. }
  97. if len(errs) != 0 {
  98. return fmt.Errorf("check param errs:%+v", errs)
  99. }
  100. return nil
  101. }