api.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package dbModel
  2. import (
  3. "github.com/jinzhu/gorm"
  4. "github.com/pkg/errors"
  5. "main/controller/servers"
  6. "main/init/qmsql"
  7. "main/model/modelInterface"
  8. )
  9. type Api struct {
  10. gorm.Model
  11. Path string `json:"path"`
  12. Description string `json:"description"`
  13. }
  14. func (a *Api) CreateApi() (err error) {
  15. findOne := qmsql.DEFAULTDB.Where("path = ?", a.Path).Find(&Menu{}).Error
  16. if findOne != nil {
  17. return errors.New("存在相同api")
  18. } else {
  19. err = qmsql.DEFAULTDB.Create(a).Error
  20. }
  21. return err
  22. }
  23. func (a *Api) DeleteApi() (err error) {
  24. err = qmsql.DEFAULTDB.Where("path = ?", a.Path).Delete(a).Delete(&ApiAuthority{}).Error
  25. return err
  26. }
  27. func (a *Api) EditApi() (err error) {
  28. err = qmsql.DEFAULTDB.Update(a).Error
  29. err = qmsql.DEFAULTDB.Where("path = ?",a.Path).Update("path",a.Path).Error
  30. return err
  31. }
  32. // 分页获取数据 需要分页实现这个接口即可
  33. func (a *Api) GetInfoList(info modelInterface.PageInfo) (err error, list interface{}, total int) {
  34. // 封装分页方法 调用即可 传入 当前的结构体和分页信息
  35. err, db, total := servers.PagingServer(a, info)
  36. if err != nil {
  37. return
  38. } else {
  39. var apiList []Api
  40. err = db.Find(&apiList).Error
  41. return err, apiList, total
  42. }
  43. }