wangwl пре 3 месеци
родитељ
комит
9d4a70b11e

+ 30 - 0
leromro-common/src/main/java/com/leromro/common/config/serializer/BigDecimalSerializer.java

@@ -0,0 +1,30 @@
+package com.leromro.common.config.serializer;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
+
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.text.DecimalFormat;
+import java.util.Objects;
+
+/**
+ * 保留两位小数  使用:    @JsonSerialize(using = BigDecimalSerializer.class)
+ */
+public class BigDecimalSerializer extends JsonSerializer<BigDecimal> {
+
+    private static final DecimalFormat FORMATTER = new DecimalFormat("0.00");
+
+    @Override
+    public void serialize(BigDecimal value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+        if (Objects.isNull(value)) {
+            jsonGenerator.writeNull();
+        } else {
+            // 统一设置为2位小数,向下取整(可根据需要更换 RoundingMode)
+            value = value.setScale(2, RoundingMode.DOWN);
+            jsonGenerator.writeString(FORMATTER.format(value));
+        }
+    }
+}