project_task_list.go 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package pack
  2. import (
  3. "fmt"
  4. "youngee_b_api/model/gorm_model"
  5. "youngee_b_api/model/http_model"
  6. "github.com/issue9/conv"
  7. "github.com/tidwall/gjson"
  8. )
  9. func MGormProjectTaskToHttpProjectTaskPreview(gormProjectTaskInfos []*http_model.ProjectTaskInfo) []*http_model.ProjectTaskPreview {
  10. var httpProjectPreviews []*http_model.ProjectTaskPreview
  11. for _, gormProjectTaskInfo := range gormProjectTaskInfos {
  12. httpProjectTaskPreview := GormFullProjectToHttpProjectTaskPreview(gormProjectTaskInfo)
  13. httpProjectPreviews = append(httpProjectPreviews, httpProjectTaskPreview)
  14. }
  15. return httpProjectPreviews
  16. }
  17. func GormFullProjectToHttpProjectTaskPreview(projectTaskInfo *http_model.ProjectTaskInfo) *http_model.ProjectTaskPreview {
  18. createDate := conv.MustString(projectTaskInfo.CreateDate)
  19. createDate = createDate[0:19]
  20. return &http_model.ProjectTaskPreview{
  21. TaskId: conv.MustString(projectTaskInfo.TaskID),
  22. PlatformNickname: conv.MustString(projectTaskInfo.PlatformNickname),
  23. FansCount: conv.MustString(projectTaskInfo.FansCount),
  24. HomePageCaptureUrl: conv.MustString(projectTaskInfo.HomePageCaptureUrl),
  25. StrategyId: conv.MustString(projectTaskInfo.StrategyID),
  26. AllPayment: conv.MustString(projectTaskInfo.AllPayment),
  27. TaskReward: conv.MustString(projectTaskInfo.TaskReward),
  28. HomePageUrl: conv.MustString(projectTaskInfo.HomePageUrl),
  29. TaskStatus: conv.MustString(projectTaskInfo.TaskStatus),
  30. CreateDate: createDate,
  31. FansNum: projectTaskInfo.FansNum,
  32. VoteAvg: projectTaskInfo.VoteAvg,
  33. CommitAvg: projectTaskInfo.CommitAvg,
  34. BOperator: projectTaskInfo.BOperator,
  35. BOperatorType: projectTaskInfo.BOperatorType,
  36. SOperator: projectTaskInfo.SOperator,
  37. SOperatorType: projectTaskInfo.SOperatorType,
  38. }
  39. }
  40. func TaskAccountToTaskInfo(taskAccounts []gorm_model.YoungeeTaskInfo) []*http_model.ProjectTaskInfo {
  41. var projectTasks []*http_model.ProjectTaskInfo
  42. for _, taskAccount := range taskAccounts {
  43. projectTask := GetTaskInfoStruct(taskAccount)
  44. projectTasks = append(projectTasks, projectTask)
  45. }
  46. return projectTasks
  47. }
  48. func GetTaskInfoStruct(taskAccount gorm_model.YoungeeTaskInfo) *http_model.ProjectTaskInfo {
  49. TalentPlatformInfoSnap := taskAccount.TalentPlatformInfoSnap
  50. fmt.Printf("任务-账户关联 %+v", taskAccount)
  51. return &http_model.ProjectTaskInfo{
  52. TaskID: taskAccount.TaskID,
  53. TaskReward: taskAccount.TaskReward,
  54. AllPayment: taskAccount.AllPayment,
  55. PlatformNickname: conv.MustString(gjson.Get(TalentPlatformInfoSnap, "platform_nickname")),
  56. CreateDate: taskAccount.CreateDate,
  57. HomePageUrl: conv.MustString(gjson.Get(TalentPlatformInfoSnap, "home_page_url")),
  58. HomePageCaptureUrl: conv.MustString(gjson.Get(TalentPlatformInfoSnap, "home_page_capture_url")),
  59. FansCount: conv.MustString(gjson.Get(TalentPlatformInfoSnap, "fans_count")),
  60. TaskStatus: string(rune(taskAccount.TaskStatus)),
  61. StrategyID: taskAccount.StrategyID,
  62. FansNum: taskAccount.FansNum,
  63. VoteAvg: taskAccount.VoteAvg,
  64. CommitAvg: taskAccount.CommitAvg,
  65. BOperator: taskAccount.BOperator,
  66. BOperatorType: taskAccount.BOperatorType,
  67. SOperator: taskAccount.SOperator,
  68. SOperatorType: taskAccount.SOperatorType,
  69. }
  70. }