浏览代码

取消商户端身份证验证的唯一性判断

lutong 4 周之前
父节点
当前提交
d92fe71627

+ 5 - 43
alien-store-platform/src/main/java/shop/alien/storeplatform/service/impl/MerchantAuthServiceImpl.java

@@ -6,18 +6,10 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import shop.alien.entity.result.R;
 import shop.alien.entity.store.LifeUser;
-import shop.alien.entity.store.StoreInfo;
-import shop.alien.entity.store.StoreUser;
 import shop.alien.mapper.LifeUserMapper;
-import shop.alien.mapper.StoreInfoMapper;
-import shop.alien.mapper.StoreUserMapper;
 import shop.alien.storeplatform.service.MerchantAuthService;
 import shop.alien.storeplatform.util.AliApiUtil;
 
-import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collectors;
-
 /**
  * web端商户身份验证服务实现类
  *
@@ -33,52 +25,22 @@ public class MerchantAuthServiceImpl implements MerchantAuthService {
 
     private final LifeUserMapper lifeUserMapper;
 
-    private final StoreUserMapper storeUserMapper;
-
-    private final StoreInfoMapper storeInfoMapper;
-
     @Override
     public R<String> verifyIdInfo(String name, String idCard, Integer appType) {
         log.info("MerchantAuthServiceImpl.verifyIdInfo?name={}&idCard={}&appType={}", name, idCard, appType);
         
-        // 根据端类型查询是否已实名认证
-        int size = 0;
+        // 根据端类型查询是否已实名认证(仅用户端限制一证一号;商家端允许多个商户账号使用同一身份证)
         if (appType == 0) {
-            // 用户端:查询未注销的用户
+            // 用户端:查询未注销的用户,同一身份证只能实名一个用户账号
             LambdaQueryWrapper<LifeUser> userWrapper = new LambdaQueryWrapper<>();
             userWrapper.eq(LifeUser::getIdCard, idCard)
                        .eq(LifeUser::getRealName, name)
                        .eq(LifeUser::getLogoutFlag, 0);  // 只查询未注销的用户
-            size = lifeUserMapper.selectCount(userWrapper);
-        } else {
-            // 商家端:查询已入驻或审核中的商家(排除已注销和审核失败的店铺)
-            // 1. 先根据身份证和姓名查询商户用户(排除已注销的用户)
-            LambdaQueryWrapper<StoreUser> storeUserWrapper = new LambdaQueryWrapper<>();
-            storeUserWrapper.eq(StoreUser::getIdCard, idCard)
-                           .eq(StoreUser::getName, name)
-                           .eq(StoreUser::getLogoutFlag, 0);  // 排除已注销的商户用户
-            List<StoreUser> storeUserList = storeUserMapper.selectList(storeUserWrapper);
-            
-            // 2. 获取这些商户用户绑定的店铺ID
-            List<Integer> storeIds = storeUserList.stream()
-                    .map(StoreUser::getStoreId)
-                    .filter(Objects::nonNull)  // 过滤掉空的店铺ID
-                    .collect(Collectors.toList());
-            
-            // 3. 如果有店铺ID,查询非审核失败且非注销状态的店铺
-            if (!storeIds.isEmpty()) {
-                LambdaQueryWrapper<StoreInfo> storeInfoWrapper = new LambdaQueryWrapper<>();
-                storeInfoWrapper.in(StoreInfo::getId, storeIds)
-                               .notIn(StoreInfo::getStoreApplicationStatus, 2)  // 排除审核失败的店铺(状态2)
-                               .eq(StoreInfo::getLogoutFlag, 0)  // 排除已注销的店铺(logoutFlag=0表示未注销)
-                               .ne(StoreInfo::getStoreStatus, -1);  // 排除注销中状态的店铺(storeStatus=-1表示注销中)
-                size = storeInfoMapper.selectCount(storeInfoWrapper);
+            if (lifeUserMapper.selectCount(userWrapper) > 0) {
+                return R.fail("该身份证已实名认证过");
             }
         }
-        
-        if (size > 0) {
-            return R.fail("该身份证已实名认证过");
-        }
+        // 商家端(appType=1):不校验身份证是否已被其他商户使用,允许多个商户账号使用同一身份证,仅做支付宝二要素核验
         
         // 调用支付宝身份验证接口
         if (aliApiUtil.verifyIdCard(name, idCard)) {