当前位置: 首页 > article >正文

枚举Enum使用

枚举使用

数据库存储字段为code 前端返回为msg 修改时需要传入code

枚举代码

import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;
import com.ruoyi.common.exception.ServiceException;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;

@Getter
@AllArgsConstructor
public enum AuditStatus {

    UNREVIEWED("10","未提交审核"),           // 未提交审核
    PENDING_FIRST_REVIEW("20","待初审"),  // 待初审
    PENDING_FINAL_REVIEW("30","待终审"),  // 待终审
    FIRST_REVIEW_REJECTED("40","初审退回"), // 初审退回
    FINAL_REVIEW_REJECTED("50","终审退回") ,// 终审退回
    APPROVED("60","已通过");             // 已通过


    @EnumValue
    @JsonValue
    private final String code;
    private final String msg;

    public static AuditStatus fromCode(String code) {
        return Arrays.asList(AuditStatus.values()).stream().filter(auditStatus -> auditStatus.code.equals(code))
                .findAny().orElseThrow(() -> new ServiceException(String.format("审核状态码%s错误!,请联系管理员", code)));
    }
}

实体类

public class BusQualification{
	@ApiModelProperty("审核状态 10,未提交审核 20,待初审 30,待终审 40,初审退回 50,终审退回 60,已通过 ")
     private QualificationAuditStatus qualificationAuditStatus;
    }

增加配置类

选择其一即可

1.全局配置
@Configuration
public class QualificationEnumConfig implements WebMvcConfigurer {
    @Override
    public void addFormatters(FormatterRegistry registry) {
        registry.addConverter(new Converter<String, QualificationAuditStatus>() {
            @Override
            public QualificationAuditStatus convert(String source) {

                return QualificationAuditStatus.fromCode(source);
            }
        });
    }
}
2.部分配置

部分配置的时候注意 如果继承的有别的类 可能覆盖父类的这个方法

@InitBinder
	public void initBinderQualification(WebDataBinder binder) {
		// 仅为 QualificationAuditStatus 注册转换器
		binder.registerCustomEditor(QualificationAuditStatus.class, new PropertyEditorSupport() {
			@Override
			public void setAsText(String text) throws IllegalArgumentException {
				setValue(QualificationAuditStatus.fromCode(text));
			}
		});
	}

http://www.kler.cn/a/400295.html

相关文章:

  • 智谱AI清影升级:引领AI视频进入音效新时代
  • 01_MinIO部署(Windows单节点部署/Docker化部署)
  • 优化C++设计模式:用模板代替虚函数与多态机制
  • Linux的桌面
  • 【Linux学习】【Ubuntu入门】1-4 ubuntu终端操作与shell命令1
  • OMV7 树莓派 tf卡安装
  • # ubuntu安装openjdk 和 pycharm 并解决 pycharm 不能输入中文的问题
  • 有限状态机(续)
  • 跨平台WPF框架Avalonia教程 十
  • Spring Boot出现java: 错误: 无效的源发行版:16的解决方式
  • 缓存与数据库不一致的解决方案:深入理解与实践
  • Prometheus结合K8s(二)使用
  • Linux多线程(线程池与单例模式)
  • Java项目实战II基于Java+Spring Boot+MySQL的共享汽车管理系统(源码+数据库+文档)
  • uniapp 设置form表单以及验证密码
  • SQL,力扣题目1369,获取最近第二次的活动
  • uniapp Uview上传图片组件Upload会自动刷新
  • mysql的my.cnf配置文件参数说明
  • go语言中的占位符有哪些
  • 性能调优专题(12)之垃圾收集器ParNewCMS与底层三色标记算法详解
  • idea 通过git撤销commit但未push的操作
  • 没钱买KEGG怎么办?REACTOME开源通路更强大
  • 4K双模MiniLED显示器哪个好
  • 大数据平台的网络安全架构
  • 学习笔记024——Ubuntu 安装 Redis遇到相关问题
  • 【网络安全】SSL(二):Keyless SSL技术细节