project_task_list.go 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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. StrategyId: conv.MustString(projectTaskInfo.StrategyID),
  25. TaskStatus: projectTaskInfo.TaskStatus,
  26. CreateDate: createDate,
  27. FansNum: projectTaskInfo.FansNum,
  28. VoteAvg: projectTaskInfo.VoteAvg,
  29. CommitAvg: projectTaskInfo.CommitAvg,
  30. BOperator: projectTaskInfo.BOperator,
  31. BOperatorType: projectTaskInfo.BOperatorType,
  32. SOperator: projectTaskInfo.SOperator,
  33. SOperatorType: projectTaskInfo.SOperatorType,
  34. }
  35. }
  36. func TaskAccountToTaskInfo(taskAccounts []gorm_model.YoungeeTaskInfo) []*http_model.ProjectTaskInfo {
  37. var projectTasks []*http_model.ProjectTaskInfo
  38. for _, taskAccount := range taskAccounts {
  39. projectTask := GetTaskInfoStruct(taskAccount)
  40. projectTasks = append(projectTasks, projectTask)
  41. }
  42. return projectTasks
  43. }
  44. func GetTaskInfoStruct(taskAccount gorm_model.YoungeeTaskInfo) *http_model.ProjectTaskInfo {
  45. TalentPlatformInfoSnap := taskAccount.TalentPlatformInfoSnap
  46. fmt.Printf("任务-账户关联 %+v", taskAccount)
  47. return &http_model.ProjectTaskInfo{
  48. TaskID: taskAccount.TaskID,
  49. TaskReward: taskAccount.TaskReward,
  50. AllPayment: taskAccount.AllPayment,
  51. PlatformNickname: conv.MustString(gjson.Get(TalentPlatformInfoSnap, "platform_nickname")),
  52. CreateDate: taskAccount.CreateDate,
  53. HomePageUrl: conv.MustString(gjson.Get(TalentPlatformInfoSnap, "home_page_url")),
  54. HomePageCaptureUrl: conv.MustString(gjson.Get(TalentPlatformInfoSnap, "home_page_capture_url")),
  55. FansCount: conv.MustString(gjson.Get(TalentPlatformInfoSnap, "fans_count")),
  56. TaskStatus: string(rune(taskAccount.TaskStatus)),
  57. StrategyID: taskAccount.StrategyID,
  58. FansNum: taskAccount.FansNum,
  59. VoteAvg: taskAccount.VoteAvg,
  60. CommitAvg: taskAccount.CommitAvg,
  61. BOperator: taskAccount.BOperator,
  62. BOperatorType: taskAccount.BOperatorType,
  63. SOperator: taskAccount.SOperator,
  64. SOperatorType: taskAccount.SOperatorType,
  65. TaskStage: taskAccount.TaskStage,
  66. }
  67. }