Просмотр исходного кода

fix:入驻身份证号去重校验,数据库也要唯一索引和清理脏数据

李亚非 2 месяцев назад
Родитель
Сommit
0a68947185
1 измененных файлов с 13 добавлено и 15 удалено
  1. 13 15
      alien-store/src/main/java/shop/alien/store/controller/AliController.java

+ 13 - 15
alien-store/src/main/java/shop/alien/store/controller/AliController.java

@@ -80,22 +80,20 @@ public class AliController {
     })
     })
     @GetMapping("/getIdInfo")
     @GetMapping("/getIdInfo")
     public R getIdInfo(@RequestParam("name") String name, @RequestParam("idCard") String idCard, @RequestParam("appType") Integer appType) {
     public R getIdInfo(@RequestParam("name") String name, @RequestParam("idCard") String idCard, @RequestParam("appType") Integer appType) {
-        log.info("AliController.getIdInfo?name={}&idCard={}", name, idCard);
+        String normalizedName = name == null ? null : name.trim();
+        String normalizedIdCard = idCard == null ? null : idCard.trim().toUpperCase();
+        log.info("AliController.getIdInfo?name={}&idCard={}", normalizedName, normalizedIdCard);
         int size = 0;
         int size = 0;
         if (appType == 0) {
         if (appType == 0) {
-            //根据身份查询未注销的用户
-            size = lifeUserService
-                    .list(new LambdaQueryWrapper<LifeUser>()
-                            .eq(LifeUser::getIdCard, idCard)
-                            .eq(LifeUser::getRealName, name)
-                            .eq(LifeUser::getLogoutFlag, 0))
-                    .size();
+            // 根据身份证查询未注销用户:同一身份证只能实名一个账号
+            size = lifeUserService.count(new LambdaQueryWrapper<LifeUser>()
+                    .eq(LifeUser::getIdCard, normalizedIdCard)
+                    .eq(LifeUser::getLogoutFlag, 0));
         } else {
         } else {
-            //根据身份查询已入驻或审核中的商家
+            // 根据身份证查询已入驻或审核中的商家:同一身份证只能实名一个账号
             List<StoreUser> storeUserList = storeUserService
             List<StoreUser> storeUserList = storeUserService
                     .list(new LambdaQueryWrapper<StoreUser>()
                     .list(new LambdaQueryWrapper<StoreUser>()
-                            .eq(StoreUser::getIdCard, idCard)
-                            .eq(StoreUser::getName, name));
+                            .eq(StoreUser::getIdCard, normalizedIdCard));
             List<Integer> storeIds = storeUserList.stream()
             List<Integer> storeIds = storeUserList.stream()
                     .map(StoreUser::getStoreId)
                     .map(StoreUser::getStoreId)
                     .filter(Objects::nonNull)
                     .filter(Objects::nonNull)
@@ -108,10 +106,10 @@ public class AliController {
                         .size();
                         .size();
             }
             }
         }
         }
-//        if (size > 0) {
-//            return R.fail("该身份证已实名认证过");
-//        }
-        if (aliPayConfig.getIdInfo(name, idCard)) {
+        if (size > 0) {
+            return R.fail("该身份证已实名认证过");
+        }
+        if (aliPayConfig.getIdInfo(normalizedName, normalizedIdCard)) {
             return R.success("身份验证成功");
             return R.success("身份验证成功");
         }
         }
 //        Map map = new HashMap();
 //        Map map = new HashMap();