✨✨个人主页:沫洺的主页
📚📚系列专栏: 📖 JavaWeb专栏📖 JavaSE专栏 📖 Java基础专栏📖vue3专栏
📖MyBatis专栏📖Spring专栏📖SpringMVC专栏📖SpringBoot专栏
📖Docker专栏📖Reids专栏📖MQ专栏📖SpringCloud专栏
💖💖如果文章对你有所帮助请留下三连✨✨
🥃描述
比如数据库中状态通过数值去表示
在前端呈现的又不想呈现数值,就需要将code数值通过枚举的方式去映射具体的状态name
🍺具体实现如下
创建枚举类
package com.moming.dto.enums; import java.util.Arrays; import java.util.Optional; public enum EnumProductStatus { ONLINE(1,"上架"), OFFLINE (0,"下架"); EnumProductStatus(Integer code, String name){ this.code = code; this.name = name; } private final Integer code; private final String name; public Integer getCode() { return code; } public String getName() { return name; } public static EnumProductStatus findByCode(Integer code){ Optional<EnumProductStatus> first = Arrays.stream(EnumProductStatus.values()) .filter(p -> p.getCode().equals(code)) .findFirst(); return first.orElse(null); } }
在dto中去通过findByCode方法根据具体的code获取name
package com.moming.dto; import cn.hutool.core.date.LocalDateTimeUtil; import com.fasterxml.jackson.annotation.JsonFormat; import com.moming.dto.enums.EnumCategoryStatus; import lombok.Data; import java.time.LocalDateTime; @Data public class CategoryDto { private Integer id; private String img; private String name; private Integer parentId; private Integer status = 1; private Integer seq; private String lastUpdateBy; @JsonFormat(pattern = "yyyy-MM-dd HH:mm") private LocalDateTime lastUpdateTime = LocalDateTimeUtil.now(); private String statusX; public String getStatusX() { EnumCategoryStatus categoryStatus = EnumCategoryStatus.findByCode(this.status); return categoryStatus.getName(); } }
这样前端就可以通过获取statusX来代替status