feat: filter invalid info in alarm service

This commit is contained in:
KFCFans 2020-11-14 13:17:49 +08:00
parent 464ce2dc0c
commit c9b0cef1ea
3 changed files with 17 additions and 4 deletions

View File

@ -51,10 +51,14 @@ public class DingTalkAlarmService implements Alarmable {
} }
Set<String> userIds = Sets.newHashSet(); Set<String> userIds = Sets.newHashSet();
targetUserList.forEach(user -> { targetUserList.forEach(user -> {
String phone = user.getPhone();
if (StringUtils.isEmpty(phone)) {
return;
}
try { try {
String userId = mobile2UserIdCache.get(user.getPhone(), () -> { String userId = mobile2UserIdCache.get(phone, () -> {
try { try {
return dingTalkUtils.fetchUserIdByMobile(user.getPhone()); return dingTalkUtils.fetchUserIdByMobile(phone);
} catch (PowerJobException ignore) { } catch (PowerJobException ignore) {
return EMPTY_TAG; return EMPTY_TAG;
} catch (Exception ignore) { } catch (Exception ignore) {

View File

@ -14,6 +14,7 @@ import org.springframework.util.StringUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* 邮件通知服务 * 邮件通知服务
@ -43,7 +44,7 @@ public class MailAlarmService implements Alarmable {
SimpleMailMessage sm = new SimpleMailMessage(); SimpleMailMessage sm = new SimpleMailMessage();
try { try {
sm.setFrom(from); sm.setFrom(from);
sm.setTo(targetUserList.stream().map(UserInfoDO::getEmail).toArray(String[]::new)); sm.setTo(targetUserList.stream().map(UserInfoDO::getEmail).filter(Objects::nonNull).toArray(String[]::new));
sm.setSubject(alarm.fetchTitle()); sm.setSubject(alarm.fetchTitle());
sm.setText(alarm.fetchContent()); sm.setText(alarm.fetchContent());

View File

@ -1,6 +1,5 @@
package com.github.kfcfans.powerjob.server.test; package com.github.kfcfans.powerjob.server.test;
import com.github.kfcfans.powerjob.server.OhMyApplication;
import com.github.kfcfans.powerjob.server.common.utils.CronExpression; import com.github.kfcfans.powerjob.server.common.utils.CronExpression;
import com.github.kfcfans.powerjob.server.common.utils.timewheel.HashedWheelTimer; import com.github.kfcfans.powerjob.server.common.utils.timewheel.HashedWheelTimer;
import com.github.kfcfans.powerjob.server.common.utils.timewheel.TimerFuture; import com.github.kfcfans.powerjob.server.common.utils.timewheel.TimerFuture;
@ -11,9 +10,11 @@ import org.junit.Test;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.TimeZone; import java.util.TimeZone;
import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.ThreadLocalRandom;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/** /**
* 工具类测试 * 工具类测试
@ -92,4 +93,11 @@ public class UtilsTest {
System.out.println(StringUtils.containsWhitespace(goodAppName)); System.out.println(StringUtils.containsWhitespace(goodAppName));
System.out.println(StringUtils.containsWhitespace(appName)); System.out.println(StringUtils.containsWhitespace(appName));
} }
@Test
public void filterTest() {
List<String> test = Lists.newArrayList("A", "B", null, "C", null);
List<String> list = test.stream().filter(Objects::nonNull).collect(Collectors.toList());
System.out.println(list);
}
} }