project._talent_list.go 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package pack
  2. import (
  3. "github.com/tidwall/gjson"
  4. "youngee_b_api/model/http_model"
  5. "github.com/issue9/conv"
  6. )
  7. func MGormProjectTalentToHttpProjectTaskPreview(gormProjectTalentInfos []*http_model.ProjectTalentInfo) []*http_model.ProjectTalentPreview {
  8. var httpProjectPreviews []*http_model.ProjectTalentPreview
  9. for _, gormProjectTalentInfo := range gormProjectTalentInfos {
  10. httpProjectTalentPreview := GormFullProjectToHttpProjectTalentPreview(gormProjectTalentInfo)
  11. httpProjectPreviews = append(httpProjectPreviews, httpProjectTalentPreview)
  12. }
  13. return httpProjectPreviews
  14. }
  15. func GormFullProjectToHttpProjectTalentPreview(projectTalentInfo *http_model.ProjectTalentInfo) *http_model.ProjectTalentPreview {
  16. deliveryTime := conv.MustString(projectTalentInfo.DeliveryTime)
  17. deliveryTime = deliveryTime[0:19]
  18. return &http_model.ProjectTalentPreview{
  19. TaskID: conv.MustString(projectTalentInfo.TaskID),
  20. PlatformNickname: conv.MustString(projectTalentInfo.PlatformNickname),
  21. FansCount: conv.MustString(projectTalentInfo.FansCount),
  22. StrategyID: conv.MustString(projectTalentInfo.StrategyID),
  23. DetailAddr: conv.MustString(projectTalentInfo.DetailAddr),
  24. CompanyName: conv.MustString(projectTalentInfo.CompanyName),
  25. LogisticsNumber: conv.MustString(projectTalentInfo.LogisticsNumber),
  26. DeliveryTime: deliveryTime,
  27. ExplorestorePeriod: conv.MustString(projectTalentInfo.ExplorestorePeriod),
  28. }
  29. }
  30. func TalentAccountToTaskInfo(talentAccounts []*http_model.TalentAccount) []*http_model.ProjectTalentInfo {
  31. var projectTalents []*http_model.ProjectTalentInfo
  32. for _, talentAccount := range talentAccounts {
  33. projectTalent := GetTalentInfoStruct(talentAccount)
  34. projectTalents = append(projectTalents, projectTalent)
  35. }
  36. return projectTalents
  37. }
  38. func GetTalentInfoStruct(talentAccount *http_model.TalentAccount) *http_model.ProjectTalentInfo {
  39. TalentPlatformInfoSnap := talentAccount.Talent.TalentPlatformInfoSnap
  40. TalentPostAddrSnap := talentAccount.Talent.TalentPostAddrSnap
  41. return &http_model.ProjectTalentInfo{
  42. TaskID: talentAccount.Talent.TaskID,
  43. PlatformNickname: conv.MustString(gjson.Get(TalentPlatformInfoSnap, "PlatformInfo.platform_name")),
  44. FansCount: conv.MustString(gjson.Get(TalentPlatformInfoSnap, "fans_count")),
  45. StrategyID: talentAccount.Talent.StrategyID,
  46. DetailAddr: conv.MustString(gjson.Get(TalentPostAddrSnap, "detail_addr")),
  47. CompanyName: talentAccount.Logistics.CompanyName,
  48. LogisticsNumber: talentAccount.Logistics.LogisticsNumber,
  49. DeliveryTime: talentAccount.Logistics.DeliveryTime,
  50. ExplorestorePeriod: talentAccount.Logistics.ExplorestorePeriod,
  51. }
  52. }