full_project.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. package pack
  2. import (
  3. "youngee_b_api/consts"
  4. "youngee_b_api/model/gorm_model"
  5. "youngee_b_api/model/http_model"
  6. "github.com/issue9/conv"
  7. )
  8. func MGormFullProjectToHttpFullProjectPreview(gormProjectInfos []*gorm_model.ProjectInfo) []*http_model.FullProjectPreview {
  9. var httpProjectPreviews []*http_model.FullProjectPreview
  10. for _, gormProjectInfo := range gormProjectInfos {
  11. httpProjectPreview := GormFullProjectToHttpFullProjectPreview(gormProjectInfo)
  12. httpProjectPreviews = append(httpProjectPreviews, httpProjectPreview)
  13. }
  14. return httpProjectPreviews
  15. }
  16. func GormFullProjectToHttpFullProjectPreview(gormProjectInfo *gorm_model.ProjectInfo) *http_model.FullProjectPreview {
  17. updatedTime := conv.MustString(gormProjectInfo.UpdatedAt)
  18. updatedTime = updatedTime[0:19]
  19. return &http_model.FullProjectPreview{
  20. ProjectId: gormProjectInfo.ProjectID,
  21. ProjectName: gormProjectInfo.ProjectName,
  22. ProjectStatus: consts.GetProjectStatus(gormProjectInfo.ProjectStatus),
  23. ProjectPlatform: consts.GetProjectPlatform(gormProjectInfo.ProjectPlatform),
  24. ProjectForm: consts.GetProjectForm(gormProjectInfo.ProjectForm),
  25. ProjectContentType: consts.GetProjectContentType(gormProjectInfo.ContentType),
  26. ProjectType: consts.GetProjectType(gormProjectInfo.ProjectType),
  27. ProjectUpdated: updatedTime,
  28. ProductId: gormProjectInfo.ProductID,
  29. EstimatedCost: gormProjectInfo.EstimatedCost,
  30. RecruitDdl: conv.MustString(gormProjectInfo.RecruitDdl)[0:19],
  31. ServiceChargeRate: gormProjectInfo.ServiceChargeRate,
  32. ServiceCharge: gormProjectInfo.ServiceChargeRate * gormProjectInfo.EstimatedCost * 0.01,
  33. }
  34. }