feat:完善项目管理
This commit is contained in:
49
app/api/website/controller/navigation.go
Normal file
49
app/api/website/controller/navigation.go
Normal file
@ -0,0 +1,49 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"SciencesServer/app/api/website/model"
|
||||
model2 "SciencesServer/app/common/model"
|
||||
)
|
||||
|
||||
type Navigation struct{}
|
||||
|
||||
type NavigationHandle func() *Navigation
|
||||
|
||||
type NavigationInfo struct {
|
||||
Title string `json:"title"`
|
||||
Link string `json:"link"`
|
||||
Children []*NavigationInfo `json:"children"`
|
||||
}
|
||||
|
||||
// tree 树状
|
||||
func (c *Navigation) tree(src []*model2.SysNavigation, parentID uint64) []*NavigationInfo {
|
||||
out := make([]*NavigationInfo, 0)
|
||||
|
||||
for _, v := range src {
|
||||
if v.ParentID == parentID {
|
||||
out = append(out, &NavigationInfo{
|
||||
Title: v.Title,
|
||||
Link: v.Link,
|
||||
Children: c.tree(src, v.ID),
|
||||
})
|
||||
}
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
// Instance 导航栏信息
|
||||
func (c *Navigation) Instance() ([]*NavigationInfo, error) {
|
||||
mSysNavigation := model.NewSysNavigation()
|
||||
out, err := mSysNavigation.Navigation()
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return c.tree(out, 0), nil
|
||||
}
|
||||
|
||||
func NewNavigation() NavigationHandle {
|
||||
return func() *Navigation {
|
||||
return &Navigation{}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user