|
@@ -1,9 +1,11 @@
|
|
|
package com.skyversation.xjcy.oauth;
|
|
package com.skyversation.xjcy.oauth;
|
|
|
|
|
|
|
|
|
|
+import com.skyversation.xjcy.service.PhoneMessageSendService;
|
|
|
import com.skyversation.xjcy.util.cache.ExpirableCache;
|
|
import com.skyversation.xjcy.util.cache.ExpirableCache;
|
|
|
import com.skyversation.xjcy.util.cache.UnifiedExpirationGuavaCacheImpl;
|
|
import com.skyversation.xjcy.util.cache.UnifiedExpirationGuavaCacheImpl;
|
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.Getter;
|
|
import lombok.Getter;
|
|
|
|
|
+import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
import javax.annotation.PostConstruct;
|
|
import javax.annotation.PostConstruct;
|
|
@@ -16,6 +18,11 @@ import java.util.concurrent.TimeUnit;
|
|
|
public class PhoneService {
|
|
public class PhoneService {
|
|
|
|
|
|
|
|
private final ConcurrentHashMap<String, Object> lockPool = new ConcurrentHashMap<>();
|
|
private final ConcurrentHashMap<String, Object> lockPool = new ConcurrentHashMap<>();
|
|
|
|
|
+ private final PhoneMessageSendService phoneMessageSendService;
|
|
|
|
|
+
|
|
|
|
|
+ public PhoneService(PhoneMessageSendService phoneMessageSendService) {
|
|
|
|
|
+ this.phoneMessageSendService = phoneMessageSendService;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
@Getter
|
|
@Getter
|
|
|
@AllArgsConstructor
|
|
@AllArgsConstructor
|
|
@@ -46,8 +53,7 @@ public class PhoneService {
|
|
|
public boolean sendCode(String phone) {
|
|
public boolean sendCode(String phone) {
|
|
|
String code = generateCode();
|
|
String code = generateCode();
|
|
|
cache.put(phone,code,5,TimeUnit.MINUTES);
|
|
cache.put(phone,code,5,TimeUnit.MINUTES);
|
|
|
- System.out.println(code);
|
|
|
|
|
- return true;
|
|
|
|
|
|
|
+ return phoneMessageSendService.sendMessage(phone,code);
|
|
|
}
|
|
}
|
|
|
private boolean checkCode(String phone,String code){
|
|
private boolean checkCode(String phone,String code){
|
|
|
Object lock = lockPool.computeIfAbsent(phone, k -> new Object());
|
|
Object lock = lockPool.computeIfAbsent(phone, k -> new Object());
|