product.go 1.6 KB

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