diff --git a/sms4j-comm/src/main/java/org/dromara/sms4j/comm/utils/SmsUtils.java b/sms4j-comm/src/main/java/org/dromara/sms4j/comm/utils/SmsUtils.java index 455ba89a..1fd865b1 100644 --- a/sms4j-comm/src/main/java/org/dromara/sms4j/comm/utils/SmsUtils.java +++ b/sms4j-comm/src/main/java/org/dromara/sms4j/comm/utils/SmsUtils.java @@ -8,6 +8,7 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import java.util.*; +import java.util.function.Function; import java.util.function.Predicate; /** @@ -191,10 +192,10 @@ public class SmsUtils { * @param 集合泛型 * @param 想要的数组类型 */ - public static E[] toArray(Collection list, Predicate predicate, E[] array) { + public static E[] toArray(Collection list, Predicate predicate, Function mapper, E[] array) { if (isEmpty(list)) { return array.clone(); } - return list.stream().filter(predicate).toArray(size -> array.clone()); + return list.stream().filter(predicate).map(mapper).toArray(size -> array.clone()); } } \ No newline at end of file diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/tencent/service/TencentSmsImpl.java b/sms4j-provider/src/main/java/org/dromara/sms4j/tencent/service/TencentSmsImpl.java index ddf0d023..f915e8f2 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/tencent/service/TencentSmsImpl.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/tencent/service/TencentSmsImpl.java @@ -52,7 +52,7 @@ public class TencentSmsImpl extends AbstractSmsBlend { @Override public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap messages) { - return getSmsResponse(new String[]{StrUtil.addPrefixIfNot(phone, "+86")}, SmsUtils.toArray(messages.values(), SmsUtils::isNotEmpty, new String[0]), templateId); + return getSmsResponse(new String[]{StrUtil.addPrefixIfNot(phone, "+86")}, toArray(messages), templateId); } @Override @@ -62,7 +62,11 @@ public class TencentSmsImpl extends AbstractSmsBlend { @Override public SmsResponse massTexting(List phones, String templateId, LinkedHashMap messages) { - return getSmsResponse(SmsUtils.listToArray(phones), SmsUtils.toArray(messages.values(), SmsUtils::isNotEmpty, new String[0]), templateId); + return getSmsResponse(SmsUtils.listToArray(phones), toArray(messages), templateId); + } + + private String[] toArray(LinkedHashMap messages){ + return SmsUtils.toArray(messages.values(), SmsUtils::isNotEmpty, s -> s, new String[0]); } private SmsResponse getSmsResponse(String[] phones, String[] messages, String templateId) {