From f658569891db433854221b80f0a9fa99608cff64 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Fri, 03 Apr 2026 18:22:34 +0800
Subject: [PATCH] 1

---
 trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiIndexController.java |   35 +++++++++++++++++++++++++++++++++++
 1 files changed, 35 insertions(+), 0 deletions(-)

diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiIndexController.java b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiIndexController.java
index 89d1b59..c433882 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiIndexController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiIndexController.java
@@ -602,6 +602,7 @@
     @PostMapping("/login")
     @ApiOperation(value = "账号密码(用于前端登录)", notes = "通过账号/手机号/用户名密码登录,还要携带用户的类型,也就是用户所在的系统")
     public Result login(@Valid UserLoginModel model, HttpServletResponse httpResponse) {
+        validateMainlandIpAccess();
         String mobileOrUserName = model.getUserName();
         User user = null;
         if (model.getType() == 1) {
@@ -676,6 +677,8 @@
     @PostMapping("/registerNoVerifcode")
     @ApiOperation(value = "手机/邮箱/用户名注册(无验证码)")
     public Result register(@Valid RegisterModel model) {
+        validateMainlandIpAccess();
+        validateMainlandEmailRegister(model.getUserName(), model.getType());
 
         String username = model.getUserName();
         String password = model.getPassword();
@@ -716,6 +719,8 @@
     @PostMapping("/registerVerifcode")
     @ApiOperation(value = "手机(有验证码)")
     public Result registerVerifcode(@Valid RegisterMobile model) {
+        validateMainlandIpAccess();
+        validateMainlandEmailRegister(model.getUserName(), model.getType());
 
         String username = model.getUserName();
         String password = model.getPassword();
@@ -889,4 +894,34 @@
         return resultObject;
     }
 
+    private void validateMainlandIpAccess() {
+        String clientIp = IPHelper.getIpAddr();
+        List<RiskClient> riskList = RiskClientUtil.getRiskInfoByIp(clientIp, "badnetwork");
+        if (CollectionUtil.isNotEmpty(riskList)) {
+            throw new YamiShopBindException("大陆IP禁止访问");
+        }
+    }
+
+    private void validateMainlandEmailRegister(String userName, Integer type) {
+        if (type == null || type != 2 || StringUtils.isEmptyString(userName)) {
+            return;
+        }
+        int atPos = userName.lastIndexOf("@");
+        if (atPos <= 0 || atPos >= userName.length() - 1) {
+            return;
+        }
+        String domain = userName.substring(atPos + 1).trim().toLowerCase();
+        if (domain.endsWith(".cn")) {
+            throw new YamiShopBindException("大陆邮箱不支持注册");
+        }
+        Set<String> blockedDomains = new HashSet<>(Arrays.asList(
+                "qq.com", "foxmail.com", "163.com", "126.com", "yeah.net",
+                "sina.com", "sina.cn", "sohu.com", "aliyun.com", "21cn.com",
+                "189.cn", "tom.com"
+        ));
+        if (blockedDomains.contains(domain)) {
+            throw new YamiShopBindException("大陆邮箱不支持注册");
+        }
+    }
+
 }

--
Gitblit v1.9.3