project_list.go 3.0 KB

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