product_dao.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package dao
  2. import (
  3. "errors"
  4. "github.com/sirupsen/logrus"
  5. "gorm.io/gorm"
  6. "youngee_b_api/app/entity"
  7. )
  8. type ProductDAO struct{}
  9. func (d ProductDAO) GetProductsByEnterpriseID(enterpriseId string) ([]entity.Product, error) {
  10. var products []entity.Product
  11. err := Db.Where("enterprise_id = ?", enterpriseId).Order("created_at desc").Find(&products).Error
  12. if err != nil {
  13. return nil, err
  14. }
  15. return products, nil
  16. }
  17. func (d ProductDAO) CreateProduct(product entity.Product) (int64, error) {
  18. err := Db.Create(&product).Error
  19. if err != nil {
  20. return 0, err
  21. }
  22. return product.ProductID, nil
  23. }
  24. func (d ProductDAO) GetProductByID(productId int64) (*entity.Product, error) {
  25. var product entity.Product
  26. err := Db.Where("product_id = ?", productId).First(&product).Error
  27. if err != nil {
  28. if errors.Is(err, gorm.ErrRecordNotFound) {
  29. return nil, nil
  30. } else {
  31. return nil, err
  32. }
  33. }
  34. return &product, nil
  35. }
  36. func (d ProductDAO) GetProductBySelectionId(selectionId string) (*entity.Product, error) {
  37. productId := 0
  38. err := Db.Model(entity.SelectionInfo{}).Select("product_id").Where("selection_id = ?", selectionId).Find(&productId).Error
  39. if err != nil {
  40. logrus.Errorf("[GetProductInfo] error query mysql, err:%+v", err)
  41. return nil, err
  42. }
  43. productInfo := entity.Product{}
  44. err = Db.Model(entity.Product{}).Where("product_id = ?", productId).Find(&productInfo).Error
  45. if err != nil {
  46. logrus.Errorf("[GetProductInfo] error query mysql, err:%+v", err)
  47. return nil, err
  48. }
  49. return &productInfo, nil
  50. }