将数据库取出的值,前端页⾯⽤汉字展⽰,将code转换成枚举第⼀步:书写枚举类(CodeEnum)
package ums;
CodeEnum是为了让我从数据库取出的值,然后我们在前端页⾯展⽰为汉字(重点),将code转换成枚举
public interface CodeEnum {
Integer getCode();
}
第⼆步:书写枚举帮助类(EnumUtil)
package com.imooc.utils;
import ums.CodeEnum;
//通过code来获得枚举,T代表枚举,书写的公共类  <T extends CodeEnum>这表达类,表⽰不确定的东西,像Interface/class
public class EnumUtil {
public static <T extends CodeEnum> T getByCode(Integer code, Class<T> enumClass) {
for (T each : EnumConstants()) {
if (code.Code())) {
return each;
}
}
return null;
}
}
第三步:书写DTO
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.imooc.dataobject.OrderDetail;
import ums.OrderStatusEnum;
import ums.PayStatusEnum;
import com.imooc.utils.EnumUtil;
import com.imooc.utils.serializer.Date2Serializer;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
//订单的dtos
/**
* @JsonInclude(JsonInclude.Include.NON_NULL)//这注解表⽰为null的时候不返回,如果要全局的null不显⽰,
*  则在配置⽂件配置jackson: default-property-inclusion: non_null
*/
public class OrderDTO {
//订单id
private String orderId;
//买家名字
private String buyerName;
//买家⼿机号
bigdecimal转换为integerprivate String buyerPhone;
//买家地址
private String buyerAddress;
//买家openid
private String buyerOpenid;
//订单总⾦额
private BigDecimal orderAmount;
//订单状态,默认为0新下单
private Integer orderStatus;
//⽀付状态,默认为0未⽀付
private Integer payStatus;
//创建时间
@JsonSerialize(using= Date2Serializer.class) //注解,可以实现date数据转换成long型数据等功能,该注解作⽤在属性的getter()⽅法上,完成项⽬需求毫秒转成秒来呈    private Date createTime;
//更新时间
@JsonSerialize(using= Date2Serializer.class)
private Date updateTime;
//⼀个订单有多个订单详情的商品
List<OrderDetail> orderDetailList;
//通过code获取枚举(使⽤通⽤⽅法去获取枚举,变得更优雅)
@JsonIgnore  //注解的意思是对象转成json格式就会忽略掉这个⽅法了
public OrderStatusEnum getOrderStatusEnum(){
ByCode(orderStatus,OrderStatusEnum.class);
}
@JsonIgnore
public PayStatusEnum getPayStatusEnum(){
ByCode(payStatus,PayStatusEnum.class);
}