新增核心方法适配

This commit is contained in:
Sh1yu 2023-11-27 18:07:29 +08:00
parent 2766343f09
commit 363dc530aa
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) { default Object[] preProcessor(Method method, Object source, Object[] param) {
String name = method.getName(); String name = method.getName();
int parameterCount = method.getParameterCount(); int parameterCount = method.getParameterCount();
if ("sendMessage".equals(method.getName())) { if ("sendMessage".equals(name)) {
if (NumberOfParasmeters.TWO == NumberOfParasmeters.getNumberOfParasmetersEnum(parameterCount)) { if (NumberOfParasmeters.TWO == NumberOfParasmeters.getNumberOfParasmetersEnum(parameterCount)) {
sendMessagePreProcess((String) param[0],(String) param[1]); sendMessagePreProcess((String) param[0], param[1]);
return param; return param;
} }
if (NumberOfParasmeters.THREE == NumberOfParasmeters.getNumberOfParasmetersEnum(parameterCount)) { if (NumberOfParasmeters.THREE == NumberOfParasmeters.getNumberOfParasmetersEnum(parameterCount)) {
@ -25,7 +25,7 @@ public interface CoreMethodProcessor extends SmsProcessor {
return param; return param;
} }
} }
if ("massTexting".equals(method.getName())) { if ("massTexting".equals(name)) {
if (NumberOfParasmeters.TWO == NumberOfParasmeters.getNumberOfParasmetersEnum(parameterCount)) { if (NumberOfParasmeters.TWO == NumberOfParasmeters.getNumberOfParasmetersEnum(parameterCount)) {
massTextingPreProcess((List<String>)param[0],(String)param[1]); massTextingPreProcess((List<String>)param[0],(String)param[1]);
return param; return param;
@ -37,7 +37,7 @@ public interface CoreMethodProcessor extends SmsProcessor {
} }
return param; 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 sendMessageByTemplatePreProcess(String phone, String templateId, LinkedHashMap<String, String> messages);
void massTextingPreProcess(List<String> phones, String message); void massTextingPreProcess(List<String> phones, String message);
void massTextingByTemplatePreProcess(List<String> phones, String templateId, LinkedHashMap<String, String> messages); void massTextingByTemplatePreProcess(List<String> phones, String templateId, LinkedHashMap<String, String> messages);

View File

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

View File

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

View File

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