feature: 自动关联可能的apiGroup

This commit is contained in:
pixelMax(奇淼
2024-07-26 11:15:02 +08:00
parent 4814f21017
commit 7ad6b9c32a
2 changed files with 26 additions and 4 deletions

View File

@@ -8,6 +8,7 @@ import (
"github.com/flipped-aurora/gin-vue-admin/server/model/system"
systemRes "github.com/flipped-aurora/gin-vue-admin/server/model/system/response"
"gorm.io/gorm"
"strings"
)
//@author: [piexlmax](https://github.com/piexlmax)
@@ -27,8 +28,26 @@ func (apiService *ApiService) CreateApi(api system.SysApi) (err error) {
return global.GVA_DB.Create(&api).Error
}
func (apiService *ApiService) GetApiGroups() (groups []string, err error) {
err = global.GVA_DB.Model(&system.SysApi{}).Select("DISTINCT api_group").Pluck("api_group", &groups).Error
func (apiService *ApiService) GetApiGroups() (groups []string, groupApiMap map[string]string, err error) {
var apis []system.SysApi
err = global.GVA_DB.Find(&apis).Error
if err != nil {
return
}
groupApiMap = make(map[string]string, 0)
for i := range apis {
pathArr := strings.Split(apis[i].Path, "/")
newGroup := true
for i2 := range groups {
if groups[i2] == apis[i].ApiGroup {
newGroup = false
}
}
if newGroup {
groups = append(groups, apis[i].ApiGroup)
}
groupApiMap[pathArr[1]] = apis[i].ApiGroup
}
return
}