product_service.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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. enterpriseId := param.EnterpriseId
  31. if enterpriseId == "" {
  32. return result, errors.New("enterpriseId is empty")
  33. }
  34. products, total, err = (&dao.ProductDAO{}).GetProductsByEnterpriseIDAndTypeTitle(enterpriseId, param.ProductType, param.ProductTitle, param.Page, param.PageSize)
  35. if err != nil {
  36. // 数据库查询error
  37. return result, err
  38. }
  39. var reProducts []vo.ReTaskProduct
  40. for _, product := range products {
  41. photoUrl, e := dao.ProductPhotoDAO{}.GetMainPhotoByProductID(product.ProductID)
  42. if e != nil {
  43. photoUrl = ""
  44. }
  45. reProduct := vo.ReTaskProduct{
  46. ProductID: product.ProductID,
  47. ProductName: product.ProductName,
  48. ProductType: product.ProductType,
  49. ProductCategory: product.ProductCategory,
  50. ProductPrice: product.ProductPrice,
  51. ProductDetail: product.ProductDetail,
  52. CreatedAt: product.CreatedAt.Format("2006-01-02 15:04:05"),
  53. PhotoUrl: photoUrl,
  54. }
  55. reProducts = append(reProducts, reProduct)
  56. }
  57. result = vo.ResultVO{
  58. Page: param.Page,
  59. PageSize: param.PageSize,
  60. Total: total,
  61. Data: reProducts,
  62. }
  63. return result, nil
  64. }
  65. func (p ProductService) CreateProduct(productCreateParam *vo.ProductCreateParam) (int64, error) {
  66. product := entity.Product{
  67. KuaishouProductId: productCreateParam.ProductId,
  68. ProductName: productCreateParam.ProductName,
  69. ProductCategory: productCreateParam.ProductCategory,
  70. ProductPrice: productCreateParam.ProductPrice,
  71. ProductDetail: productCreateParam.ProductDetail,
  72. EnterpriseID: productCreateParam.EnterpriseId,
  73. SubAccountID: productCreateParam.SubAccountId,
  74. ExclusiveCommission: productCreateParam.ExclusiveCommission,
  75. CommissionPrice: productCreateParam.CommissionPrice,
  76. PublicCommission: productCreateParam.PublicCommission,
  77. ProductUrl: productCreateParam.ProductUrl,
  78. }
  79. productID, err := dao.ProductDAO{}.CreateProduct(product)
  80. if err != nil {
  81. return 0, err
  82. }
  83. if productCreateParam.ProductPhotos != nil {
  84. productPhotos := []entity.ProductPhoto{}
  85. for _, photo := range productCreateParam.ProductPhotos {
  86. productPhoto := entity.ProductPhoto{
  87. PhotoUrl: photo.PhotoUrl,
  88. PhotoUid: photo.PhotoUid,
  89. Symbol: photo.Symbol,
  90. ProductID: productID,
  91. CreatedAt: time.Now(),
  92. }
  93. productPhotos = append(productPhotos, productPhoto)
  94. }
  95. err = dao.ProductPhotoDAO{}.CreateProductPhoto(productPhotos)
  96. if err != nil {
  97. return 0, err
  98. }
  99. }
  100. return productID, nil
  101. }