feat(wallet): 新增余额格式化显示字段
在响应对象中添加 balanceDisplay 字段,用于返回“K”缩写格式的大额余额,
This commit is contained in:
@@ -17,4 +17,10 @@ public class KeyboardUserWalletRespVO {
|
|||||||
*/
|
*/
|
||||||
@Schema(description = "余额")
|
@Schema(description = "余额")
|
||||||
private BigDecimal balance;
|
private BigDecimal balance;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 格式化后的余额显示
|
||||||
|
*/
|
||||||
|
@Schema(description = "格式化后的余额显示")
|
||||||
|
private String balanceDisplay;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
package com.yolo.keyborad.service.impl;
|
package com.yolo.keyborad.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import com.yolo.keyborad.common.ErrorCode;
|
|
||||||
import com.yolo.keyborad.exception.BusinessException;
|
|
||||||
import com.yolo.keyborad.model.vo.wallet.KeyboardUserWalletRespVO;
|
import com.yolo.keyborad.model.vo.wallet.KeyboardUserWalletRespVO;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -28,12 +25,17 @@ public class KeyboardUserWalletServiceImpl extends ServiceImpl<KeyboardUserWalle
|
|||||||
.eq(KeyboardUserWallet::getUserId, userId)
|
.eq(KeyboardUserWallet::getUserId, userId)
|
||||||
.one();
|
.one();
|
||||||
KeyboardUserWalletRespVO respVO = new KeyboardUserWalletRespVO();
|
KeyboardUserWalletRespVO respVO = new KeyboardUserWalletRespVO();
|
||||||
if (wallet == null) {
|
BigDecimal balance = (wallet == null) ? BigDecimal.ZERO : wallet.getBalance();
|
||||||
// 如果用户没有钱包记录,返回余额为0
|
respVO.setBalance(balance);
|
||||||
respVO.setBalance(BigDecimal.ZERO);
|
respVO.setBalanceDisplay(formatBalance(balance));
|
||||||
} else {
|
|
||||||
respVO.setBalance(wallet.getBalance());
|
|
||||||
}
|
|
||||||
return respVO;
|
return respVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String formatBalance(BigDecimal balance) {
|
||||||
|
if (balance.compareTo(new BigDecimal("10000")) >= 0) {
|
||||||
|
BigDecimal kValue = balance.divide(new BigDecimal("1000"), 2, BigDecimal.ROUND_HALF_UP);
|
||||||
|
return kValue.stripTrailingZeros().toPlainString() + "K";
|
||||||
|
}
|
||||||
|
return balance.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ sa-token:
|
|||||||
# token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结
|
# token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结
|
||||||
active-timeout: -1
|
active-timeout: -1
|
||||||
# 是否允许同一账号多地同时登录 (为 true 时允许一起登录, 为 false 时新登录挤掉旧登录)
|
# 是否允许同一账号多地同时登录 (为 true 时允许一起登录, 为 false 时新登录挤掉旧登录)
|
||||||
is-concurrent: false
|
is-concurrent: true
|
||||||
# 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token, 为 false 时每次登录新建一个 token)
|
# 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token, 为 false 时每次登录新建一个 token)
|
||||||
is-share: false
|
is-share: false
|
||||||
# token 风格(默认可取值:uuid、simple-uuid、random-32、random-64、random-128、tik)
|
# token 风格(默认可取值:uuid、simple-uuid、random-32、random-64、random-128、tik)
|
||||||
|
|||||||
Reference in New Issue
Block a user