diff --git a/src/main/java/com/example/demo/config/BigDecimalSerializer.java b/src/main/java/com/example/demo/config/BigDecimalSerializer.java new file mode 100644 index 0000000..42d9de2 --- /dev/null +++ b/src/main/java/com/example/demo/config/BigDecimalSerializer.java @@ -0,0 +1,19 @@ +package com.example.demo.config; + +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; + +public class BigDecimalSerializer extends JsonSerializer { + @Override + public void serialize(BigDecimal value, JsonGenerator gen, SerializerProvider serializers) throws IOException { + if (value == null) { + gen.writeNull(); + } else { + // 去除末尾多余的零,例如:100.00 -> 100, 12.30 -> 12.3 + gen.writeNumber(value.stripTrailingZeros()); + } + } +} diff --git a/src/main/java/com/example/demo/domain/vo/cash/UserWalletRecordVO.java b/src/main/java/com/example/demo/domain/vo/cash/UserWalletRecordVO.java index 7048c5b..cccf7e9 100644 --- a/src/main/java/com/example/demo/domain/vo/cash/UserWalletRecordVO.java +++ b/src/main/java/com/example/demo/domain/vo/cash/UserWalletRecordVO.java @@ -1,11 +1,13 @@ package com.example.demo.domain.vo.cash; import com.alibaba.excel.annotation.ExcelIgnore; +import com.example.demo.config.BigDecimalSerializer; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; - +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.math.BigDecimal; import java.util.Date; // 用户钱包明细 VO(包含用户信息) @@ -27,7 +29,8 @@ public class UserWalletRecordVO { private Integer type; // 交易类型(0=充值,1=消耗,2=退款) private String typeText; // 交易类型文本(多语言) private String transactionCurrency; // 交易币种 - private Integer amount; // 交易金额 + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal amount; // 交易金额 private String orderCode; // 交易单号 private String description; // 交易说明 @ExcelIgnore diff --git a/src/main/resources/cashMapper/CashCollectionMapper.xml b/src/main/resources/cashMapper/CashCollectionMapper.xml index e28e683..3fec95f 100644 --- a/src/main/resources/cashMapper/CashCollectionMapper.xml +++ b/src/main/resources/cashMapper/CashCollectionMapper.xml @@ -506,7 +506,7 @@ w.wallet_name as walletName, uwr.type, uwr.transaction_currency, - uwr.amount/100 as amount, + CAST(uwr.amount AS DECIMAL(10,2))/100 as amount, uwr.order_code as orderCode, uwr.description, uwr.status,