liujie
2026-03-14 7e07fcac22dd32f2eecefe333137a259bdb916ea
xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpCoupon.java
@@ -1,5 +1,6 @@
package com.xiaopeng.api.model.operation;
import java.io.IOException;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -8,12 +9,22 @@
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.xiaopeng.common.core.web.domain.BaseModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.apache.commons.lang3.StringEscapeUtils;
import org.springframework.stereotype.Component;
/**
 * <p>
@@ -49,6 +60,30 @@
    private BigDecimal amount;
    @ApiModelProperty(value = "描述")
    @JsonSerialize(using = HtmlContentSerializer.class)
    @JsonDeserialize(using = HtmlContentDeserializer.class)
    private String couponDescription;
    @Component
    public class HtmlContentSerializer extends JsonSerializer<String> {
        @Override
        public void serialize(String value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
            // 序列化时进行转义
            String escaped = StringEscapeUtils.escapeHtml4(value);
            gen.writeString(escaped);
        }
    }
    @Component
    public class HtmlContentDeserializer extends JsonDeserializer<String> {
        @Override
        public String deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
            String value = p.getValueAsString();
            // 反序列化时进行反转义
            return StringEscapeUtils.unescapeHtml4(value);
        }
    }
}