product.go 1014 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package model
  2. import (
  3. "sparrow/pkg/models"
  4. "github.com/jinzhu/gorm"
  5. )
  6. // Product ``
  7. type Product struct {
  8. db *gorm.DB
  9. }
  10. // Init 初始化
  11. func (a *Product) Init(_db *gorm.DB) *Product {
  12. a.db = _db
  13. return a
  14. }
  15. //Create 添加
  16. func (a *Product) Create(product *models.Product) error {
  17. return a.db.Save(product).Error
  18. }
  19. // Delete 删除
  20. func (a *Product) Delete(product *models.Product) error {
  21. return a.db.Delete(product).Error
  22. }
  23. // Update 更新
  24. func (a *Product) Update(product *models.Product) (pro models.Product, err error) {
  25. err = a.db.Model(&pro).Update(product).Error
  26. return
  27. }
  28. // GetVendorProducts 获取厂商的产品列表
  29. func (a *Product) GetVendorProducts(vendorid uint, pi, ps int, name string) (datas []models.Product, total int, err error) {
  30. tx := a.db.Where("vendor_id = ? and 1=1", vendorid)
  31. if name != "" {
  32. tx = tx.Where("product_name like ?", "%"+name+"%")
  33. }
  34. err = tx.Limit(ps).Offset((pi - 1) * ps).Find(&datas).Error
  35. tx.Model(&models.Product{}).Count(&total)
  36. return
  37. }