小工具知识网

当前位置: 首页 > 行业知识 > 状态码转文字!!!(表格数字转文字)

行业知识

状态码转文字!!!(表格数字转文字)

2026-11-04 05:49:09 来源:互联网转载

1、应用场景:在我们的数据库表中经常会有status这个字段,这个字段经常表示此类商品的状态,例如:0->删除,1->上架,0->下架,等等。

 2、我们返回给前端数据时,如果在页面显示0、1、2,显然是不合适的。 这时就需要我们定义一个枚举类来解决这个问题。

        2.1 写一个枚举,用于描述状态的意思
package com.by.enmus;import lombok.Getter;import lombok.Setter;import java.util.Arrays;import java.util.Optional;/** * 

Project: wms-root - ProduceStatus

*

Powered by scl On 2024-02-27 14:54:47

*

描述:

* * @author 孙臣龙 [1846080280@qq.com] * @version 1.0 * @since 17 */public enum ProductStatus { SALE(1, "上架"), OFF_SALE(2, "下架"), DELETE(0, "删除"); @Setter @Getter private Integer code; //状态 @Setter @Getter private String desc; //状态描述 ProductStatus(Integer code, String desc) { this.code = code; this.desc = desc; } public static ProductStatus findByCode(Integer code) { //jdk1.8提供了哪些新特性 Optional optional = Arrays.stream(ProductStatus.values()).filter(item -> item.getCode().equals(code)).findFirst(); /* if (optional.isPresent()){ return optional.get(); } return null; */ return optional.orElse(null); }}

                2.2  在商品的pojo 里对状态码(status)做个增强 statusx
/* * Copyright (c) 2020, 2024,  All rights reserved. * */package com.by.model;import com.by.enmus.ProductStatus;import lombok.Data;import java.math.BigDecimal;import java.time.LocalDateTime;/** * 

Project: pages - Product

*

Powered by scl On 2024-02-18 15:56:32

*

描述:

* * @author 孙臣龙 [1846080280@qq.com] * @version 1.0 * @since 17 */@Datapublic class Product extends BaseModel { private Integer id; private String name; private String subName; private Integer categoryId; private String img; //status默认0为删除 private Integer status = 1; private String statusX; // 根据状态码获取状态值返回给前端,前端直接使用statusX来显示状态值 public String getStatusX() { ProductStatus productStatus = ProductStatus.findByCode(this.status); if (productStatus != null) { return productStatus.getDesc(); } return "未定义"; } private BigDecimal price; private String brief; private Integer seq; private String tags; private String lastUpdateBy;}

3、前端只需要渲染statusX这个属性值就可以了

4、附加:这时也许你在查询时会出现一个bug,状态为0 的也能显示出来,这就需要修改我们的sql语句了。只需将状态status值大于或不等于0即可

 select * from 205_product                                    and id = #{id}                                        and categoryId = #{categoryId}                                        and id in                                    #{item}                                                        and name like CONCAT('%',#{name}, '%')                             and status>0                order by seq desc

上一篇:煞神服务器怎么进去?

下一篇:Meding下载指南,轻松上手,一键搞定下载!