微调
This commit is contained in:
@@ -84,7 +84,7 @@ public class SendEventUtils {
|
|||||||
public void sendUser(Integer eventType,String type,String devId, String eventName, LocalDateTime eventTime, String id) {
|
public void sendUser(Integer eventType,String type,String devId, String eventName, LocalDateTime eventTime, String id) {
|
||||||
int code;
|
int code;
|
||||||
List<User> users = new ArrayList<>();
|
List<User> users = new ArrayList<>();
|
||||||
|
List<String> eventUser;
|
||||||
List<String> devCodeList;
|
List<String> devCodeList;
|
||||||
List<CsEventSendMsg> csEventSendMsgList = new ArrayList<>();
|
List<CsEventSendMsg> csEventSendMsgList = new ArrayList<>();
|
||||||
NoticeUserDto noticeUserDto = new NoticeUserDto();
|
NoticeUserDto noticeUserDto = new NoticeUserDto();
|
||||||
@@ -98,53 +98,64 @@ public class SendEventUtils {
|
|||||||
case "1":
|
case "1":
|
||||||
code = 2;
|
code = 2;
|
||||||
//设备自身事件 不推送给用户,推送给业务管理
|
//设备自身事件 不推送给用户,推送给业务管理
|
||||||
users = getAdminUser();
|
eventUser = getEventUser(devId,false);
|
||||||
if (CollectionUtil.isNotEmpty(users)){
|
if (CollectionUtil.isNotEmpty(eventUser)) {
|
||||||
for (User user : users){
|
eventUser.forEach(item->{
|
||||||
noticeUserDto.setPushClientId(Collections.singletonList(user.getDevCode()));
|
|
||||||
noticeUserDto.setTitle("设备事件");
|
|
||||||
//记录需要通知的用户和事件关系
|
|
||||||
CsEventUserPO csEventUser = new CsEventUserPO();
|
CsEventUserPO csEventUser = new CsEventUserPO();
|
||||||
csEventUser.setUserId(user.getId());
|
csEventUser.setUserId(item);
|
||||||
csEventUser.setStatus(0);
|
csEventUser.setStatus(0);
|
||||||
csEventUser.setEventId(id);
|
csEventUser.setEventId(id);
|
||||||
result.add(csEventUser);
|
result.add(csEventUser);
|
||||||
|
});
|
||||||
|
|
||||||
|
users = getSendUser(eventUser,2);
|
||||||
|
if (CollectionUtil.isNotEmpty(users)){
|
||||||
|
for (User user : users){
|
||||||
|
noticeUserDto.setPushClientId(Collections.singletonList(user.getDevCode()));
|
||||||
|
noticeUserDto.setTitle("设备事件");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "2":
|
case "2":
|
||||||
code = 0;
|
code = 0;
|
||||||
//暂态事件
|
//暂态事件
|
||||||
users = getEventUser(devId,0);
|
eventUser = getEventUser(devId,true);
|
||||||
devCodeList = users.stream().map(User::getDevCode).distinct().collect(Collectors.toList());
|
if (CollectionUtil.isNotEmpty(eventUser)) {
|
||||||
noticeUserDto.setPushClientId(devCodeList);
|
eventUser.forEach(item->{
|
||||||
noticeUserDto.setTitle("暂态事件");
|
CsEventUserPO csEventUser = new CsEventUserPO();
|
||||||
//记录需要通知的用户和事件关系
|
csEventUser.setUserId(item);
|
||||||
List<String> list2 = users.stream().map(User::getId).collect(Collectors.toList());
|
csEventUser.setStatus(0);
|
||||||
list2.forEach(item->{
|
csEventUser.setEventId(id);
|
||||||
CsEventUserPO csEventUser2 = new CsEventUserPO();
|
result.add(csEventUser);
|
||||||
csEventUser2.setUserId(item);
|
});
|
||||||
csEventUser2.setStatus(0);
|
users = getSendUser(eventUser,0);
|
||||||
csEventUser2.setEventId(id);
|
if (CollectionUtil.isNotEmpty(users)){
|
||||||
result.add(csEventUser2);
|
devCodeList = users.stream().map(User::getDevCode).distinct().collect(Collectors.toList());
|
||||||
});
|
noticeUserDto.setPushClientId(devCodeList);
|
||||||
|
noticeUserDto.setTitle("暂态事件");
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case "3":
|
case "3":
|
||||||
code = 1;
|
code = 1;
|
||||||
//稳态事件
|
//稳态事件
|
||||||
users = getEventUser(devId,1);
|
eventUser = getEventUser(devId,true);
|
||||||
devCodeList = users.stream().map(User::getDevCode).distinct().collect(Collectors.toList());
|
if (CollectionUtil.isNotEmpty(eventUser)) {
|
||||||
noticeUserDto.setPushClientId(devCodeList);
|
eventUser.forEach(item->{
|
||||||
noticeUserDto.setTitle("稳态事件");
|
CsEventUserPO csEventUser = new CsEventUserPO();
|
||||||
//记录需要通知的用户和事件关系
|
csEventUser.setUserId(item);
|
||||||
List<String> list3 = users.stream().map(User::getId).collect(Collectors.toList());
|
csEventUser.setStatus(0);
|
||||||
list3.forEach(item->{
|
csEventUser.setEventId(id);
|
||||||
CsEventUserPO csEventUser3 = new CsEventUserPO();
|
result.add(csEventUser);
|
||||||
csEventUser3.setUserId(item);
|
});
|
||||||
csEventUser3.setStatus(0);
|
users = getSendUser(eventUser,1);
|
||||||
csEventUser3.setEventId(id);
|
if (CollectionUtil.isNotEmpty(users)){
|
||||||
result.add(csEventUser3);
|
devCodeList = users.stream().map(User::getDevCode).distinct().collect(Collectors.toList());
|
||||||
});
|
noticeUserDto.setPushClientId(devCodeList);
|
||||||
|
noticeUserDto.setTitle("稳态事件");
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
code = 0;
|
code = 0;
|
||||||
@@ -163,19 +174,20 @@ public class SendEventUtils {
|
|||||||
switch (type) {
|
switch (type) {
|
||||||
case "1":
|
case "1":
|
||||||
//Ⅰ级告警 不推送给用户,推送给业务管理
|
//Ⅰ级告警 不推送给用户,推送给业务管理
|
||||||
users = getAdminUser();
|
eventUser = getEventUser(devId,false);
|
||||||
if (CollectionUtil.isNotEmpty(users)){
|
if (CollectionUtil.isNotEmpty(eventUser)) {
|
||||||
eventName = epdFeignClient.findByName(eventName).getData().getShowName();
|
eventUser.forEach(item->{
|
||||||
for (User user : users){
|
CsEventUserPO csEventUser = new CsEventUserPO();
|
||||||
noticeUserDto.setPushClientId(Collections.singletonList(user.getDevCode()));
|
csEventUser.setUserId(item);
|
||||||
//记录需要通知的用户和事件关系
|
csEventUser.setStatus(0);
|
||||||
users.forEach(item->{
|
csEventUser.setEventId(id);
|
||||||
CsEventUserPO csEventUser = new CsEventUserPO();
|
result.add(csEventUser);
|
||||||
csEventUser.setUserId(item.getId());
|
});
|
||||||
csEventUser.setStatus(0);
|
users = getSendUser(eventUser,3);
|
||||||
csEventUser.setEventId(id);
|
if (CollectionUtil.isNotEmpty(users)){
|
||||||
result.add(csEventUser);
|
eventName = epdFeignClient.findByName(eventName).getData().getShowName();
|
||||||
});
|
devCodeList = users.stream().map(User::getDevCode).distinct().collect(Collectors.toList());
|
||||||
|
noticeUserDto.setPushClientId(devCodeList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -183,18 +195,21 @@ public class SendEventUtils {
|
|||||||
eventName = epdFeignClient.findByName(eventName).getData().getShowName();
|
eventName = epdFeignClient.findByName(eventName).getData().getShowName();
|
||||||
case "3":
|
case "3":
|
||||||
//Ⅱ、Ⅲ级告警推送相关用户及业务管理员
|
//Ⅱ、Ⅲ级告警推送相关用户及业务管理员
|
||||||
users = getEventUser(devId,3);
|
eventUser = getEventUser(devId,true);
|
||||||
devCodeList = users.stream().map(User::getDevCode).distinct().collect(Collectors.toList());
|
if (CollectionUtil.isNotEmpty(eventUser)) {
|
||||||
noticeUserDto.setPushClientId(devCodeList);
|
eventUser.forEach(item->{
|
||||||
//记录需要通知的用户和事件关系
|
CsEventUserPO csEventUser = new CsEventUserPO();
|
||||||
List<String> list4 = users.stream().map(User::getId).collect(Collectors.toList());
|
csEventUser.setUserId(item);
|
||||||
list4.forEach(item->{
|
csEventUser.setStatus(0);
|
||||||
CsEventUserPO csEventUser4 = new CsEventUserPO();
|
csEventUser.setEventId(id);
|
||||||
csEventUser4.setUserId(item);
|
result.add(csEventUser);
|
||||||
csEventUser4.setStatus(0);
|
});
|
||||||
csEventUser4.setEventId(id);
|
users = getSendUser(eventUser,3);
|
||||||
result.add(csEventUser4);
|
if (CollectionUtil.isNotEmpty(users)){
|
||||||
});
|
devCodeList = users.stream().map(User::getDevCode).distinct().collect(Collectors.toList());
|
||||||
|
noticeUserDto.setPushClientId(devCodeList);
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@@ -272,55 +287,52 @@ public class SendEventUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取需要通知事件的用户
|
* 获取所有需要推送的用户id
|
||||||
*/
|
*/
|
||||||
public List<User> getEventUser(String devId,Integer type) {
|
public List<String> getEventUser(String devId,boolean isAdmin) {
|
||||||
List<User> users = new ArrayList<>();
|
|
||||||
List<String> result = new ArrayList<>();
|
|
||||||
//获取设备下主用户和子用户集合
|
|
||||||
List<String> list = csDeviceUserFeignClient.findUserById(devId).getData();
|
List<String> list = csDeviceUserFeignClient.findUserById(devId).getData();
|
||||||
List<User> adminUser = appUserFeignClient.getAdminInfo().getData();
|
if (isAdmin) {
|
||||||
List<String> adminList = adminUser.stream().map(User::getId).collect(Collectors.toList());
|
List<User> adminUser = appUserFeignClient.getAdminInfo().getData();
|
||||||
list.addAll(adminList);
|
List<String> adminList = adminUser.stream().map(User::getId).collect(Collectors.toList());
|
||||||
//查询哪些用户打开了事件提示
|
list.addAll(adminList);
|
||||||
if (CollectionUtil.isNotEmpty(list)){
|
|
||||||
List<AppInfoSet> appInfoSet = appInfoSetFeignClient.getListById(list).getData();
|
|
||||||
switch (type) {
|
|
||||||
case 0:
|
|
||||||
result = appInfoSet.stream()
|
|
||||||
.filter(person -> person.getEventInfo() == 1)
|
|
||||||
.map(AppInfoSet::getUserId).collect(Collectors.toList());
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
result = appInfoSet.stream()
|
|
||||||
.filter(person -> person.getHarmonicInfo() == 1)
|
|
||||||
.map(AppInfoSet::getUserId).collect(Collectors.toList());
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
result = appInfoSet.stream()
|
|
||||||
.filter(person -> person.getAlarmInfo() == 1)
|
|
||||||
.map(AppInfoSet::getUserId).collect(Collectors.toList());
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (CollectionUtil.isNotEmpty(result)){
|
return list;
|
||||||
users = userFeignClient.appuserByIdList(result).getData();
|
|
||||||
}
|
|
||||||
return users;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<User> getAdminUser() {
|
|
||||||
List<User> users = appUserFeignClient.getAdminInfo().getData();
|
/**
|
||||||
|
* 获取所有打开推送的用户信息
|
||||||
|
*/
|
||||||
|
public List<User> getSendUser(List<String> userList,Integer type) {
|
||||||
|
List<User> users = new ArrayList<>();
|
||||||
List<String> result = new ArrayList<>();
|
List<String> result = new ArrayList<>();
|
||||||
List<String> adminList = users.stream().map(User::getId).collect(Collectors.toList());
|
List<AppInfoSet> appInfoSet = appInfoSetFeignClient.getListById(userList).getData();
|
||||||
if (CollectionUtil.isNotEmpty(adminList)){
|
|
||||||
List<AppInfoSet> appInfoSet = appInfoSetFeignClient.getListById(adminList).getData();
|
switch (type) {
|
||||||
result = appInfoSet.stream()
|
case 0:
|
||||||
.filter(person -> person.getRunInfo() == 1)
|
result = appInfoSet.stream()
|
||||||
.map(AppInfoSet::getUserId).collect(Collectors.toList());
|
.filter(person -> person.getEventInfo() == 1)
|
||||||
|
.map(AppInfoSet::getUserId).collect(Collectors.toList());
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
result = appInfoSet.stream()
|
||||||
|
.filter(person -> person.getHarmonicInfo() == 1)
|
||||||
|
.map(AppInfoSet::getUserId).collect(Collectors.toList());
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
result = appInfoSet.stream()
|
||||||
|
.filter(person -> person.getRunInfo() == 1)
|
||||||
|
.map(AppInfoSet::getUserId).collect(Collectors.toList());
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
result = appInfoSet.stream()
|
||||||
|
.filter(person -> person.getAlarmInfo() == 1)
|
||||||
|
.map(AppInfoSet::getUserId).collect(Collectors.toList());
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
if (CollectionUtil.isNotEmpty(result)){
|
if (CollectionUtil.isNotEmpty(result)){
|
||||||
users = userFeignClient.appuserByIdList(result).getData();
|
users = userFeignClient.appuserByIdList(result).getData();
|
||||||
|
|||||||
Reference in New Issue
Block a user