selection_square.go 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package pack
  2. import (
  3. "encoding/json"
  4. "github.com/caixw/lib.go/conv"
  5. "github.com/tidwall/gjson"
  6. "strconv"
  7. "youngee_b_api/consts"
  8. "youngee_b_api/model/gorm_model"
  9. "youngee_b_api/model/http_model"
  10. )
  11. func GetSelectionSquareCondition(req http_model.GetAllSelectionRequest) http_model.SelectionSquareCondition {
  12. return http_model.SelectionSquareCondition{
  13. ProductType: req.ProductType,
  14. Platform: req.Platform,
  15. SampleMode: req.SampleMode,
  16. TaskMode: req.TaskMode,
  17. }
  18. }
  19. func GormSelectionListToSelectionBriefInfoList(gormSelectionInfos []*gorm_model.YounggeeSelectionInfo) []*http_model.SelectionBriefInfo {
  20. var httpSelectionPreviews []*http_model.SelectionBriefInfo
  21. for _, gormSelectionInfo := range gormSelectionInfos {
  22. selectionBriefInfo := GormSelectionToSelectionBriefInfo(gormSelectionInfo)
  23. httpSelectionPreviews = append(httpSelectionPreviews, selectionBriefInfo)
  24. }
  25. return httpSelectionPreviews
  26. }
  27. func GormSelectionToSelectionBriefInfo(selectionInfo *gorm_model.YounggeeSelectionInfo) *http_model.SelectionBriefInfo {
  28. icon := consts.GetPaltformIcon(selectionInfo.Platform)
  29. productPrice := conv.MustString(gjson.Get(selectionInfo.ProductSnap, "ProductPrice"), "")
  30. price, _ := strconv.ParseFloat(productPrice, 64)
  31. estimatedIncome := price * float64(selectionInfo.CommissionRate) / 100
  32. var photoUrl string
  33. var p []gorm_model.YounggeeProductPhoto
  34. _ = json.Unmarshal([]byte(selectionInfo.ProductPhotoSnap), &p)
  35. for _, v := range p {
  36. if v.Symbol == 1 {
  37. photoUrl = v.PhotoUrl
  38. }
  39. }
  40. return &http_model.SelectionBriefInfo{
  41. SelectionId: selectionInfo.SelectionID,
  42. SelectionName: selectionInfo.SelectionName,
  43. Platform: selectionInfo.Platform,
  44. //ProductSnap: selectionInfo.ProductSnap,
  45. PlatformIcon: icon,
  46. ProductPrice: price,
  47. //ProductPhotoSnap: selectionInfo.ProductPhotoSnap,
  48. EstimatedIncome: estimatedIncome,
  49. CommissionRate: selectionInfo.CommissionRate,
  50. SampleMode: selectionInfo.SampleMode,
  51. TaskMode: selectionInfo.TaskMode,
  52. PhotoUrl: photoUrl,
  53. TaskReward: conv.MustFloat64(selectionInfo.TaskReward, 64),
  54. }
  55. }