application.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package services
  2. import (
  3. "errors"
  4. "github.com/gogf/gf/util/guid"
  5. "sparrow/pkg/generator"
  6. "sparrow/pkg/models"
  7. "sparrow/services/knowoapi/model"
  8. )
  9. // ApplicationService 业务接口
  10. type ApplicationService interface {
  11. Create(*models.Application) error
  12. Delete(*models.Application) error
  13. Update(*models.Application) (models.Application, error)
  14. // 查询App信息
  15. // 参数 :厂商ID,APPKey
  16. GetAppInfo(string, string) (models.Application, error)
  17. GetVendorApps(vendorid string, pi, ps int, name string) ([]models.Application, int, error)
  18. }
  19. type appService struct {
  20. model *model.All
  21. keyGen *generator.KeyGenerator
  22. }
  23. // NewAppService new app service
  24. func NewAppService(model *model.All, gen *generator.KeyGenerator) ApplicationService {
  25. return appService{
  26. model: model,
  27. keyGen: gen,
  28. }
  29. }
  30. func (a appService) Create(app *models.Application) error {
  31. app.RecordId = guid.S()
  32. count, err := a.model.Application.GetAppCount(app.VendorID)
  33. if err != nil {
  34. return err
  35. }
  36. if count > 0 {
  37. return errors.New("一个厂商只能创建一个app")
  38. }
  39. err = a.model.Application.Create(app)
  40. if err != nil {
  41. return err
  42. }
  43. app.AppKey, _ = a.keyGen.GenRandomKey(app.RecordId)
  44. app.SecretKey, _ = generator.GenRandomPassword()
  45. return a.model.Application.Create(app)
  46. }
  47. func (a appService) Delete(app *models.Application) error {
  48. return a.model.Application.Delete(app)
  49. }
  50. func (a appService) Update(app *models.Application) (models.Application, error) {
  51. return a.model.Application.Update(app)
  52. }
  53. func (a appService) GetAppInfo(vendorid string, key string) (models.Application, error) {
  54. return a.model.Application.GetAppInfo(vendorid, key)
  55. }
  56. func (a appService) GetVendorApps(vendorid string, pi, ps int, name string) ([]models.Application, int, error) {
  57. return a.model.Application.GetVendorApps(vendorid, pi, ps, name)
  58. }