From e4608d851600ffc0db53f3128fd7c8404cc30273 Mon Sep 17 00:00:00 2001 From: wangguorui <2069821375@qq.com> Date: Thu, 16 Apr 2026 13:55:24 +0800 Subject: [PATCH] =?UTF-8?q?20260416=20=E8=AE=B0=E5=BD=95=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E9=87=91=E9=A2=9D=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/demo/config/BigDecimalSerializer.java | 19 +++++++++++++++++++ .../demo/domain/vo/cash/UserWalletRecordVO.java | 7 +++++-- .../resources/cashMapper/CashCollectionMapper.xml | 2 +- 3 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/example/demo/config/BigDecimalSerializer.java 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,