## 转账、提现添加账户金额是否足够校验;

This commit is contained in:
cabbage 2025-09-16 09:42:04 +08:00
parent deda96ca1d
commit e912c4d222
5 changed files with 45 additions and 27 deletions

View File

@ -336,11 +336,17 @@ public class ApiCuMemberTransferController extends BaseController {
//转入币种ID从配置中获取
Integer toPkAccount = iAccountServiceApi.getPkAccount(pkAccount).getData();
CuMemberTransfer cuMemberTransfer = CuMemberTransfer.builder().pkMember(pkMember)
.pkAccount(pkAccount).transferCode(code).toPkMember(toPkMember)
.pkToAccount(toPkAccount).pkRate(currencyDTO.getPkId())
.transferMoney(transferMoney).remarks(cuMemberTransferParam.getRemarks())
.serviceCharge(serviceRatio).issuedAmount(issuedAmount)
CuMemberTransfer cuMemberTransfer = CuMemberTransfer.builder()
.pkMember(pkMember)
.pkAccount(pkAccount)
.transferCode(code)
.toPkMember(toPkMember)
.pkToAccount(toPkAccount)
.pkRate(currencyDTO.getPkId())
.transferMoney(transferMoney)
.remarks(cuMemberTransferParam.getRemarks())
.serviceCharge(serviceRatio)
.issuedAmount(issuedAmount)
.build();
cuMemberTransfer.setPkCountry(pkCountry);
cuMemberTransfer.setPkCreator(pkMember);
@ -348,7 +354,6 @@ public class ApiCuMemberTransferController extends BaseController {
return toAjax(iCuMemberTransferService.saveMemberTransferInfo(cuMemberTransfer, cuMemberAccount, toMemberAccount));
}
/**
* 判断是否走血缘
*

View File

@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.common.core.constant.msg.FinanceMsgConstants;
import com.hzs.common.core.enums.*;
import com.hzs.common.core.exception.ServiceException;
import com.hzs.common.core.utils.CommonUtil;
import com.hzs.common.domain.member.account.CuMemberAccount;
import com.hzs.common.domain.member.account.CuMemberTrade;
@ -106,9 +107,16 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
@Transactional(rollbackFor = Exception.class)
@Override
public Integer saveMemberTransferInfo(CuMemberTransfer cuMemberTransfer, CuMemberAccount cuMemberAccount, CuMemberAccount toMemberAccount) {
Integer row = baseMapper.insert(cuMemberTransfer);
this.updateTradeAndBalancd(cuMemberTransfer, ETransferType.TRANSFER_OUT.getValue());
this.updateTradeAndBalancd(cuMemberTransfer, ETransferType.TRANSFER_IN.getValue());
int row = baseMapper.insert(cuMemberTransfer);
if (row == 0) {
throw new ServiceException("转账失败,请确认后重试");
}
if (this.updateTradeAndBalancd(cuMemberTransfer, ETransferType.TRANSFER_OUT.getValue()) == 0) {
throw new ServiceException("转账失败,请确认后重试");
}
if (this.updateTradeAndBalancd(cuMemberTransfer, ETransferType.TRANSFER_IN.getValue()) == 0) {
throw new ServiceException("转账失败,请确认后重试");
}
ChargingBonusDetail(cuMemberTransfer, cuMemberAccount, toMemberAccount);
return row;
}
@ -158,7 +166,6 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
}
}
/**
* 更新交易流水和余额
*
@ -183,9 +190,13 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
BigDecimal amount = type == (ETransferType.TRANSFER_OUT.getValue()) ? transferMoney.negate() : transferMoney;
Integer pkAccountValue = iCuMemberBaseService.getAccountValueById(pkAccount);
CuMemberAccountParam param = CuMemberAccountParam.builder().pkMember(memberId)
.accountType(pkAccountValue).amount(amount).pkModified(cuMemberTransfer.getPkCreator())
.accountClassify(ETradeClassify.TRANSFER.getValue()).pkCountry(cuMemberTransfer.getPkCountry())
CuMemberAccountParam param = CuMemberAccountParam.builder()
.pkMember(memberId)
.accountType(pkAccountValue)
.amount(amount)
.pkModified(cuMemberTransfer.getPkCreator())
.accountClassify(ETradeClassify.TRANSFER.getValue())
.pkCountry(cuMemberTransfer.getPkCountry())
.transferType(type).build();
return iCuMemberAccountService.updateMemberAccountByMemberCode(param);
@ -227,7 +238,6 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
return memberTrade;
}
/**
* 构造转入方交易明细
*
@ -292,7 +302,6 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
return remarks.toString();
}
@Override
public Object[] selectMemberTransferList(CuMemberTransferVO cuMemberTransferVO) {
CuMemberTransferVO memberTransferVO;
@ -309,7 +318,6 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
return new Object[]{cuMemberTransferExts, cuMemberTransferVOS};
}
/**
* 页面显示公用参数
*
@ -345,4 +353,3 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
}
}

View File

@ -110,7 +110,9 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
public Integer saveMemberWithdrawInfo(CuMemberWithdraw cuMemberWithdraw) {
int row = baseMapper.insert(cuMemberWithdraw);
if (row != 0) {
this.updateTradeAndBalancd(cuMemberWithdraw, EOperationMethod.INSERT);
if (this.updateTradeAndBalancd(cuMemberWithdraw, EOperationMethod.INSERT) == 0) {
throw new ServiceException("提现失败,请确认后重试");
}
}
return row;
}
@ -130,10 +132,15 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
//提现金额
BigDecimal cashAmount = cuMemberWithdraw.getCashAmount();
BigDecimal amount = eMethodType.equals(EOperationMethod.INSERT) ? cashAmount.negate() : cashAmount;
CuMemberAccountParam param = CuMemberAccountParam.builder().pkMember(cuMemberWithdraw.getPkMember())
.accountType(accountType).amount(amount).pkModified(cuMemberWithdraw.getPkCreator())
.accountClassify(ETradeClassify.WITHDRAWAL.getValue()).pkCountry(cuMemberWithdraw.getPkCountry())
.transferType(ETransferType.TRANSFER_IN.getValue()).build();
CuMemberAccountParam param = CuMemberAccountParam.builder()
.pkMember(cuMemberWithdraw.getPkMember())
.accountType(accountType)
.amount(amount)
.pkModified(cuMemberWithdraw.getPkCreator())
.accountClassify(ETradeClassify.WITHDRAWAL.getValue())
.pkCountry(cuMemberWithdraw.getPkCountry())
.transferType(ETransferType.TRANSFER_IN.getValue())
.build();
return iCuMemberAccountService.updateMemberAccountByMemberCode(param);
}

View File

@ -241,6 +241,9 @@
<if test="account2 != null">
and account2 + #{account2} >= 0
</if>
<if test="account4 != null">
and account4 + #{account4} >= 0
</if>
</update>
<select id="queryMemberAccountByMemberCode" resultType="com.hzs.member.account.dto.CuMemberRechargeAccountParam">

View File

@ -4,11 +4,7 @@ import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @Description: 转账类型
* @Author: ljc
* @Time: 2022/9/26 10:33
* @Classname: ETransferType
* @Package_name: com.hzs.common.core.enums
* 转账类型
*/
@AllArgsConstructor
@Getter