api.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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. Group string `json:"group"`
  14. }
  15. func (a *Api) CreateApi() (err error) {
  16. findOne := qmsql.DEFAULTDB.Where("path = ?", a.Path).Find(&Menu{}).Error
  17. if findOne == nil {
  18. return errors.New("存在相同api")
  19. } else {
  20. err = qmsql.DEFAULTDB.Create(a).Error
  21. }
  22. return err
  23. }
  24. func (a *Api) DeleteApi() (err error) {
  25. err = qmsql.DEFAULTDB.Where("path = ?", a.Path).Delete(a).Delete(&ApiAuthority{}).Error
  26. return err
  27. }
  28. func (a *Api) UpdataApi() (err error) {
  29. err = qmsql.DEFAULTDB.Save(a).Error
  30. return err
  31. }
  32. func (a *Api) GetApiById(id float64)(err error,api Api){
  33. err = qmsql.DEFAULTDB.Where("id = ?",id).First(&api).Error
  34. return
  35. }
  36. // 获取所有api信息
  37. func (a *Api)GetAllApis()(err error,apis []Api){
  38. err = qmsql.DEFAULTDB.Find(&apis).Error
  39. return
  40. }
  41. // 分页获取数据 需要分页实现这个接口即可
  42. func (a *Api) GetInfoList(info modelInterface.PageInfo) (err error, list interface{}, total int) {
  43. // 封装分页方法 调用即可 传入 当前的结构体和分页信息
  44. err, db, total := servers.PagingServer(a, info)
  45. if err != nil {
  46. return
  47. } else {
  48. var apiList []Api
  49. err = db.Order("group").Find(&apiList).Error
  50. return err, apiList, total
  51. }
  52. }