product_service.go 2.6 KB

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