product_service.go 2.8 KB

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