package com.monkeylessey.sys.domain.form;
|
|
import com.monkeylessey.sys.domain.base.AbsForm;
|
import com.monkeylessey.sys.domain.entity.SysMenu;
|
import com.monkeylessey.enums.general.MenuTypeEnum;
|
import com.monkeylessey.enums.general.StatusEnum;
|
import com.monkeylessey.exception.ServiceException;
|
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModelProperty;
|
import lombok.Data;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.BeanUtils;
|
|
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotNull;
|
|
/**
|
* @author 29443
|
* @date 2022/5/14
|
*/
|
@Data
|
@ApiModel
|
public class SysMenuForm extends AbsForm {
|
|
|
@ApiModelProperty("菜单名")
|
@NotBlank(message = "菜单名不能为空")
|
private String menuName;
|
|
@NotNull(message = "菜单类型不能为空")
|
@ApiModelProperty(value = "菜单分类,0目录,1菜单,2按钮")
|
private MenuTypeEnum menuType;
|
|
@NotNull(message = "菜单状态不能为空")
|
@ApiModelProperty(value = "0可用,1停用")
|
private StatusEnum status;
|
|
@ApiModelProperty("菜单图标")
|
private String menuIcon;
|
|
@ApiModelProperty("菜单路径")
|
private String menuPath;
|
|
@ApiModelProperty("路由名")
|
private String routerName;
|
|
@ApiModelProperty("路由组件")
|
private String routerComponent;
|
|
@ApiModelProperty("权限")
|
private String permission;
|
|
@ApiModelProperty("排序")
|
private Integer orderNum;
|
|
@ApiModelProperty("父级")
|
private String parentId;
|
|
|
public static SysMenu getMenuEntity(SysMenu menuEntity, SysMenuForm menuForm) {
|
if (menuEntity == null) {
|
menuEntity = new SysMenu();
|
}
|
BeanUtils.copyProperties(menuForm, menuEntity);
|
return menuEntity;
|
}
|
|
public void checkNotBlank() {
|
// 非按钮不能为空
|
if (! MenuTypeEnum.BUTTON.equals(this.menuType)) {
|
if (StringUtils.isBlank(this.menuPath)) {
|
throw new ServiceException("菜单路径不能为空");
|
}
|
if (StringUtils.isBlank(this.routerName)) {
|
throw new ServiceException("路由名称不能为空");
|
}
|
if (StringUtils.isBlank(this.routerComponent)) {
|
throw new ServiceException("路由组件不能为空");
|
}
|
}
|
}
|
|
}
|