Przeglądaj źródła

提交短信代码

chenken 7 lat temu
rodzic
commit
f72bbfaf56

+ 3 - 2
examcloud-exchange-inner-api-client/src/main/java/cn/com/qmth/examcloud/exchange/inner/api/client/SendSmsServiceClient.java

@@ -7,6 +7,7 @@ import org.springframework.web.client.RestTemplate;
 import cn.com.qmth.examcloud.exchange.inner.api.SendSmsCloudService;
 import cn.com.qmth.examcloud.exchange.inner.api.request.CheckSmsCodeReq;
 import cn.com.qmth.examcloud.exchange.inner.api.request.SendSmsReq;
+import cn.com.qmth.examcloud.exchange.inner.api.response.CheckIdentifyingCodeResp;
 
 /**
  * 
@@ -34,7 +35,7 @@ public class SendSmsServiceClient extends BasicCloudClientSupport implements Sen
 	}
 
 	@Override
-	public String checkIdentifyingCode(CheckSmsCodeReq checkSmsCodeReq) {
-		return post("/sendSms/sendIdentifyingCode", checkSmsCodeReq, String.class);
+	public CheckIdentifyingCodeResp checkIdentifyingCode(CheckSmsCodeReq checkSmsCodeReq) {
+		return post("/sendSms/sendIdentifyingCode", checkSmsCodeReq, CheckIdentifyingCodeResp.class);
 	}
 }

+ 10 - 5
examcloud-exchange-inner-api-provider/src/main/java/cn/com/qmth/examcloud/exchange/inner/api/provider/SendSmsProvider.java

@@ -2,16 +2,18 @@ package cn.com.qmth.examcloud.exchange.inner.api.provider;
 
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 
 
+import org.springframework.web.bind.annotation.RestController;
+
 import cn.com.qmth.examcloud.commons.base.exception.StatusException;
 import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
 import cn.com.qmth.examcloud.exchange.inner.api.SendSmsCloudService;
 import cn.com.qmth.examcloud.exchange.inner.api.request.CheckSmsCodeReq;
 import cn.com.qmth.examcloud.exchange.inner.api.request.SendSmsReq;
+import cn.com.qmth.examcloud.exchange.inner.api.response.CheckIdentifyingCodeResp;
 import cn.com.qmth.examcloud.exchange.inner.service.SendSmsService;
 import cn.com.qmth.examcloud.exchange.inner.service.bean.SendSmsInfo;
 
@@ -22,7 +24,7 @@ import cn.com.qmth.examcloud.exchange.inner.service.bean.SendSmsInfo;
  * @company QMTH
  * @description SendSmsProvider.java
  */
-@Controller
+@RestController
 @RequestMapping("${$rmp.cloud.exchange.inner}" + "/sendSms")
 public class SendSmsProvider extends ControllerSupport implements SendSmsCloudService {
 
@@ -47,15 +49,18 @@ public class SendSmsProvider extends ControllerSupport implements SendSmsCloudSe
 	
 	@Override
 	@RequestMapping(method = RequestMethod.POST, value = "/checkIdentifyingCode")
-	public String checkIdentifyingCode(CheckSmsCodeReq checkSmsCodeReq){
+	public CheckIdentifyingCodeResp checkIdentifyingCode(CheckSmsCodeReq checkSmsCodeReq){
 		if(StringUtils.isBlank(checkSmsCodeReq.getPhone())){
 			throw new StatusException("EX-SendSmsProvider-001", "手机号码不能为空");
 		}
 		if(StringUtils.isBlank(checkSmsCodeReq.getCode())){
 			throw new StatusException("EX-SendSmsProvider-002", "验证码不能为空");
 		}
-		sendSmsService.checkIdentifyingCode(checkSmsCodeReq.getPhone(), checkSmsCodeReq.getCode());
-		return "";
+		boolean success = sendSmsService.checkIdentifyingCode(checkSmsCodeReq.getPhone(), checkSmsCodeReq.getCode());
+		CheckIdentifyingCodeResp resp = new CheckIdentifyingCodeResp();
+		resp.setSuccess(success);
+		resp.setReturnMsg(success?"校验通过":"校验不通过");
+		return resp;
 	}
 
 }

+ 2 - 1
examcloud-exchange-inner-api/src/main/java/cn/com/qmth/examcloud/exchange/inner/api/SendSmsCloudService.java

@@ -3,6 +3,7 @@ package cn.com.qmth.examcloud.exchange.inner.api;
 import cn.com.qmth.examcloud.commons.web.cloud.api.CloudService;
 import cn.com.qmth.examcloud.exchange.inner.api.request.CheckSmsCodeReq;
 import cn.com.qmth.examcloud.exchange.inner.api.request.SendSmsReq;
+import cn.com.qmth.examcloud.exchange.inner.api.response.CheckIdentifyingCodeResp;
 
 /**
  * 短信发送
@@ -23,6 +24,6 @@ public interface SendSmsCloudService extends CloudService{
 	 * @param phone
 	 * @param code
 	 */
-	public String checkIdentifyingCode(CheckSmsCodeReq checkSmsCodeReq);
+	public CheckIdentifyingCodeResp checkIdentifyingCode(CheckSmsCodeReq checkSmsCodeReq);
 	
 }

