puhanshu
2022-07-23 bbda2ee1af4e86d76f93e00386d77efb56c60d5f
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/SerializerBigDecimal.java
@@ -1,5 +1,11 @@
package com.panzhihua.common.model.helper;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.Objects;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.BeanProperty;
@@ -8,23 +14,17 @@
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.ser.ContextualSerializer;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.Objects;
/**
 * BigDecimal序列化(默认保留二位小数和四舍五入)
 * @author   cedoo
 *
 * @author cedoo
 * @date 2021-4-19 01:24:28
 */
public class SerializerBigDecimal extends JsonSerializer<BigDecimal> implements ContextualSerializer {
    protected DecimalFormat decimalFormat;
    public SerializerBigDecimal() {
    }
    public SerializerBigDecimal() {}
    public SerializerBigDecimal(DecimalFormat decimalFormat) {
        this.decimalFormat = decimalFormat;
@@ -33,12 +33,12 @@
    @Override
    public void serialize(BigDecimal value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
        if(Objects.isNull(value)) {
        if (Objects.isNull(value)) {
            gen.writeNull();
        } else {
            if(null != decimalFormat) {
            if (null != decimalFormat) {
                gen.writeNumber(decimalFormat.format(value));
            }else {
            } else {
                gen.writeNumber(value.setScale(2, BigDecimal.ROUND_HALF_UP));
            }
        }
@@ -46,7 +46,7 @@
    @Override
    public JsonSerializer<?> createContextual(SerializerProvider prov, BeanProperty property)
            throws JsonMappingException {
        throws JsonMappingException {
        JsonFormat.Value format = findFormatOverrides(prov, property, handledType());
        if (format == null) {
@@ -62,9 +62,8 @@
        return this;
    }
    protected JsonFormat.Value findFormatOverrides(SerializerProvider provider,
                                                   BeanProperty prop, Class<?> typeForDefaults)
    {
    protected JsonFormat.Value findFormatOverrides(SerializerProvider provider, BeanProperty prop,
        Class<?> typeForDefaults) {
        if (prop != null) {
            return prop.findPropertyFormat(provider.getConfig(), typeForDefaults);
        }