mirror of
				https://gitee.com/dromara/mayfly-go
				synced 2025-11-04 08:20:25 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			95 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package vo
 | 
						|
 | 
						|
import "time"
 | 
						|
 | 
						|
type AccountResourceVO struct {
 | 
						|
	Id   int     `json:"id"`
 | 
						|
	Pid  int     `json:"pid"`
 | 
						|
	Name *string `json:"name"`
 | 
						|
	Code *string `json:"code"`
 | 
						|
	Type int8    `json:"type"`
 | 
						|
	Meta string  `json:"meta"`
 | 
						|
}
 | 
						|
 | 
						|
// 账号拥有的资源vo
 | 
						|
type AccountResourceVOList []AccountResourceVO
 | 
						|
 | 
						|
type resourceItem struct {
 | 
						|
	AccountResourceVO
 | 
						|
	Children []resourceItem `json:"children"`
 | 
						|
}
 | 
						|
 | 
						|
func (m *AccountResourceVOList) ToTrees(pid int) []resourceItem {
 | 
						|
	var resourceTree []resourceItem
 | 
						|
 | 
						|
	list := m.findChildren(pid)
 | 
						|
	if len(list) == 0 {
 | 
						|
		return resourceTree
 | 
						|
	}
 | 
						|
 | 
						|
	for _, v := range list {
 | 
						|
		Children := m.ToTrees(int(v.Id))
 | 
						|
		resourceTree = append(resourceTree, resourceItem{v, Children})
 | 
						|
	}
 | 
						|
 | 
						|
	return resourceTree
 | 
						|
}
 | 
						|
 | 
						|
func (m *AccountResourceVOList) findChildren(pid int) []AccountResourceVO {
 | 
						|
	child := []AccountResourceVO{}
 | 
						|
 | 
						|
	for _, v := range *m {
 | 
						|
		if v.Pid == pid {
 | 
						|
			child = append(child, v)
 | 
						|
		}
 | 
						|
	}
 | 
						|
	return child
 | 
						|
}
 | 
						|
 | 
						|
// 系统管理/资源管理
 | 
						|
type ResourceManageVO struct {
 | 
						|
	Id         int        `json:"id"`
 | 
						|
	Pid        int        `json:"pid"`
 | 
						|
	Name       string     `json:"name"`
 | 
						|
	Type       int        `json:"type"`
 | 
						|
	Status     int        `json:"status"`
 | 
						|
	Weight     int        `json:"weight"`
 | 
						|
	Meta       string     `json:"meta"`
 | 
						|
	Creator    string     `json:"creator"`
 | 
						|
	CreateTime *time.Time `json:"createTime"`
 | 
						|
}
 | 
						|
 | 
						|
type ResourceManageVOList []ResourceManageVO
 | 
						|
 | 
						|
type resourceManageItem struct {
 | 
						|
	ResourceManageVO
 | 
						|
	Children []resourceManageItem `json:"children"`
 | 
						|
}
 | 
						|
 | 
						|
func (m *ResourceManageVOList) ToTrees(pid int) []resourceManageItem {
 | 
						|
	var resourceTree []resourceManageItem
 | 
						|
 | 
						|
	list := m.findChildren(pid)
 | 
						|
	if len(list) == 0 {
 | 
						|
		return resourceTree
 | 
						|
	}
 | 
						|
 | 
						|
	for _, v := range list {
 | 
						|
		Children := m.ToTrees(int(v.Id))
 | 
						|
		resourceTree = append(resourceTree, resourceManageItem{v, Children})
 | 
						|
	}
 | 
						|
 | 
						|
	return resourceTree
 | 
						|
}
 | 
						|
 | 
						|
func (m *ResourceManageVOList) findChildren(pid int) []ResourceManageVO {
 | 
						|
	child := []ResourceManageVO{}
 | 
						|
 | 
						|
	for _, v := range *m {
 | 
						|
		if v.Pid == pid {
 | 
						|
			child = append(child, v)
 | 
						|
		}
 | 
						|
	}
 | 
						|
	return child
 | 
						|
}
 |