+ 6 - 6
examcloud-exchange-inner-api/src/main/java/cn/com/qmth/examcloud/exchange/inner/api/request/SendSmsReq.java

@@ -28,11 +28,11 @@ public class SendSmsReq extends BaseRequest{
 	/**
 	 * 允许请求的间隔时间
 	 */
-	private int intervalSeconds;
+	private Integer intervalSeconds;
 	/**
 	 * 验证码有效时间   秒
 	 */
-	private int effectiveTime;
+	private Integer effectiveTime;
 
 	public String getPhone() {
 		return phone;
@@ -66,19 +66,19 @@ public class SendSmsReq extends BaseRequest{
 		this.sign = sign;
 	}
 
-	public int getEffectiveTime() {
+	public Integer getEffectiveTime() {
 		return effectiveTime;
 	}
 
-	public void setEffectiveTime(int effectiveTime) {
+	public void setEffectiveTime(Integer effectiveTime) {
 		this.effectiveTime = effectiveTime;
 	}
 
-	public int getIntervalSeconds() {
+	public Integer getIntervalSeconds() {
 		return intervalSeconds;
 	}
 
-	public void setIntervalSeconds(int intervalSeconds) {
+	public void setIntervalSeconds(Integer intervalSeconds) {
 		this.intervalSeconds = intervalSeconds;
 	}
 	

+ 32 - 0
examcloud-exchange-inner-api/src/main/java/cn/com/qmth/examcloud/exchange/inner/api/response/CheckIdentifyingCodeResp.java

@@ -0,0 +1,32 @@
+package cn.com.qmth.examcloud.exchange.inner.api.response;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+
+public class CheckIdentifyingCodeResp extends BaseResponse{
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -4183375914566275064L;
+
+	private String returnMsg;
+	
+	private Boolean success;
+
+	public String getReturnMsg() {
+		return returnMsg;
+	}
+
+	public void setReturnMsg(String returnMsg) {
+		this.returnMsg = returnMsg;
+	}
+
+	public Boolean getSuccess() {
+		return success;
+	}
+
+	public void setSuccess(Boolean success) {
+		this.success = success;
+	}
+	
+}

+ 12 - 10
examcloud-exchange-inner-service/src/main/java/cn/com/qmth/examcloud/exchange/inner/service/impl/SendSmsServiceImpl.java

@@ -4,15 +4,12 @@ import java.text.SimpleDateFormat;
 import java.util.Date;
 
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
 import com.aliyuncs.DefaultAcsClient;
 import com.aliyuncs.IAcsClient;
 import com.aliyuncs.dysmsapi.model.v20170525.QuerySendDetailsRequest;
 import com.aliyuncs.dysmsapi.model.v20170525.QuerySendDetailsResponse;
-import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
-import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
 import com.aliyuncs.exceptions.ClientException;
 import com.aliyuncs.exceptions.ServerException;
 import com.aliyuncs.profile.DefaultProfile;
@@ -45,6 +42,12 @@ public class SendSmsServiceImpl implements SendSmsService {
 	
 	@Override
 	public void sendIdentifyingCode(SendSmsInfo sendSmsInfo) {
+		if(sendSmsInfo.getEffectiveTime() == null || sendSmsInfo.getEffectiveTime() == 0){
+			sendSmsInfo.setEffectiveTime(120);//验证码默认有效时间
+		}
+		if(sendSmsInfo.getIntervalSeconds() == null|| sendSmsInfo.getIntervalSeconds() == 0){
+			sendSmsInfo.setIntervalSeconds(90);//默认间隔时间
+		}
 		SmsCodeRedisInfo smsCodeRedisInfo = redisClient.get(CODE_REDIS_KEY_PREFIXS+sendSmsInfo.getPhone(),SmsCodeRedisInfo.class);
 		if(smsCodeRedisInfo != null){
 			long createTime = smsCodeRedisInfo.getCreateTime();
@@ -111,12 +114,6 @@ public class SendSmsServiceImpl implements SendSmsService {
 		SmsCodeRedisInfo smsCodeRedisInfo = new SmsCodeRedisInfo();
 		smsCodeRedisInfo.setCode(sendSmsInfo.getCode());
 		smsCodeRedisInfo.setCreateTime(currentTime);
-		if(sendSmsInfo.getEffectiveTime() == null){
-			sendSmsInfo.setEffectiveTime(120);//验证码默认有效时间
-		}
-		if(sendSmsInfo.getIntervalSeconds() == null){
-			sendSmsInfo.setEffectiveTime(90);//默认间隔时间
-		}
 		redisClient.set(redisKey, smsCodeRedisInfo, sendSmsInfo.getEffectiveTime());
 	}
 	
@@ -167,7 +164,12 @@ public class SendSmsServiceImpl implements SendSmsService {
 	@Override
 	public boolean checkIdentifyingCode(String phone, String code) {
 		SmsCodeRedisInfo smsCodeRedisInfo = redisClient.get(CODE_REDIS_KEY_PREFIXS+phone, SmsCodeRedisInfo.class);
-		return code.equals(smsCodeRedisInfo.getCode()+"");
+		if(smsCodeRedisInfo!=null){
+			if(code.equals(smsCodeRedisInfo.getCode()+"")){
+				return true;
+			}
+		}
+		return false;
 	}
 	
 }