Browse Source

20260416 记录显示金额优化

dev
wangguorui 5 days ago
parent
commit
e4608d8516
  1. 19
      src/main/java/com/example/demo/config/BigDecimalSerializer.java
  2. 7
      src/main/java/com/example/demo/domain/vo/cash/UserWalletRecordVO.java
  3. 2
      src/main/resources/cashMapper/CashCollectionMapper.xml

19
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<BigDecimal> {
@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());
}
}
}

7
src/main/java/com/example/demo/domain/vo/cash/UserWalletRecordVO.java

@ -1,11 +1,13 @@
package com.example.demo.domain.vo.cash; package com.example.demo.domain.vo.cash;
import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelIgnore;
import com.example.demo.config.BigDecimalSerializer;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
// 用户钱包明细 VO包含用户信息 // 用户钱包明细 VO包含用户信息
@ -27,7 +29,8 @@ public class UserWalletRecordVO {
private Integer type; // 交易类型0=充值1=消耗2=退款 private Integer type; // 交易类型0=充值1=消耗2=退款
private String typeText; // 交易类型文本多语言 private String typeText; // 交易类型文本多语言
private String transactionCurrency; // 交易币种 private String transactionCurrency; // 交易币种
private Integer amount; // 交易金额
@JsonSerialize(using = BigDecimalSerializer.class)
private BigDecimal amount; // 交易金额
private String orderCode; // 交易单号 private String orderCode; // 交易单号
private String description; // 交易说明 private String description; // 交易说明
@ExcelIgnore @ExcelIgnore

2
src/main/resources/cashMapper/CashCollectionMapper.xml

@ -506,7 +506,7 @@
w.wallet_name as walletName, w.wallet_name as walletName,
uwr.type, uwr.type,
uwr.transaction_currency, uwr.transaction_currency,
uwr.amount/100 as amount,
CAST(uwr.amount AS DECIMAL(10,2))/100 as amount,
uwr.order_code as orderCode, uwr.order_code as orderCode,
uwr.description, uwr.description,
uwr.status, uwr.status,

Loading…
Cancel
Save