project_task_list.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package pack
  2. import (
  3. "github.com/caixw/lib.go/conv"
  4. "youngee_m_api/model/http_model"
  5. )
  6. func MGormProjectTaskToHttpProjectTaskPreview(gormProjectTaskInfos []*http_model.ProjectTaskInfo) []*http_model.ProjectTaskPreview {
  7. var httpProjectPreviews []*http_model.ProjectTaskPreview
  8. for _, gormProjectTaskInfo := range gormProjectTaskInfos {
  9. httpProjectTaskPreview := GormFullProjectToHttpProjectTaskPreview(gormProjectTaskInfo)
  10. httpProjectPreviews = append(httpProjectPreviews, httpProjectTaskPreview)
  11. }
  12. return httpProjectPreviews
  13. }
  14. func GormFullProjectToHttpProjectTaskPreview(projectTaskInfo *http_model.ProjectTaskInfo) *http_model.ProjectTaskPreview {
  15. createDate := conv.MustString(projectTaskInfo.CreateDate, "")
  16. createDate = createDate[0:19]
  17. return &http_model.ProjectTaskPreview{
  18. TaskId: conv.MustString(projectTaskInfo.TaskID, ""),
  19. PlatformNickname: conv.MustString(projectTaskInfo.PlatformNickname, ""),
  20. FansCount: conv.MustString(projectTaskInfo.FansCount, ""),
  21. HomePageCaptureUrl: conv.MustString(projectTaskInfo.HomePageCaptureUrl, ""),
  22. StrategyId: conv.MustString(projectTaskInfo.StrategyID, ""),
  23. TaskReward: conv.MustString(projectTaskInfo.TaskReward, ""),
  24. HomePageUrl: conv.MustString(projectTaskInfo.HomePageUrl, ""),
  25. TaskStatus: conv.MustString(projectTaskInfo.TaskStatus, ""),
  26. CreateDate: createDate,
  27. }
  28. }
  29. func TaskAccountToTaskInfo(taskAccounts []*http_model.TaskAccount) []*http_model.ProjectTaskInfo {
  30. var projectTasks []*http_model.ProjectTaskInfo
  31. for _, taskAccount := range taskAccounts {
  32. projectTask := GetTaskInfoStruct(taskAccount)
  33. projectTasks = append(projectTasks, projectTask)
  34. }
  35. return projectTasks
  36. }
  37. func GetTaskInfoStruct(taskAccount *http_model.TaskAccount) *http_model.ProjectTaskInfo {
  38. return &http_model.ProjectTaskInfo{
  39. TaskID: taskAccount.Task.TaskId,
  40. TaskReward: taskAccount.Task.TaskReward,
  41. PlatformNickname: taskAccount.Account.PlatformNickname,
  42. CreateDate: taskAccount.Task.CreateDate,
  43. HomePageUrl: taskAccount.Account.HomePageUrl,
  44. HomePageCaptureUrl: taskAccount.Account.HomePageCaptureUrl,
  45. FansCount: taskAccount.Account.FansCount,
  46. TaskStatus: string(rune(taskAccount.Task.TaskStatus)),
  47. StrategyID: taskAccount.Task.StrategyId,
  48. }
  49. }