!115 新增核心方法适配

Merge pull request !115 from sh1yu/dev-3.0.x
This commit is contained in:
风如歌 2023-11-29 07:48:26 +00:00 committed by Gitee
commit f255abe930
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
5 changed files with 26 additions and 10 deletions

View File

@ -15,9 +15,9 @@ public interface CoreMethodProcessor extends SmsProcessor {
default Object[] preProcessor(Method method, Object source, Object[] param) {
String name = method.getName();
int parameterCount = method.getParameterCount();
if ("sendMessage".equals(method.getName())) {
if ("sendMessage".equals(name)) {
if (NumberOfParasmeters.TWO == NumberOfParasmeters.getNumberOfParasmetersEnum(parameterCount)) {
sendMessagePreProcess((String) param[0],(String) param[1]);
sendMessagePreProcess((String) param[0], param[1]);
return param;
}
if (NumberOfParasmeters.THREE == NumberOfParasmeters.getNumberOfParasmetersEnum(parameterCount)) {
@ -25,7 +25,7 @@ public interface CoreMethodProcessor extends SmsProcessor {
return param;
}
}
if ("massTexting".equals(method.getName())) {
if ("massTexting".equals(name)) {
if (NumberOfParasmeters.TWO == NumberOfParasmeters.getNumberOfParasmetersEnum(parameterCount)) {
massTextingPreProcess((List<String>)param[0],(String)param[1]);
return param;
@ -37,7 +37,7 @@ public interface CoreMethodProcessor extends SmsProcessor {
}
return param;
}
void sendMessagePreProcess(String phone, String message);
void sendMessagePreProcess(String phone, Object message);
void sendMessageByTemplatePreProcess(String phone, String templateId, LinkedHashMap<String, String> messages);
void massTextingPreProcess(List<String> phones, String message);
void massTextingByTemplatePreProcess(List<String> phones, String templateId, LinkedHashMap<String, String> messages);

View File

@ -28,7 +28,7 @@ public class BlackListProcessor implements CoreMethodProcessor, SmsDaoAware {
}
@Override
public void sendMessagePreProcess(String phone, String message) {
public void sendMessagePreProcess(String phone, Object message) {
doRestricted(Collections.singletonList(phone));
}

View File

@ -21,7 +21,7 @@ public class CoreMethodParamValidateProcessor implements CoreMethodProcessor {
}
@Override
public void sendMessagePreProcess(String phone, String message) {
public void sendMessagePreProcess(String phone, Object message) {
validatePhone(phone);
validateMessage(message);
}
@ -44,9 +44,18 @@ public class CoreMethodParamValidateProcessor implements CoreMethodProcessor {
validateMessages(templateId, messages);
}
public void validateMessage(String message) {
if (null == message || "".equals(message)) {
throw new SmsBlendException("cant send a null message!");
public void validateMessage(Object messageObj) {
if (messageObj instanceof String){
String message = (String) messageObj;
if (null == message || "".equals(message)) {
throw new SmsBlendException("cant send a null message!");
}
}
if (messageObj instanceof Map){
Map message = (Map) messageObj;
if (message.size()<1) {
throw new SmsBlendException("cant send a null message!");
}
}
}

View File

@ -40,7 +40,7 @@ public class RestrictedProcessor implements CoreMethodProcessor, SmsDaoAware {
}
@Override
public void sendMessagePreProcess(String phone, String message) {
public void sendMessagePreProcess(String phone, Object message) {
doRestricted(Collections.singletonList(phone));
}

View File

@ -30,6 +30,13 @@ public class SmsProcessorTest {
@Test
public void testParamValidate() {
SmsBlendException knowEx = null;
try {
SmsFactory.getBySupplier(SupplierConstant.ALIBABA).sendMessage(PHONE, new LinkedHashMap<>());
} catch (SmsBlendException e) {
knowEx = e;
}
Assert.notNull(knowEx);
knowEx = null;
try {
SmsFactory.getBySupplier(SupplierConstant.ALIBABA).sendMessage("", SmsUtils.getRandomInt(6));
} catch (SmsBlendException e) {