create_menu.go 1.8 KB
package command

import (
	"fmt"
	"github.com/beego/beego/v2/core/validation"
)

type CreateMenuCommand struct {
	// 父级id
	ParentId int64 `json:"parentId,omitempty"`
	// 菜单名称
	MenuName string `json:"menuName" valid:"Required"`
	// 菜单编码 SYSTEM_USER_EDIT / 100101 (字符编码)
	Code string `json:"code" valid:"Required"`
	// 权限编码 user:edit
	AccessCode string `json:"accessCode"`
	// 菜单类型 (目录catalog、菜单menu、按钮button)
	MenuType string `json:"menuType" valid:"Required"`
	// 菜单图标
	Icon string `json:"icon,omitempty"`
	// 排序
	Sort int `json:"sort" valid:"Required"`
	// 菜单说明
	Desc string `json:"desc,omitempty"`
	// 菜单是否公开状态,[2:隐藏],[1:显示],默认显示
	IsPublish int `json:"isPublish" valid:"Required"`
	// 启用状态(启用:1 禁用:2),默认启用
	EnableStatus int `json:"enableStatus" `
	// 外链接(需要菜单跳转的时候使用)
	Link string `json:"link"`
}

func (createMenuCommand *CreateMenuCommand) Valid(validation *validation.Validation) {

}

func (createMenuCommand *CreateMenuCommand) ValidateCommand() error {
	valid := validation.Validation{}
	b, err := valid.Valid(createMenuCommand)
	if err != nil {
		return err
	}
	if !b {
		for _, validErr := range valid.Errors {
			return fmt.Errorf("%s  %s", validErr.Key, validErr.Message)
		}
	}
	return nil

	//valid := validation.Validation{}
	//b, err := valid.Valid(createMenuCommand)
	//if err != nil {
	//	return err
	//}
	//if !b {
	//	elem := reflect.TypeOf(createMenuCommand).Elem()
	//	for _, validErr := range valid.Errors {
	//		field, isExist := elem.FieldByName(validErr.Field)
	//		if isExist {
	//			return fmt.Errorf(strings.Replace(validErr.Message, validErr.Field, field.Tag.Get("cname"), -1))
	//		} else {
	//			return fmt.Errorf(validErr.Message)
	//		}
	//	}
	//}
	//return nil
}