user_access_menu_dto.go 2.0 KB
package dto

import (
	"gitlab.fjmaimaimai.com/allied-creation/allied-creation-user/pkg/domain"
)

type UserAccessMenuDto []*Menu
type Menu struct {
	// 菜单编号
	MenuId int64 `json:"menuId,omitempty"`
	// 父级id
	ParentId int64 `json:"parentId,omitempty"`
	// 菜单名称
	MenuName string `json:"menuName,omitempty"`
	// 菜单别名
	//MenuAlias string `json:"menuAlias,omitempty"`
	// 菜单编码 SYSTEM_USER_EDIT / 100101 (字符编码)
	Code string `json:"code,omitempty"`
	// 权限编码 user:edit
	//AccessCode string `json:"accessCode,omitempty"`
	// 菜单类型 (目录catalog、菜单menu、按钮button)
	MenuType string `json:"menuType,omitempty"`
	// 菜单图标
	Icon string `json:"icon,omitempty"`
	// 排序
	Sort int `json:"sort,omitempty"`
	// 菜单说明
	//Remark string `json:"remark,omitempty"`
	// 菜单类别 (web:1、app:2)
	//Category string `json:"category,omitempty"`
	// 路径节点路径("0,11,12,")
	ParentPath string `json:"parentPath,omitempty"`
	// 菜单是否公开状态,[1:显示],[2:隐藏],默认显示
	//IsPublish int `json:"isPublish,omitempty"`
	// 启用状态(启用:1 禁用:2),默认启用
	EnableStatus int `json:"enableStatus,omitempty"`
	// 外链接(需要菜单跳转的时候使用)
	Link string `json:"link"`
}

func (dto *UserAccessMenuDto) LoadDto(menus []*domain.Menu) error {
	for i := range menus {
		v := menus[i]
		*dto = append(*dto, &Menu{
			MenuId:       v.MenuId,
			ParentId:     v.ParentId,
			MenuName:     v.MenuName,
			Code:         v.Code,
			MenuType:     v.MenuType,
			Icon:         v.Icon,
			Sort:         v.Sort,
			EnableStatus: v.EnableStatus,
			ParentPath:   v.ParentPath,
			Link:         v.Link,
		})
	}

	return nil
}

func (x UserAccessMenuDto) Len() int           { return len(x) }
func (x UserAccessMenuDto) Less(i, j int) bool { return x[i].MenuId < x[j].MenuId }
func (x UserAccessMenuDto) Swap(i, j int)      { x[i], x[j] = x[j], x[i] }

func NewUserAccessMenuDto() *UserAccessMenuDto {
	var dto UserAccessMenuDto = make([]*Menu, 0)
	return &dto
}