fix: allow transfers to regular users
This commit is contained in:
parent
8544ca34d0
commit
cbc9b0e2f2
@ -88,8 +88,8 @@ public class UserBankTransferGoldCmdExe {
|
|||||||
ArithmeticUtils.gtZero(cmd.getAmount()));
|
ArithmeticUtils.gtZero(cmd.getAmount()));
|
||||||
|
|
||||||
boolean freight = freightBalanceService.existsBalance(cmd.getAcceptUserId());
|
boolean freight = freightBalanceService.existsBalance(cmd.getAcceptUserId());
|
||||||
ResponseAssert.isTrue(WalletErrorCode.TARGET_USER_NOT_RECHARGE_AGENCY, freight);
|
ResponseAssert.isTrue(WalletErrorCode.NOT_TRANSFER_YOURSELF,
|
||||||
ResponseAssert.isTrue(WalletErrorCode.NOT_TRANSFER_YOURSELF, !Objects.equals(cmd.getAcceptUserId(), cmd.requiredReqUserId()));
|
!Objects.equals(cmd.getAcceptUserId(), cmd.requiredReqUserId()));
|
||||||
|
|
||||||
// 上锁
|
// 上锁
|
||||||
String key = "UBWTransferGold:" + cmd.requiredReqUserId();
|
String key = "UBWTransferGold:" + cmd.requiredReqUserId();
|
||||||
@ -104,13 +104,18 @@ public class UserBankTransferGoldCmdExe {
|
|||||||
// 获得区域兑换比例金币比例
|
// 获得区域兑换比例金币比例
|
||||||
Double goldRatio = getExchangeGoldRatio(cmd);
|
Double goldRatio = getExchangeGoldRatio(cmd);
|
||||||
|
|
||||||
BigDecimal goldQuantity = BigDecimal.valueOf(goldRatio).multiply(cmd.getAmount()).setScale(0, RoundingMode.DOWN);
|
BigDecimal goldQuantity = BigDecimal.valueOf(goldRatio).multiply(cmd.getAmount())
|
||||||
|
.setScale(0, RoundingMode.DOWN);
|
||||||
|
|
||||||
|
if (freight) {
|
||||||
FreightBalance freightBalance = freightBalanceService.getFreightBalance(cmd.getAcceptUserId());
|
FreightBalance freightBalance = freightBalanceService.getFreightBalance(cmd.getAcceptUserId());
|
||||||
ResponseAssert.notNull(FreightErrorCode.NOT_FREIGHT, freightBalance);
|
ResponseAssert.notNull(FreightErrorCode.NOT_FREIGHT, freightBalance);
|
||||||
|
|
||||||
long result = goldQuantity.divide(new BigDecimal(10000), RoundingMode.DOWN).setScale(0, RoundingMode.DOWN).longValue();
|
long result = goldQuantity.divide(new BigDecimal(10000), RoundingMode.DOWN)
|
||||||
ResponseAssert.isTrue(FreightErrorCode.NOT_THRESHOLD, result >= Optional.ofNullable(freightBalance.getDeliveryThreshold()).orElse(0));
|
.setScale(0, RoundingMode.DOWN).longValue();
|
||||||
|
ResponseAssert.isTrue(FreightErrorCode.NOT_THRESHOLD,
|
||||||
|
result >= Optional.ofNullable(freightBalance.getDeliveryThreshold()).orElse(0));
|
||||||
|
}
|
||||||
|
|
||||||
// 扣钱
|
// 扣钱
|
||||||
BankBalanceDTO decrUserBankBalanceDTO = userBankBalanceService.decr(cmd.requiredReqUserId(),
|
BankBalanceDTO decrUserBankBalanceDTO = userBankBalanceService.decr(cmd.requiredReqUserId(),
|
||||||
@ -118,6 +123,7 @@ public class UserBankTransferGoldCmdExe {
|
|||||||
ResponseAssert.notNull(WalletErrorCode.INSUFFICIENT_BALANCE, decrUserBankBalanceDTO);
|
ResponseAssert.notNull(WalletErrorCode.INSUFFICIENT_BALANCE, decrUserBankBalanceDTO);
|
||||||
|
|
||||||
Long bankRunWaterId = IdWorkerUtils.getId();
|
Long bankRunWaterId = IdWorkerUtils.getId();
|
||||||
|
cmd.setReqTraceId(String.valueOf(bankRunWaterId));
|
||||||
|
|
||||||
// 银行卡流水
|
// 银行卡流水
|
||||||
userBankRunningWaterService.add(
|
userBankRunningWaterService.add(
|
||||||
|
|||||||
@ -45,9 +45,10 @@ public class UserBankSearchUserProfileQryExe {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isTransfer(cmd)) {
|
if (isTransfer(cmd)) {
|
||||||
if (Objects.equals(cmd.getReqUserId(), userProfile.getId())) {
|
if (Objects.equals(cmd.getReqUserId(), userProfile.getId())) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
return userProfile;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cmd.typeEqBD()) {
|
if (cmd.typeEqBD()) {
|
||||||
@ -71,9 +72,6 @@ public class UserBankSearchUserProfileQryExe {
|
|||||||
if (freightAgent) {
|
if (freightAgent) {
|
||||||
return userProfile;
|
return userProfile;
|
||||||
}
|
}
|
||||||
if (isTransfer(cmd)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return Objects.equals(
|
return Objects.equals(
|
||||||
ResponseAssert.requiredSuccess(agentTeamClient.existsTeamOwn(userProfile.getId())),
|
ResponseAssert.requiredSuccess(agentTeamClient.existsTeamOwn(userProfile.getId())),
|
||||||
|
|||||||
@ -80,8 +80,8 @@ public class SalaryTransferGoldCmdExe {
|
|||||||
ArithmeticUtils.gtZero(cmd.getAmount()));
|
ArithmeticUtils.gtZero(cmd.getAmount()));
|
||||||
|
|
||||||
boolean freight = freightBalanceService.existsBalance(cmd.getAcceptUserId());
|
boolean freight = freightBalanceService.existsBalance(cmd.getAcceptUserId());
|
||||||
ResponseAssert.isTrue(WalletErrorCode.TARGET_USER_NOT_RECHARGE_AGENCY, freight);
|
ResponseAssert.isTrue(WalletErrorCode.NOT_TRANSFER_YOURSELF,
|
||||||
ResponseAssert.isTrue(WalletErrorCode.NOT_TRANSFER_YOURSELF, !Objects.equals(cmd.getAcceptUserId(), cmd.requiredReqUserId()));
|
!Objects.equals(cmd.getAcceptUserId(), cmd.requiredReqUserId()));
|
||||||
|
|
||||||
// 上锁
|
// 上锁
|
||||||
String key = "USTransferGold:" + cmd.requiredReqUserId();
|
String key = "USTransferGold:" + cmd.requiredReqUserId();
|
||||||
@ -96,13 +96,18 @@ public class SalaryTransferGoldCmdExe {
|
|||||||
Double goldRatio = getExchangeGoldRatio(cmd);
|
Double goldRatio = getExchangeGoldRatio(cmd);
|
||||||
Long bankRunWaterId = IdWorkerUtils.getId();
|
Long bankRunWaterId = IdWorkerUtils.getId();
|
||||||
|
|
||||||
BigDecimal goldQuantity = BigDecimal.valueOf(goldRatio).multiply(cmd.getAmount()).setScale(0, RoundingMode.DOWN);
|
BigDecimal goldQuantity = BigDecimal.valueOf(goldRatio).multiply(cmd.getAmount())
|
||||||
|
.setScale(0, RoundingMode.DOWN);
|
||||||
|
|
||||||
FreightBalance freightBalance = freightBalanceService.getFreightBalance(cmd.getAcceptUserId());
|
if (freight) {
|
||||||
ResponseAssert.notNull(FreightErrorCode.NOT_FREIGHT, freightBalance);
|
FreightBalance freightBalance = freightBalanceService.getFreightBalance(cmd.getAcceptUserId());
|
||||||
|
ResponseAssert.notNull(FreightErrorCode.NOT_FREIGHT, freightBalance);
|
||||||
|
|
||||||
long result = goldQuantity.divide(new BigDecimal(10000), RoundingMode.DOWN).setScale(0, RoundingMode.DOWN).longValue();
|
long result = goldQuantity.divide(new BigDecimal(10000), RoundingMode.DOWN)
|
||||||
ResponseAssert.isTrue(FreightErrorCode.NOT_THRESHOLD, result >= Optional.ofNullable(freightBalance.getDeliveryThreshold()).orElse(0));
|
.setScale(0, RoundingMode.DOWN).longValue();
|
||||||
|
ResponseAssert.isTrue(FreightErrorCode.NOT_THRESHOLD,
|
||||||
|
result >= Optional.ofNullable(freightBalance.getDeliveryThreshold()).orElse(0));
|
||||||
|
}
|
||||||
|
|
||||||
// 扣钱
|
// 扣钱
|
||||||
cmd.setReqTraceId(String.valueOf(bankRunWaterId));
|
cmd.setReqTraceId(String.valueOf(bankRunWaterId));
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user