Enum枚举前后端传输展示方案

1、定义枚举类型

public enum RolesTypeEnum implements Enumerator {

    MANAGER("管理员", 0),
    BUSINESS("招商员工", 1),

    PROPERTY("物业员工", 2),

    FINANCE("财务员工", 3),

    EMPLOYEE("普通员工", 4),

    ENTERPRISE("企业员工", 5);

    @JsonValue
    private String desc;

    @EnumValue
    private Integer code;

    RolesTypeEnum(String desc, Integer code) {
        this.desc = desc;
        this.code = code;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    @Override
    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

}

注意:枚举需实现Enumerator 接口 且使用 @JsonValue 和@EnumValue 注解

3、表对应的实体类

@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sys_role")
@ApiModel(value="系统角色对象", description="系统角色表")
public class RoleEntity extends BaseEntity {

    private static final long serialVersionUID = 6671763345245442206L;

    /**
     * 系统角色代码
     */
    @ApiModelProperty(value = "系统角色代码")
    @TableField("ROLE_CODE")
    private String roleCode;

	/**
     * 系统角色名称
     */
    @ApiModelProperty(value = "系统角色名称")
    @TableField("ROLE_NAME")
    private String roleName;

	/**
     * 系统角色描述
     */
    @ApiModelProperty(value = "系统角色描述")
    @TableField("ROLE_DESC")
    private String roleDesc;

	/**
     * 角色类型
     */
    @ApiModelProperty(value = "角色类型")
    @TableField("ROLES_TYPE")
    private RolesTypeEnum rolesType;

}

 

2、新增编辑传输对象

@Data
@ApiModel(value="系统角色编辑传输对象", description="系统角色编辑传输对象")
public class RoleSaveDto implements Serializable {

	/**
     * 主键ID
     */
    @ApiModelProperty(value = "主键ID")
    @JSONField(serializeUsing = ToStringSerializer.class)
    private Long id;

	/**
     * 角色名称
     */
    @ApiModelProperty(value = "角色名称")
    @NotBlank(message = "角色名称不能为空")
    private String roleName;

	/**
     * 角色描述
     */
    @ApiModelProperty(value = "角色描述")
    @NotBlank(message = "角色描述不能为空")
    private String roleDesc;

	/**
     * 角色类型
     */
    @ApiModelProperty(value = "角色类型 (类型:com.xxx.enums.RolesTypeEnum)")
    @NotNull(message = "角色类型不能为空")
    @JsonDeserialize(using = JacksonEnumConverter.class)
    private RolesTypeEnum rolesType;

}

 

3、前端查询需要的枚举类型

 @ApiOperation(value = "根据数据类型查询枚举类型", notes = "根据数据类型查询枚举类型")
 @RequestMapping(value = "findOfEnum", method = RequestMethod.GET)
 public ResultVo<List<DictDataVo>> listOfEnum(@ApiParam(value = "类型", required = true) 
                                         @RequestParam String enumName) throws Exception {
     List<DictDataVo> result = new ArrayList<>();
     // 获取所有常量
     Object[] objects = Class.forName(enumName).getEnumConstants();
     //获取指定方法
     Method coinAddressName = c.getMethod("getDesc");
     Method coinAddressCode = c.getMethod("getCode");
     for (Object obj : objects) {
         DictDataVo vo = new DictDataVo();
         vo.setId(Long.parseLong(coinAddressCode.invoke(obj).toString()));
         vo.setParamName(coinAddressName.invoke(obj).toString());
         result.add(vo);
     }
     List<DictDataVo> result = getDictDataVo(Class.forName(enumName));
     return ResultVo.success(result);
 }

 

4、后端返回视图对象

@Data
@ApiModel(value="角色分页视图对象", description="角色分页视图对象")
public class RolePageVo implements Serializable {

    private static final long serialVersionUID = -2014879475982660328L;

    /**
     * 主键ID
     */
    @ApiModelProperty(value = "主键ID")
    @JSONField(serializeUsing = ToStringSerializer.class)
    private Long id;

	/**
     * 系统角色名称
     */
    @ApiModelProperty(value = "系统角色名称")
    private String roleName;

	/**
     * 系统角色描述
     */
    @ApiModelProperty(value = "系统角色描述")
    private String roleDesc;

	/**
     * 角色类型
     */
    @ApiModelProperty(value = "角色类型")
    private RolesTypeEnum rolesType;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createDate;

    /**
     * 创建者
     */
    @ApiModelProperty(value = "创建人")
    private String createUserName;


}

注意:返回需要的类型使用定义的枚举类
  


版权声明:本文为WXF_Sir原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>