package dao import ( "errors" "github.com/sirupsen/logrus" "gorm.io/gorm" "youngee_b_api/app/entity" ) type ProductDAO struct{} func (d ProductDAO) GetProductsByEnterpriseID(enterpriseId string) ([]entity.Product, error) { var products []entity.Product err := Db.Where("enterprise_id = ?", enterpriseId).Order("created_at desc").Find(&products).Error if err != nil { return nil, err } return products, nil } func (d ProductDAO) CreateProduct(product entity.Product) (int64, error) { err := Db.Create(&product).Error if err != nil { return 0, err } return product.ProductID, nil } func (d ProductDAO) GetProductByID(productId int64) (*entity.Product, error) { var product entity.Product err := Db.Where("product_id = ?", productId).First(&product).Error if err != nil { if errors.Is(err, gorm.ErrRecordNotFound) { return nil, nil } else { return nil, err } } return &product, nil } func (d ProductDAO) GetProductBySelectionId(selectionId string) (*entity.Product, error) { productId := 0 err := Db.Model(entity.SelectionInfo{}).Select("product_id").Where("selection_id = ?", selectionId).Find(&productId).Error if err != nil { logrus.Errorf("[GetProductInfo] error query mysql, err:%+v", err) return nil, err } productInfo := entity.Product{} err = Db.Model(entity.Product{}).Where("product_id = ?", productId).Find(&productInfo).Error if err != nil { logrus.Errorf("[GetProductInfo] error query mysql, err:%+v", err) return nil, err } return &productInfo, nil }