From c585a0787fb7414b115b978c80b2954aa5312e62 Mon Sep 17 00:00:00 2001 From: yeqd Date: Fri, 27 Nov 2020 16:59:49 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=9F=AD=E4=BF=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- user-service/pom.xml | 6 +- .../user/service/constants/UserConstants.java | 14 ++++ .../service/controller/MessageController.java | 2 + .../user/service/impl/MessageServiceImpl.java | 39 +++++++++- .../hp/user/service/redis/RedisOperation.java | 6 -- .../hp/user/{ => service}/util/IdWorker.java | 2 +- .../com/hp/user/service/util/SendSmsUtil.java | 78 +++++++++++++++++++ 7 files changed, 137 insertions(+), 10 deletions(-) create mode 100644 user-service/src/main/java/com/hp/user/service/constants/UserConstants.java rename user-service/src/main/java/com/hp/user/{ => service}/util/IdWorker.java (99%) create mode 100644 user-service/src/main/java/com/hp/user/service/util/SendSmsUtil.java 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; + } + + + +} From 9d81b83d394363ba19b58d277bef77f3d39592fd Mon Sep 17 00:00:00 2001 From: yeqd Date: Fri, 27 Nov 2020 17:20:05 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hp/user/service/controller/AreaController.java | 4 +++- .../com/hp/user/service/controller/CompanyController.java | 5 +++-- .../com/hp/user/service/controller/MessageController.java | 2 +- .../com/hp/user/service/controller/StationController.java | 5 +++-- .../com/hp/user/service/impl/CustomerCompanyServiceImpl.java | 1 - .../java/com/hp/user/service/impl/MessageServiceImpl.java | 2 +- .../java/com/hp/user/service/impl/StationServiceImpl.java | 1 - .../java/com/hp/user/{ => service}/utils/HttpResult.java | 2 +- .../java/com/hp/user/service/{util => utils}/IdWorker.java | 2 +- .../com/hp/user/service/{util => utils}/SendSmsUtil.java | 2 +- 10 files changed, 14 insertions(+), 12 deletions(-) rename user-service/src/main/java/com/hp/user/{ => service}/utils/HttpResult.java (97%) rename user-service/src/main/java/com/hp/user/service/{util => utils}/IdWorker.java (99%) rename user-service/src/main/java/com/hp/user/service/{util => utils}/SendSmsUtil.java (98%) diff --git a/user-service/src/main/java/com/hp/user/service/controller/AreaController.java b/user-service/src/main/java/com/hp/user/service/controller/AreaController.java index b73af58..02669d2 100644 --- a/user-service/src/main/java/com/hp/user/service/controller/AreaController.java +++ b/user-service/src/main/java/com/hp/user/service/controller/AreaController.java @@ -1,10 +1,12 @@ package com.hp.user.service.controller; import com.hp.user.client.entity.AreaVO; -import com.hp.user.utils.HttpResult; + import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import com.hp.user.client.service.UserAreaService; +import com.hp.user.service.utils.HttpResult; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/user-service/src/main/java/com/hp/user/service/controller/CompanyController.java b/user-service/src/main/java/com/hp/user/service/controller/CompanyController.java index 3c06fa4..7c587d3 100644 --- a/user-service/src/main/java/com/hp/user/service/controller/CompanyController.java +++ b/user-service/src/main/java/com/hp/user/service/controller/CompanyController.java @@ -3,8 +3,9 @@ package com.hp.user.service.controller; import com.hp.user.client.entity.CompanyPage; import com.hp.user.client.entity.CustomerCompanyVO; import com.hp.user.client.service.CustomerCompanyService; -import com.hp.user.util.IdWorker; -import com.hp.user.utils.HttpResult; +import com.hp.user.service.utils.HttpResult; +import com.hp.user.service.utils.IdWorker; + import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; 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 1ae2b3b..a661fd2 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,7 +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 com.hp.user.service.utils.SendSmsUtil; import io.swagger.annotations.Api; diff --git a/user-service/src/main/java/com/hp/user/service/controller/StationController.java b/user-service/src/main/java/com/hp/user/service/controller/StationController.java index 1fa1400..776d47f 100644 --- a/user-service/src/main/java/com/hp/user/service/controller/StationController.java +++ b/user-service/src/main/java/com/hp/user/service/controller/StationController.java @@ -3,8 +3,9 @@ package com.hp.user.service.controller; import com.hp.user.client.entity.StationPage; import com.hp.user.client.entity.StationVO; import com.hp.user.client.service.StationService; -import com.hp.user.util.IdWorker; -import com.hp.user.utils.HttpResult; +import com.hp.user.service.utils.HttpResult; +import com.hp.user.service.utils.IdWorker; + import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; diff --git a/user-service/src/main/java/com/hp/user/service/impl/CustomerCompanyServiceImpl.java b/user-service/src/main/java/com/hp/user/service/impl/CustomerCompanyServiceImpl.java index 784d06d..3fec9da 100644 --- a/user-service/src/main/java/com/hp/user/service/impl/CustomerCompanyServiceImpl.java +++ b/user-service/src/main/java/com/hp/user/service/impl/CustomerCompanyServiceImpl.java @@ -11,7 +11,6 @@ import com.hp.user.service.dao.CustomerCompanyMapper; import com.hp.user.service.dao.CustomerServiceProviderEnterpriseMapper; import com.hp.user.service.entity.CustomerCompany; import com.hp.user.service.entity.CustomerServiceProviderEnterprise; -import com.hp.user.util.IdWorker; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; 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 12adc45..1823ec4 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 @@ -9,7 +9,7 @@ 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 com.hp.user.service.utils.SendSmsUtil; import redis.clients.jedis.Jedis; diff --git a/user-service/src/main/java/com/hp/user/service/impl/StationServiceImpl.java b/user-service/src/main/java/com/hp/user/service/impl/StationServiceImpl.java index 2386e02..9be8144 100644 --- a/user-service/src/main/java/com/hp/user/service/impl/StationServiceImpl.java +++ b/user-service/src/main/java/com/hp/user/service/impl/StationServiceImpl.java @@ -9,7 +9,6 @@ import com.hp.user.client.entity.StationVO; import com.hp.user.client.service.StationService; import com.hp.user.service.dao.StationMapper; import com.hp.user.service.entity.Station; -import com.hp.user.util.IdWorker; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/user-service/src/main/java/com/hp/user/utils/HttpResult.java b/user-service/src/main/java/com/hp/user/service/utils/HttpResult.java similarity index 97% rename from user-service/src/main/java/com/hp/user/utils/HttpResult.java rename to user-service/src/main/java/com/hp/user/service/utils/HttpResult.java index 8507ca9..62c5e18 100644 --- a/user-service/src/main/java/com/hp/user/utils/HttpResult.java +++ b/user-service/src/main/java/com/hp/user/service/utils/HttpResult.java @@ -1,4 +1,4 @@ -package com.hp.user.utils; +package com.hp.user.service.utils; import java.io.Serializable; public class HttpResult implements Serializable{ diff --git a/user-service/src/main/java/com/hp/user/service/util/IdWorker.java b/user-service/src/main/java/com/hp/user/service/utils/IdWorker.java similarity index 99% rename from user-service/src/main/java/com/hp/user/service/util/IdWorker.java rename to user-service/src/main/java/com/hp/user/service/utils/IdWorker.java index de3ff64..570887a 100644 --- a/user-service/src/main/java/com/hp/user/service/util/IdWorker.java +++ b/user-service/src/main/java/com/hp/user/service/utils/IdWorker.java @@ -1,4 +1,4 @@ -package com.hp.user.service.util; +package com.hp.user.service.utils; /** * 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/utils/SendSmsUtil.java similarity index 98% rename from user-service/src/main/java/com/hp/user/service/util/SendSmsUtil.java rename to user-service/src/main/java/com/hp/user/service/utils/SendSmsUtil.java index cefc85c..7e0c821 100644 --- a/user-service/src/main/java/com/hp/user/service/util/SendSmsUtil.java +++ b/user-service/src/main/java/com/hp/user/service/utils/SendSmsUtil.java @@ -1,4 +1,4 @@ -package com.hp.user.service.util; +package com.hp.user.service.utils; import java.util.Map; import org.springframework.beans.factory.annotation.Value;