product.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package service
  2. import (
  3. "context"
  4. "youngee_b_api/db"
  5. "youngee_b_api/model/gorm_model"
  6. "youngee_b_api/model/http_model"
  7. )
  8. var Product *product
  9. type product struct {
  10. }
  11. func (*product) CreateProduct(ctx context.Context, newProduct http_model.CreateProductRequest) (*http_model.CreateProductData, error) {
  12. product := gorm_model.YounggeeProduct{
  13. ProductName: newProduct.ProductName,
  14. ProductType: newProduct.ProductType,
  15. ShopAddress: newProduct.ShopAddress,
  16. ProductPrice: newProduct.ProductPrice,
  17. ProductUrl: newProduct.ProductUrl,
  18. EnterpriseID: newProduct.EnterpriseID,
  19. BrandName: newProduct.BrandName,
  20. }
  21. productID, err := db.CreateProduct(ctx, product)
  22. if err != nil {
  23. return nil, err
  24. } else {
  25. productPhotos := []gorm_model.YounggeeProductPhoto{}
  26. for _, photo := range newProduct.ProductPhotos {
  27. productPhoto := gorm_model.YounggeeProductPhoto{
  28. PhotoUrl: photo.PhotoUrl,
  29. Symbol: photo.Symbol,
  30. ProductID: *productID,
  31. }
  32. productPhotos = append(productPhotos, productPhoto)
  33. }
  34. err := db.CreateProductPhoto(ctx, productPhotos)
  35. if err != nil {
  36. return nil, err
  37. }
  38. }
  39. res := &http_model.CreateProductData{
  40. ProductID: *productID,
  41. }
  42. return res, nil
  43. }