feat: add usdt freight deduction amount
This commit is contained in:
parent
4940e612b5
commit
bb83f2026b
@ -163,15 +163,21 @@ public class UserFreightBalanceServiceImpl implements
|
||||
|
||||
@Override
|
||||
public void deduction(UserFreightBalanceCmd param) {
|
||||
// 余额不足
|
||||
// 扣款金币允许为0,表示本次只登记USDT扣款;负数会导致余额反向增加,必须拦截。
|
||||
ResponseAssert.isTrue(WalletErrorCode.REQUIRED_GT_ZERO,
|
||||
ArithmeticUtils.gte(param.getEarnPoints(), BigDecimal.ZERO));
|
||||
|
||||
// 操作失败
|
||||
ResponseAssert.isTrue(CommonErrorCode.OPERATING_FAILURE,
|
||||
decrCandyBalance(param.getSysOrigin(), param.getUserId(), param.getEarnPoints()));
|
||||
// USDT扣款复用进货的amount字段,必须大于0,否则会产生没有金额意义的扣款流水。
|
||||
ResponseAssert.isTrue(WalletErrorCode.REQUIRED_GT_ZERO,
|
||||
Objects.nonNull(param.getAmount()) && param.getAmount().compareTo(BigDecimal.ZERO) > 0);
|
||||
|
||||
// 插入流水
|
||||
// 只有金币数量大于0时才真正扣减货运金币余额;金币为0时保留原余额,只记录USDT扣款流水。
|
||||
if (param.getEarnPoints().compareTo(BigDecimal.ZERO) > 0) {
|
||||
ResponseAssert.isTrue(CommonErrorCode.OPERATING_FAILURE,
|
||||
decrCandyBalance(param.getSysOrigin(), param.getUserId(), param.getEarnPoints()));
|
||||
}
|
||||
|
||||
// 扣款流水同时记录金币数量和USDT金额,amount用于后台列表、导出和后续对账。
|
||||
BigDecimal balance = getAvailableBalance(param.getUserId());
|
||||
ResponseAssert.requiredSuccess(
|
||||
freightGoldClient.addRunningWater(new AddFreightBalanceRunningWaterCmd()
|
||||
@ -182,13 +188,16 @@ public class UserFreightBalanceServiceImpl implements
|
||||
.setQuantity(param.getEarnPoints())
|
||||
.setBalance(balance)
|
||||
.setUsdQuantity(BigDecimal.ZERO)
|
||||
.setAmount(param.getAmount())
|
||||
.setOrigin(FreightBalanceOrigin.DEDUCTION.name())
|
||||
.setRemark(param.getRemark())
|
||||
.setCreateUser(param.getOperationUser())
|
||||
.setUpdateUser(param.getOperationUser())));
|
||||
|
||||
//余额如果少于1250则收回徽章
|
||||
removeFreightShipBadge(param.getUserId(), balance);
|
||||
// 实际扣减金币后才需要重新判断金币余额阈值;USDT-only扣款不改变余额。
|
||||
if (param.getEarnPoints().compareTo(BigDecimal.ZERO) > 0) {
|
||||
removeFreightShipBadge(param.getUserId(), balance);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -65,6 +65,11 @@ public class UserFreightBalanceRunningWaterCO implements Serializable {
|
||||
*/
|
||||
private BigDecimal balance;
|
||||
|
||||
/**
|
||||
* USDT金额.
|
||||
*/
|
||||
private BigDecimal amount;
|
||||
|
||||
/**
|
||||
* 来源.
|
||||
*/
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user