From b42c0777927e79bc77996b508a534ee4e56fd4c2 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Fri, 05 Jun 2026 23:42:16 +0800
Subject: [PATCH] 1
---
trading-order-service/src/main/java/com/yami/trading/service/impl/RealNameAuthRecordServiceImpl.java | 15 +++++++
trading-order-service/src/main/java/com/yami/trading/service/impl/WithdrawServiceImpl.java | 12 +++---
trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiExchangeLeverApplyOrderController.java | 7 ++-
trading-order-service/src/main/java/com/yami/trading/service/RealNameAuthRecordService.java | 9 ++++
trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiContractApplyOrderController.java | 7 ++-
trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiRechargeBlockchainController.java | 4 ++
trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiBankCardController.java | 7 ++-
trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiFuturesOrderController.java | 4 ++
trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiExchangeApplyOrderController.java | 5 +-
9 files changed, 53 insertions(+), 17 deletions(-)
diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiBankCardController.java b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiBankCardController.java
index d47ef0a..f4d6a53 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiBankCardController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiBankCardController.java
@@ -263,6 +263,9 @@
if (!party.isEnabled()) {
throw new YamiShopBindException("用户已锁定");
}
+ if ("recharge".equals(direction)) {
+ realNameAuthRecordService.requireApproved(party, false);
+ }
// 手续费
double fee = 0;
if ("withdraw".equals(direction)) {
@@ -293,8 +296,8 @@
if (party_kyc==null){
party_kyc=new RealNameAuthRecord();
}
- if (!(party_kyc.getStatus() == 2) && "true".equals(this.sysparaService.find("withdraw_by_kyc").getSvalue())) {
- throw new YamiShopBindException("未实名认证,无提现权限");
+ if ("true".equals(this.sysparaService.find("withdraw_by_kyc").getSvalue())) {
+ realNameAuthRecordService.requireApproved(party, false);
}
HighLevelAuthRecord party_kycHighLevel = highLevelAuthRecordService.findByUserId(partyId);
if (party_kycHighLevel==null){
diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiContractApplyOrderController.java b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiContractApplyOrderController.java
index b8c5650..6194239 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiContractApplyOrderController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiContractApplyOrderController.java
@@ -22,6 +22,7 @@
import com.yami.trading.common.util.ThreadUtils;
import com.yami.trading.security.common.util.SecurityUtils;
import com.yami.trading.service.MarketOpenChecker;
+import com.yami.trading.service.RealNameAuthRecordService;
import com.yami.trading.service.SessionTokenService;
import com.yami.trading.service.WalletService;
import com.yami.trading.service.contract.ContractApplyOrderService;
@@ -96,6 +97,8 @@
private SessionTokenService sessionTokenService;
@Autowired
TipService tipService;
+ @Autowired
+ private RealNameAuthRecordService realNameAuthRecordService;
// @Autowired
// private ExchangeRateService exchangeRateService;
@@ -228,6 +231,7 @@
throw new YamiShopBindException("用户已锁定");
}
validateTradePermission(user);
+ realNameAuthRecordService.requireApproved(user, true);
Syspara syspara = sysparaService.find("stop_user_internet");
String stopUserInternet = syspara.getSvalue();
@@ -583,9 +587,6 @@
// 模拟账户不做二步校验限制
if (user.getAccountType() != null && user.getAccountType() == 1) {
return;
- }
- if (!user.isGoogleAuthBind() || StringUtils.isEmptyString(user.getSafePassword())) {
- throw new YamiShopBindException("请先完成两步认证并设置资金密码后再交易");
}
}
}
diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiFuturesOrderController.java b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiFuturesOrderController.java
index 90e3dd6..29186e4 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiFuturesOrderController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiFuturesOrderController.java
@@ -19,6 +19,7 @@
import com.yami.trading.common.util.ThreadUtils;
import com.yami.trading.security.common.util.SecurityUtils;
import com.yami.trading.service.MarketOpenChecker;
+import com.yami.trading.service.RealNameAuthRecordService;
import com.yami.trading.service.SessionTokenService;
import com.yami.trading.service.WalletService;
import com.yami.trading.service.future.FuturesOrderService;
@@ -72,6 +73,8 @@
SysparaService sysparaService;
@Autowired
TipService tipService;
+ @Autowired
+ RealNameAuthRecordService realNameAuthRecordService;
// @Autowired
// private ExchangeRateService exchangeRateService;
@@ -170,6 +173,7 @@
if (!party.isEnabled()) {
throw new YamiShopBindException("用户已锁定");
}
+ realNameAuthRecordService.requireApproved(party, true);
if (null == object || !party.getUserId().equals((String) object)) {
throw new BusinessException("请稍后再试");
}
diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiRechargeBlockchainController.java b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiRechargeBlockchainController.java
index 44a6930..6279980 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiRechargeBlockchainController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiRechargeBlockchainController.java
@@ -9,6 +9,7 @@
import com.yami.trading.common.exception.YamiShopBindException;
import com.yami.trading.common.util.StringUtils;
import com.yami.trading.security.common.util.SecurityUtils;
+import com.yami.trading.service.RealNameAuthRecordService;
import com.yami.trading.service.RechargeBlockchainOrderService;
import com.yami.trading.service.SessionTokenService;
import com.yami.trading.service.c2c.C2cOrderService;
@@ -48,6 +49,8 @@
WalletLogService walletLogService;
@Autowired
C2cOrderService c2cOrderService;
+ @Autowired
+ RealNameAuthRecordService realNameAuthRecordService;
/**
* 首次进入页面,传递session_token
@@ -104,6 +107,7 @@
if (Constants.SECURITY_ROLE_TEST.equals(party.getRoleName())) {
throw new YamiShopBindException("无权限");
}
+ realNameAuthRecordService.requireApproved(party, false);
// 充值申请中的订单是否只能唯一:1唯一,2不限制
double recharge_only_one = Double.valueOf(sysparaService.find("recharge_only_one").getSvalue());
// 用户未结束银行卡订单数量
diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiExchangeApplyOrderController.java b/trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiExchangeApplyOrderController.java
index fd4893c..c565e26 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiExchangeApplyOrderController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiExchangeApplyOrderController.java
@@ -239,6 +239,7 @@
throw new YamiShopBindException("用户已禁用");
}
validateTradePermission(party);
+ realNameAuthRecordService.requireApproved(party, true);
Syspara syspara = sysparaService.find("stop_user_internet");
String stopUserInternet = syspara.getSvalue();
if (org.apache.commons.lang3.StringUtils.isNotEmpty(stopUserInternet)) {
@@ -431,6 +432,7 @@
throw new YamiShopBindException("用户已禁用!");
}
validateTradePermission(party);
+ realNameAuthRecordService.requireApproved(party, true);
symbol = itemService.getCleanSymbol(symbol);
symbol_to = itemService.getCleanSymbol(symbol_to);
String relation_order_no = UUID.randomUUID().toString();
@@ -573,9 +575,6 @@
// 模拟账户不做二步校验限制
if (user.getAccountType() != null && user.getAccountType() == 1) {
return;
- }
- if (!user.isGoogleAuthBind() || StringUtils.isEmptyString(user.getSafePassword())) {
- throw new YamiShopBindException("请先完成两步认证并设置资金密码后再交易");
}
}
diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiExchangeLeverApplyOrderController.java b/trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiExchangeLeverApplyOrderController.java
index 8068209..32c756a 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiExchangeLeverApplyOrderController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiExchangeLeverApplyOrderController.java
@@ -21,6 +21,7 @@
import com.yami.trading.common.util.StringUtils;
import com.yami.trading.common.util.ThreadUtils;
import com.yami.trading.security.common.util.SecurityUtils;
+import com.yami.trading.service.RealNameAuthRecordService;
import com.yami.trading.service.SessionTokenService;
import com.yami.trading.service.WalletService;
import com.yami.trading.service.data.DataService;
@@ -76,6 +77,8 @@
@Autowired
ExchangeLeverOrderService exchangeLeverOrderService;
+ @Autowired
+ RealNameAuthRecordService realNameAuthRecordService;
/**
* 开仓页面参数
@@ -199,6 +202,7 @@
throw new YamiShopBindException("用户已禁用");
}
validateTradePermission(party);
+ realNameAuthRecordService.requireApproved(party, true);
ExchangeLeverApplyOrder order = new ExchangeLeverApplyOrder();
order.setPartyId(SecurityUtils.getCurrentUserId());
order.setSymbol(symbol);
@@ -505,9 +509,6 @@
// 模拟账户不做二步校验限制
if (user.getAccountType() != null && user.getAccountType() == 1) {
return;
- }
- if (!user.isGoogleAuthBind() || StringUtils.isEmptyString(user.getSafePassword())) {
- throw new YamiShopBindException("请先完成两步认证并设置资金密码后再交易");
}
}
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/RealNameAuthRecordService.java b/trading-order-service/src/main/java/com/yami/trading/service/RealNameAuthRecordService.java
index eca0d88..9cf5288 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/RealNameAuthRecordService.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/RealNameAuthRecordService.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yami.trading.bean.model.RealNameAuthRecord;
+import com.yami.trading.bean.model.User;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -17,6 +18,14 @@
*/
boolean isPass(String userId);
+ /**
+ * 校验用户已完成实名认证(审核通过)。
+ *
+ * @param user 用户
+ * @param skipSimAccount 模拟账户是否跳过(开仓等场景)
+ */
+ void requireApproved(User user, boolean skipSimAccount);
+
Page pageRecord(Page page, String rolename, String idNumber, String status,String userCode, List<String> userIds);
long waitCount(List<String> userIds);
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/impl/RealNameAuthRecordServiceImpl.java b/trading-order-service/src/main/java/com/yami/trading/service/impl/RealNameAuthRecordServiceImpl.java
index 650b08c..6170453 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/impl/RealNameAuthRecordServiceImpl.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/impl/RealNameAuthRecordServiceImpl.java
@@ -7,6 +7,8 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yami.trading.bean.model.HighLevelAuthRecord;
import com.yami.trading.bean.model.RealNameAuthRecord;
+import com.yami.trading.bean.model.User;
+import com.yami.trading.common.exception.YamiShopBindException;
import com.yami.trading.dao.user.RealNameAuthRecordMapper;
import com.yami.trading.service.RealNameAuthRecordService;
import org.apache.ibatis.annotations.Param;
@@ -37,6 +39,19 @@
}
@Override
+ public void requireApproved(User user, boolean skipSimAccount) {
+ if (user == null) {
+ throw new YamiShopBindException("The user does not exist.\n");
+ }
+ if (skipSimAccount && user.getAccountType() != null && user.getAccountType() == 1) {
+ return;
+ }
+ if (!isPass(user.getUserId())) {
+ throw new YamiShopBindException("Please complete real-name verification first.");
+ }
+ }
+
+ @Override
public long waitCount(List<String> userIds) {
LambdaQueryWrapper<RealNameAuthRecord> lambdaQueryWrapper= Wrappers.<RealNameAuthRecord>query().lambda().eq(RealNameAuthRecord::getStatus,1);
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/impl/WithdrawServiceImpl.java b/trading-order-service/src/main/java/com/yami/trading/service/impl/WithdrawServiceImpl.java
index 7652faa..9e57be0 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/impl/WithdrawServiceImpl.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/impl/WithdrawServiceImpl.java
@@ -234,8 +234,8 @@
if (party_kyc==null){
party_kyc=new RealNameAuthRecord();
}
- if (!(party_kyc.getStatus() == 2) && "true".equals(sysparaService.find("withdraw_by_kyc").getSvalue())) {
- throw new YamiShopBindException("未基础认证");
+ if ("true".equals(sysparaService.find("withdraw_by_kyc").getSvalue())) {
+ realNameAuthRecordService.requireApproved(party, false);
}
double withdraw_by_high_kyc = Double.valueOf(sysparaService.find("withdraw_by_high_kyc").getSvalue());
if (withdraw_by_high_kyc > 0 && withdraw.getVolume().doubleValue() > withdraw_by_high_kyc
@@ -531,8 +531,8 @@
if (party_kyc==null){
party_kyc=new RealNameAuthRecord();
}
- if (!(party_kyc.getStatus() == 2) && "true".equals(sysparaService.find("withdraw_by_kyc").getSvalue())) {
- throw new YamiShopBindException("未基础认证");
+ if ("true".equals(sysparaService.find("withdraw_by_kyc").getSvalue())) {
+ realNameAuthRecordService.requireApproved(party, false);
}
if (party_kycHighLevel==null){
party_kycHighLevel=new HighLevelAuthRecord();
@@ -848,8 +848,8 @@
throw new YamiShopBindException("无权限");
}
RealNameAuthRecord realNameAuthRecord = realNameAuthRecordService.getByUserId(user.getUserId());
- if (!(realNameAuthRecord.getStatus() == 2) && "true".equals(sysparaService.find("withdraw_by_kyc").getSvalue())) {
- throw new YamiShopBindException("未安全认证,无提现权限");
+ if ("true".equals(sysparaService.find("withdraw_by_kyc").getSvalue())) {
+ realNameAuthRecordService.requireApproved(user, false);
}
HighLevelAuthRecord highLevelAuthRecord = highLevelAuthRecordService.findByUserId(withdraw.getUserId());
BigDecimal withdrawByHighKyc = new BigDecimal(sysparaService.find("withdraw_by_high_kyc").getSvalue());
--
Gitblit v1.9.3