product.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package services
  2. import (
  3. "sparrow/pkg/generator"
  4. "sparrow/pkg/models"
  5. "sparrow/services/knowoapi/model"
  6. )
  7. //ProductService 业务接口
  8. type ProductService interface {
  9. Create(*models.Product) error
  10. Delete(*models.Product) error
  11. Update(*models.Product) (models.Product, error)
  12. // 查询厂商所有产品列表
  13. GetVendorProducts(vendorid uint, pi, ps int, name string) ([]models.Product, int, error)
  14. // 查询单个产品信息
  15. //参数:厂商ID,产品KEY
  16. QueryOne(uint, string) (models.Product, error)
  17. }
  18. type productService struct {
  19. model *model.All
  20. keyGen *generator.KeyGenerator
  21. }
  22. // NewProductService ·
  23. func NewProductService(pm *model.All, gen *generator.KeyGenerator) ProductService {
  24. return &productService{
  25. model: pm,
  26. keyGen: gen,
  27. }
  28. }
  29. func (p *productService) Create(product *models.Product) error {
  30. err := p.model.Product.Create(product)
  31. if err != nil {
  32. return err
  33. }
  34. product.ProductKey, _ = p.keyGen.GenRandomKey(int64(product.ID))
  35. return p.model.Product.Create(product)
  36. }
  37. func (p *productService) Delete(pro *models.Product) error {
  38. return p.model.Product.Delete(pro)
  39. }
  40. func (p *productService) Update(pro *models.Product) (models.Product, error) {
  41. return p.model.Product.Update(pro)
  42. }
  43. func (p *productService) GetVendorProducts(vendorid uint, pi, ps int, name string) ([]models.Product, int, error) {
  44. return p.model.Product.GetVendorProducts(vendorid, pi, ps, name)
  45. }
  46. func (p *productService) QueryOne(vendorid uint, key string) (models.Product, error) {
  47. return p.model.Product.QueryOne(key, vendorid)
  48. }