优化短信发送方法
authorqiaowei <jov123@163.com>
Mon, 11 Nov 2019 09:10:56 +0000 (17:10 +0800)
committerqiaowei <jov123@163.com>
Mon, 11 Nov 2019 09:10:56 +0000 (17:10 +0800)
payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt
payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/impl/MobileApiServiceImpl.kt

index 6e2de3c..da66271 100644 (file)
@@ -93,8 +93,8 @@ class ApiInit {
                 return JsonResult.error("类型错误")
             }
         }
-        // 如果未设置密码
-        val temp = redisTemplate.opsForValue().get(phone)
+        //如果已经发送了
+        val temp = redisTemplate.opsForValue().get(phone.plus("_after"))
         if (temp.isNullOrEmpty()) {
             val code = RandomUtils.randomNumber(6)
             logger.error { code }
@@ -105,6 +105,7 @@ class ApiInit {
                 return JsonResult.error(rs.retmsg)
             }
             redisTemplate.opsForValue().set(phone, code, Duration.ofMinutes(5))
+            redisTemplate.opsForValue().set(phone.plus("_after"), code, Duration.ofMinutes(2))
         }
         return JsonResult.ok("验证码已发送")
     }
index 292b73c..36c5158 100644 (file)
@@ -30,7 +30,9 @@ class MobileApiServiceImpl : MobileApiService {
 
     @Autowired
     lateinit var systemUtilService: SystemUtilService
-
+    companion object {
+        var isMsgLogined: Boolean = false
+    }
     val logger = KotlinLogging.logger { }
 
     override fun saveUser(user: TBMobileUser): TBMobileUser {
@@ -123,12 +125,15 @@ class MobileApiServiceImpl : MobileApiService {
         }
         var client = Client.getInstance()
         // 正式环境IP,登录验证URL,用户名,密码,集团客户名称
-        var ret = client.login(url, account, pwd, ecname)
-        if (!ret) {
-            logger.error { "无法登陆短信平台,身份验证失" }
-            resp.retcode = "1"
-            resp.retmsg = "无法登陆短信平台"
-            return resp
+        if(!isMsgLogined){
+            var ret = client.login(url, account, pwd, ecname)
+            if (!ret) {
+                logger.error { "无法登陆短信平台,身份验证失" }
+                resp.retcode = "1"
+                resp.retmsg = "无法登陆短信平台"
+                return resp
+            }
+            isMsgLogined = true
         }
         var sendResult = client.sendTSMS(arrayOf(phone),
                 tempid, arrayOf(code), addserial, priority.toInt(), sign, UUID.randomUUID().toString())