123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- package dao
- import (
- "fmt"
- "server/global"
- )
- type SysApi struct {
- global.GVA_MODEL
- Path string `json:"path" gorm:"comment:api路径"` // api路径
- Description string `json:"description" gorm:"comment:api中文描述"` // api中文描述
- ApiGroup string `json:"apiGroup" gorm:"comment:api组"` // api组
- Method string `json:"method" gorm:"default:POST;comment:方法"` // 方法:创建POST(默认)|查看GET|更新PUT|删除DELETE
- }
- func (SysApi) TableName() string {
- return "sys_apis"
- }
- // TODO:Api查询
- // QueryApiByPathMethod 查询api 按路径和方法
- func QueryApiByPathMethod(path, method string) (sysApi SysApi, err error) {
- err = global.GVA_DB.Where("path = ? AND method = ?", path, method).First(&sysApi).Error
- return
- }
- // QueryApiById 查询api 按id
- func QueryApiById(id uint) (sysApi SysApi, err error) {
- err = global.GVA_DB.First(&sysApi, "id = ?", id).Error
- return
- }
- //@author: [piexlmax](https://github.com/piexlmax)
- //@function: GetAPIInfoList
- //@description: 分页获取数据,
- //@param: api model.SysApi, info request.PageInfo, order string, desc bool
- //@return: list interface{}, total int64, err error
- func (api SysApi) GetAPIInfoList(limit, offset int, order string, desc bool) (apiList []SysApi, total int64, err error) {
- db := global.GVA_DB.Model(&SysApi{})
- if api.Path != "" {
- db = db.Where("path LIKE ?", "%"+api.Path+"%")
- }
- if api.Description != "" {
- db = db.Where("description LIKE ?", "%"+api.Description+"%")
- }
- if api.Method != "" {
- db = db.Where("method = ?", api.Method)
- }
- if api.ApiGroup != "" {
- db = db.Where("api_group = ?", api.ApiGroup)
- }
- err = db.Count(&total).Error
- if err != nil {
- return apiList, total, err
- }
- db = db.Limit(limit).Offset(offset)
- OrderStr := "id desc"
- if order != "" {
- orderMap := make(map[string]bool, 5)
- orderMap["id"] = true
- orderMap["path"] = true
- orderMap["api_group"] = true
- orderMap["description"] = true
- orderMap["method"] = true
- if !orderMap[order] {
- err = fmt.Errorf("非法的排序字段: %v", order)
- return apiList, total, err
- }
- OrderStr = order
- if desc {
- OrderStr = order + " desc"
- }
- }
- err = db.Order(OrderStr).Find(&apiList).Error
- return apiList, total, err
- }
- // GetAllApis 查询所有api
- func GetAllApis() (apis []SysApi, err error) {
- err = global.GVA_DB.Find(&apis).Error
- return
- }
- // TODO:Api新增
- // CreateApi 新增api
- func (api SysApi) CreateApi() error {
- return global.GVA_DB.Create(&api).Error
- }
- // TODO:Api修改
- // SaveApi 更新api
- func (api SysApi) SaveApi() error {
- return global.GVA_DB.Save(&api).Error
- }
- // TODO:Api删除
- // DeleteApi 删除api
- func (api SysApi) DeleteApi() error {
- return global.GVA_DB.Delete(&api).Error
- }
|