diff --git a/user-service/pom.xml b/user-service/pom.xml
index 3e2787e..d3bb213 100644
--- a/user-service/pom.xml
+++ b/user-service/pom.xml
@@ -163,7 +163,11 @@
jedis
2.9.0
-
+
+ com.aliyun
+ aliyun-java-sdk-core
+ 4.5.3
+
diff --git a/user-service/src/main/java/com/hp/user/service/constants/UserConstants.java b/user-service/src/main/java/com/hp/user/service/constants/UserConstants.java
new file mode 100644
index 0000000..1105367
--- /dev/null
+++ b/user-service/src/main/java/com/hp/user/service/constants/UserConstants.java
@@ -0,0 +1,14 @@
+package com.hp.user.service.constants;
+
+public class UserConstants {
+
+ /**
+ * 验证码redis前缀
+ */
+ public static String VERIFICATION_CODE = "verificationCode@";
+ /**
+ * rediskey失效时间
+ */
+ public static int EXPIRE_SECONDS = 900;
+
+}
diff --git a/user-service/src/main/java/com/hp/user/service/controller/MessageController.java b/user-service/src/main/java/com/hp/user/service/controller/MessageController.java
index 11a07f1..1ae2b3b 100644
--- a/user-service/src/main/java/com/hp/user/service/controller/MessageController.java
+++ b/user-service/src/main/java/com/hp/user/service/controller/MessageController.java
@@ -5,6 +5,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.hp.user.client.service.MessageService;
+import com.hp.user.service.util.SendSmsUtil;
import io.swagger.annotations.Api;
@@ -21,6 +22,7 @@ public class MessageController {
@Autowired
private MessageService messageService;
+
/**
* 发送验证码
* @param phoneNumber
diff --git a/user-service/src/main/java/com/hp/user/service/impl/MessageServiceImpl.java b/user-service/src/main/java/com/hp/user/service/impl/MessageServiceImpl.java
index 3b6fc8f..12adc45 100644
--- a/user-service/src/main/java/com/hp/user/service/impl/MessageServiceImpl.java
+++ b/user-service/src/main/java/com/hp/user/service/impl/MessageServiceImpl.java
@@ -1,8 +1,17 @@
package com.hp.user.service.impl;
+import java.util.Map;
+import java.util.Random;
+
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.hp.user.client.service.MessageService;
+import com.hp.user.service.constants.UserConstants;
+import com.hp.user.service.redis.RedisOperation;
+import com.hp.user.service.util.SendSmsUtil;
+
+import redis.clients.jedis.Jedis;
/**
* 信息服务实现类
@@ -12,11 +21,37 @@ import com.hp.user.client.service.MessageService;
*/
@Service
public class MessageServiceImpl implements MessageService {
+
+ @Autowired
+ private SendSmsUtil sendSmsUtil;
+ @Autowired
+ private RedisOperation redisOperation;
+
+
@Override
public void sendVerificationCode(String phone) {
- // TODO Auto-generated method stub
-
+ try {
+ Random rd = new Random();
+
+ StringBuilder code = new StringBuilder();
+ for(int i=0;i<6;i++) {
+ code.append(rd.nextInt(10));
+ }
+ String codeStr = code.toString();
+ Map map = sendSmsUtil.sendVerificationCode(phone, codeStr);
+ if("OK".equals(map.get("Code"))) {
+ //调用阿里云接口成功
+ //调用成功后需要将code缓存到redis中
+ Jedis jedis = redisOperation.getRedis();
+ jedis.setex(UserConstants.VERIFICATION_CODE+phone, UserConstants.EXPIRE_SECONDS, codeStr);
+ jedis.close();
+ }else {
+ //调用失败阿里云接口成功
+ }
+ }catch(Exception e) {
+
+ }
}
@Override
diff --git a/user-service/src/main/java/com/hp/user/service/redis/RedisOperation.java b/user-service/src/main/java/com/hp/user/service/redis/RedisOperation.java
index e286f34..851932e 100644
--- a/user-service/src/main/java/com/hp/user/service/redis/RedisOperation.java
+++ b/user-service/src/main/java/com/hp/user/service/redis/RedisOperation.java
@@ -1,11 +1,5 @@
package com.hp.user.service.redis;
-import java.io.IOException;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.ApplicationArguments;
diff --git a/user-service/src/main/java/com/hp/user/util/IdWorker.java b/user-service/src/main/java/com/hp/user/service/util/IdWorker.java
similarity index 99%
rename from user-service/src/main/java/com/hp/user/util/IdWorker.java
rename to user-service/src/main/java/com/hp/user/service/util/IdWorker.java
index f80689c..de3ff64 100644
--- a/user-service/src/main/java/com/hp/user/util/IdWorker.java
+++ b/user-service/src/main/java/com/hp/user/service/util/IdWorker.java
@@ -1,4 +1,4 @@
-package com.hp.user.util;
+package com.hp.user.service.util;
/**
* Id生成器
diff --git a/user-service/src/main/java/com/hp/user/service/util/SendSmsUtil.java b/user-service/src/main/java/com/hp/user/service/util/SendSmsUtil.java
new file mode 100644
index 0000000..cefc85c
--- /dev/null
+++ b/user-service/src/main/java/com/hp/user/service/util/SendSmsUtil.java
@@ -0,0 +1,78 @@
+package com.hp.user.service.util;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.stereotype.Component;
+
+import com.alibaba.fastjson.JSONObject;
+import com.aliyuncs.CommonRequest;
+import com.aliyuncs.CommonResponse;
+import com.aliyuncs.DefaultAcsClient;
+import com.aliyuncs.IAcsClient;
+import com.aliyuncs.exceptions.ClientException;
+import com.aliyuncs.exceptions.ServerException;
+import com.aliyuncs.profile.DefaultProfile;
+import com.google.gson.Gson;
+
+@Component
+public class SendSmsUtil implements ApplicationRunner{
+
+ @Value("${aliyun.regionId}")
+ private String regionId;
+ @Value("${aliyun.accessKeyId}")
+ private String accessKeyId;
+ @Value("${aliyun.secret}")
+ private String secret;
+ @Value("${aliyun.signName}")
+ private String signName;
+ @Value("${aliyun.templateCode}")
+ private String templateCode;
+
+ private DefaultProfile profile = null;
+
+ @Override
+ public void run(ApplicationArguments args) throws Exception {
+ if(profile == null) {
+ profile = DefaultProfile.getProfile(regionId, accessKeyId, secret);
+ }
+
+ }
+
+ /**
+ * 验证码发送
+ * @param phoneNumbers 手机号码
+ * @param code 6位随机验证码
+ * @return
+ * @throws ServerException
+ * @throws ClientException
+ */
+ public Map sendVerificationCode(String phoneNumbers,String code) throws ServerException, ClientException {
+ IAcsClient client = new DefaultAcsClient(profile);
+ CommonRequest request = new CommonRequest();
+ request.setSysDomain("dysmsapi.aliyuncs.com");
+ request.setSysVersion("2017-05-25");
+ request.setSysAction("SendSms");
+ // 接收短信的手机号码
+ request.putQueryParameter("PhoneNumbers", phoneNumbers);
+ // 短信签名名称。请在控制台签名管理页面签名名称一列查看(必须是已添加、并通过审核的短信签名)。
+ request.putQueryParameter("SignName", signName);
+ // 短信模板ID
+ request.putQueryParameter("TemplateCode", templateCode);
+ // 短信模板变量对应的实际值,JSON格式。
+ JSONObject codeJson = new JSONObject();
+ codeJson.put("code", code);
+ request.putQueryParameter("TemplateParam", codeJson.toJSONString());
+ CommonResponse commonResponse = client.getCommonResponse(request);
+ String data = commonResponse.getData();
+ String sData = data.replaceAll("'\'", "");
+// log_print("sendSms", sData);
+ Gson gson = new Gson();
+ Map map = gson.fromJson(sData, Map.class);
+ return map;
+ }
+
+
+
+}