product_service.go 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package service
  2. import (
  3. "errors"
  4. "time"
  5. "youngee_b_api/app/dao"
  6. "youngee_b_api/app/entity"
  7. "youngee_b_api/app/vo"
  8. )
  9. type ProductService struct{}
  10. func (p ProductService) GetTaskProductsByUserId(param vo.GetAllProductParam) (vo.ResultVO, error) {
  11. if param.Page == 0 {
  12. param.Page = 1
  13. }
  14. if param.PageSize == 0 {
  15. param.PageSize = 10
  16. }
  17. var result vo.ResultVO
  18. var products []entity.Product
  19. var err error
  20. var total int64
  21. if param.SubAccountId == 0 {
  22. enterpriseId := param.EnterpriseId
  23. if enterpriseId == "" {
  24. return result, errors.New("enterpriseId is empty")
  25. }
  26. products, total, err = (&dao.ProductDAO{}).GetProductsByEnterpriseID(enterpriseId, param.Page, param.PageSize)
  27. } else {
  28. products, total, err = (&dao.ProductDAO{}).GetProductsBySubAccountId(param.SubAccountId, param.Page, param.PageSize)
  29. }
  30. if err != nil {
  31. // 数据库查询error
  32. return result, err
  33. }
  34. var reProducts []vo.ReTaskProduct
  35. for _, product := range products {
  36. photoUrl, e := dao.ProductPhotoDAO{}.GetMainPhotoByProductID(product.ProductID)
  37. if e != nil {
  38. photoUrl = ""
  39. }
  40. reProduct := vo.ReTaskProduct{
  41. ProductID: product.ProductID,
  42. ProductName: product.ProductName,
  43. ProductType: product.ProductType,
  44. ProductCategory: product.ProductCategory,
  45. ProductPrice: product.ProductPrice,
  46. ProductDetail: product.ProductDetail,
  47. CreatedAt: product.CreatedAt,
  48. PhotoUrl: photoUrl,
  49. }
  50. reProducts = append(reProducts, reProduct)
  51. }
  52. result = vo.ResultVO{
  53. Page: param.Page,
  54. PageSize: param.PageSize,
  55. Total: total,
  56. Data: reProducts,
  57. }
  58. return result, nil
  59. }
  60. func (p ProductService) CreateProduct(productCreateParam *vo.ProductCreateParam) (int64, error) {
  61. product := entity.Product{
  62. KuaishouProductId: productCreateParam.ProductId,
  63. ProductName: productCreateParam.ProductName,
  64. ProductCategory: productCreateParam.ProductCategory,
  65. ProductPrice: productCreateParam.ProductPrice,
  66. ProductDetail: productCreateParam.ProductDetail,
  67. EnterpriseID: productCreateParam.EnterpriseId,
  68. SubAccountID: productCreateParam.SubAccountId,
  69. ExclusiveCommission: productCreateParam.ExclusiveCommission,
  70. CommissionPrice: productCreateParam.CommissionPrice,
  71. PublicCommission: productCreateParam.PublicCommission,
  72. ProductUrl: productCreateParam.ProductUrl,
  73. }
  74. productID, err := dao.ProductDAO{}.CreateProduct(product)
  75. if err != nil {
  76. return 0, err
  77. }
  78. if productCreateParam.ProductPhotos != nil {
  79. productPhotos := []entity.ProductPhoto{}
  80. for _, photo := range productCreateParam.ProductPhotos {
  81. productPhoto := entity.ProductPhoto{
  82. PhotoUrl: photo.PhotoUrl,
  83. PhotoUid: photo.PhotoUid,
  84. Symbol: photo.Symbol,
  85. ProductID: productID,
  86. CreatedAt: time.Time{},
  87. }
  88. productPhotos = append(productPhotos, productPhoto)
  89. }
  90. err = dao.ProductPhotoDAO{}.CreateProductPhoto(productPhotos)
  91. if err != nil {
  92. return 0, err
  93. }
  94. }
  95. return productID, nil
  96. }