xiongzhu 4 rokov pred
rodič
commit
921d627de1

+ 14 - 5
src/main/java/com/izouma/nineth/service/AdapayService.java

@@ -34,7 +34,15 @@ public class AdapayService {
         memberParams.put("cert_id", idNo);
         Map<String, Object> member = AdapayCommon.requestAdapay(memberParams);
         log.info("createMember\n{}", JSON.toJSONString(member, SerializerFeature.PrettyFormat));
-        checkSuccess(member);
+        try {
+            checkSuccess(member);
+        } catch (BusinessException e) {
+            if ("member_id_exists".equals(e.getMessage())) {
+                return id.toString();
+            } else {
+                throw e;
+            }
+        }
         return MapUtils.getString(member, "member_id");
     }
 
@@ -81,11 +89,12 @@ public class AdapayService {
 
     public static void checkSuccess(Map<String, Object> map) {
         if (!"succeeded".equals(MapUtils.getString(map, "status"))) {
-            if (!"member_id_exists".equals(MapUtils.getString(map, "error_code"))) {
-                String errMsg = MapUtils.getString(map, "error_msg");
-                String errCode = MapUtils.getString(map, "error_code");
-                throw new BusinessException(errMsg + "(" + errCode + ")");
+            if ("member_id_exists".equals(MapUtils.getString(map, "error_code"))) {
+                throw new BusinessException("member_id_exists");
             }
+            String errMsg = MapUtils.getString(map, "error_msg");
+            String errCode = MapUtils.getString(map, "error_code");
+            throw new BusinessException(errMsg + "(" + errCode + ")");
         }
     }
 }

+ 2 - 2
src/main/java/com/izouma/nineth/service/UserService.java

@@ -450,13 +450,13 @@ public class UserService {
         if (StringUtils.isEmpty(user.getMemberId())) {
             user.setMemberId(adapayService.createMember(userId, user.getPhone(), identityAuth.getRealName(),
                     identityAuth.getIdNo()));
-            userRepo.save(user);
+            userRepo.saveAndFlush(user);
         }
         smsService.verify(phone, code);
         String accountId = adapayService.createSettleAccount(user.getMemberId(), identityAuth.getRealName(),
                 identityAuth.getIdNo(), phone, bankNo);
         user.setSettleAccountId(accountId);
-        userRepo.saveAndFlush(user);
+        userRepo.save(user);
 
         userBankCardRepo.save(UserBankCard.builder()
                 .bank(bankValidate.getBank())