fix(基础模块): 修复阿里云语音仅拨打一个用户号码的问题 (#597)

Co-authored-by: fighter-wang <11291691+fighter-wang@user.noreply.gitee.com>
This commit is contained in:
fighter-wang 2024-12-18 16:15:42 +08:00 committed by GitHub
parent 647f6ec9f3
commit 6e40f6fb8a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 14 additions and 13 deletions

View File

@ -18,6 +18,7 @@ import org.jetlinks.community.notify.template.TemplateManager;
import org.jetlinks.community.notify.voice.VoiceProvider;
import org.jetlinks.core.Values;
import org.springframework.util.StringUtils;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import reactor.core.scheduler.Schedulers;
@ -76,17 +77,18 @@ public class AliyunVoiceNotifier extends AbstractNotifier<AliyunVoiceTemplate> {
@Nonnull
public Mono<Void> send(@Nonnull AliyunVoiceTemplate template, @Nonnull Values context) {
return Mono.<Void>defer(() -> {
if (AliyunVoiceTemplate.TemplateType.voice == template.getTemplateType()) {
return convertVoiceRequest(template, context)
.flatMap(this::handleRequest);
} else {
return convertTtsRequest(template, context)
.flatMap(this::handleRequest);
}
}).doOnEach(ReactiveLogger.onError(err -> {
log.info("发起语音通知失败", err);
})).subscribeOn(Schedulers.boundedElastic());
return Flux.defer(() -> {
if (AliyunVoiceTemplate.TemplateType.voice == template.getTemplateType()) {
return convertVoiceRequest(template, context)
.flatMap(this::handleRequest);
} else {
return convertTtsRequest(template, context)
.flatMap(this::handleRequest);
}
}).doOnEach(ReactiveLogger.onError(err -> {
log.info("发起语音通知失败", err);
})).subscribeOn(Schedulers.boundedElastic())
.then();
}
@Override
@ -116,10 +118,9 @@ public class AliyunVoiceNotifier extends AbstractNotifier<AliyunVoiceTemplate> {
}
Mono<CommonRequest> convertVoiceRequest(AliyunVoiceTemplate template, Values context){
Flux<CommonRequest> convertVoiceRequest(AliyunVoiceTemplate template, Values context){
return template
.getCalledNumber(context.getAllValues())
.next()
.map(calledNumber -> {
CommonRequest request = convert(template);
request.putQueryParameter("CalledNumber", calledNumber);