From 0ae35d0397349099ef79a2f8835d177cad3b719a Mon Sep 17 00:00:00 2001
From: zainali5120 <512061637@qq.com>
Date: Tue, 03 Nov 2020 21:49:19 +0800
Subject: [PATCH] 绑定邮箱或者手机号时需要已由账号的验证码

---
 src/main/java/com/xcong/excoin/common/system/service/impl/CommonServiceImpl.java    |    3 +++
 src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberBindEmailDto.java |    4 ++++
 src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java   |   13 ++++++++++++-
 src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberBindPhoneDto.java |    8 ++++++--
 4 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/common/system/service/impl/CommonServiceImpl.java b/src/main/java/com/xcong/excoin/common/system/service/impl/CommonServiceImpl.java
index 265b41a..5e44ac6 100644
--- a/src/main/java/com/xcong/excoin/common/system/service/impl/CommonServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/common/system/service/impl/CommonServiceImpl.java
@@ -25,6 +25,9 @@
 
     @Override
     public boolean verifyCode(String account, String code) {
+        if(StrUtil.isBlank(code)){
+            return false;
+        }
         String cacheCode = redisUtils.getString(AppContants.VERIFY_CODE_PREFIX + account);
         if (StrUtil.isBlank(cacheCode)) {
             return false;
diff --git a/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberBindEmailDto.java b/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberBindEmailDto.java
index 1a8f2cc..70da0ba 100644
--- a/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberBindEmailDto.java
+++ b/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberBindEmailDto.java
@@ -13,6 +13,10 @@
 	@NotNull(message = "验证码不能为空")
     @ApiModelProperty(value = "验证码", example = "123456")
 	private String code;
+
+	@NotNull(message = "手机验证码验证码不能为空")
+    @ApiModelProperty(value = "手机验证码验证码", example = "123456")
+	private String otherCode;
 	
 	@NotNull(message = "邮箱不能为空")
     @ApiModelProperty(value = "邮箱", example = "www.13412341234@134.com")
diff --git a/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberBindPhoneDto.java b/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberBindPhoneDto.java
index f7d6afc..6faddc9 100644
--- a/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberBindPhoneDto.java
+++ b/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberBindPhoneDto.java
@@ -10,9 +10,13 @@
 @ApiModel(value = "MemberBindPhoneDto", description = "绑定手机号参数接收类")
 public class MemberBindPhoneDto {
 	
-	@NotNull(message = "验证码不能为空")
-    @ApiModelProperty(value = "验证码", example = "123456")
+	@NotNull(message = "手机验证码不能为空")
+    @ApiModelProperty(value = "手机验证码", example = "123456")
 	private String code;
+
+	@NotNull(message = "邮箱验证码不能为空")
+    @ApiModelProperty(value = "邮箱验证码", example = "123456")
+	private String otherCode;
 	
 	@NotNull(message = "电话号码不能为空")
     @ApiModelProperty(value = "电话号码", example = "13412341234")
diff --git a/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java b/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
index 7e350ff..7e989d3 100644
--- a/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
@@ -600,7 +600,11 @@
 
         if (ObjectUtil.isNotEmpty(member)) {
             if (!commonservice.verifyCode(phone, code)) {
-                return Result.fail(MessageSourceUtils.getString("member_service_0013"));
+                return Result.fail("手机"+MessageSourceUtils.getString("member_service_0013"));
+            }
+            // 验证邮箱验证码
+            if (!commonservice.verifyCode(member.getEmail(), memberBindPhoneDto.getOtherCode())) {
+                return Result.fail("邮箱"+MessageSourceUtils.getString("member_service_0013"));
             }
             Map<String, Object> columnMap = new HashMap<>();
             columnMap.put("phone", phone);
@@ -628,6 +632,13 @@
 
         MemberEntity member = memberDao.selectById(memberId);
         boolean flag = commonservice.verifyCode(email, code);
+        boolean flag2 = commonservice.verifyCode(member.getPhone(), memberBindEmailDto.getOtherCode());
+       if(!flag){
+           return Result.ok("邮箱"+MessageSourceUtils.getString("member_service_0018"));
+       }
+       if(!flag2){
+           return Result.ok("手机"+MessageSourceUtils.getString("member_service_0018"));
+       }
         if (ObjectUtil.isNotEmpty(member)) {
             if (flag) {
                 Map<String, Object> columnMap = new HashMap<>();

--
Gitblit v1.9.1