api.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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) UpdataApi() (err error) {
  28. err = qmsql.DEFAULTDB.Save(a).Error
  29. return err
  30. }
  31. func (a *Api) GetApiById(id float64)(err error,api Api){
  32. err = qmsql.DEFAULTDB.Where("id = ?",id).First(&api).Error
  33. return
  34. }
  35. // 分页获取数据 需要分页实现这个接口即可
  36. func (a *Api) GetInfoList(info modelInterface.PageInfo) (err error, list interface{}, total int) {
  37. // 封装分页方法 调用即可 传入 当前的结构体和分页信息
  38. err, db, total := servers.PagingServer(a, info)
  39. if err != nil {
  40. return
  41. } else {
  42. var apiList []Api
  43. err = db.Find(&apiList).Error
  44. return err, apiList, total
  45. }
  46. }