Browse Source

Retrieve notification info from request when selecting notifications

pull/7511/head
ViacheslavKlimov 4 years ago
parent
commit
a4ce6252de
  1. 3
      application/src/main/java/org/thingsboard/server/service/notification/DefaultNotificationManager.java
  2. 1
      application/src/main/java/org/thingsboard/server/service/ws/notification/DefaultNotificationCommandsHandler.java
  3. 4
      common/dao-api/src/main/java/org/thingsboard/server/dao/notification/NotificationService.java
  4. 1
      dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java
  5. 3
      dao/src/main/java/org/thingsboard/server/dao/model/sql/NotificationEntity.java
  6. 5
      dao/src/main/java/org/thingsboard/server/dao/notification/DefaultNotificationService.java
  7. 3
      dao/src/main/java/org/thingsboard/server/dao/notification/NotificationDao.java
  8. 5
      dao/src/main/java/org/thingsboard/server/dao/sql/notification/JpaNotificationDao.java
  9. 10
      dao/src/main/java/org/thingsboard/server/dao/sql/notification/NotificationRepository.java

3
application/src/main/java/org/thingsboard/server/service/notification/DefaultNotificationManager.java

@ -156,11 +156,8 @@ public class DefaultNotificationManager extends AbstractSubscriptionService impl
public NotificationRequest updateNotificationRequest(TenantId tenantId, NotificationRequest notificationRequest) {
log.debug("Updating notification request {}", notificationRequest.getId());
notificationRequest = notificationRequestService.saveNotificationRequest(tenantId, notificationRequest);
notificationService.updateNotificationsByRequestId(tenantId, notificationRequest.getId(),
notificationRequest.getNotificationReason(), notificationRequest.getNotificationInfo());
onNotificationRequestUpdate(tenantId, NotificationRequestUpdate.builder()
.notificationRequestId(notificationRequest.getId())
.notificationReason(notificationRequest.getNotificationReason())
.notificationInfo(notificationRequest.getNotificationInfo())
.deleted(false)
.build());

1
application/src/main/java/org/thingsboard/server/service/ws/notification/DefaultNotificationCommandsHandler.java

@ -170,7 +170,6 @@ public class DefaultNotificationCommandsHandler implements NotificationCommandsH
subscription.getLatestUnreadNotifications().values().stream()
.filter(notification -> notification.getRequestId().equals(notificationRequestId))
.forEach(notification -> {
notification.setReason(update.getNotificationReason());
notification.setInfo(update.getNotificationInfo());
sendUpdate(subscription.getSessionId(), subscription.createPartialUpdate(notification));
});

4
common/dao-api/src/main/java/org/thingsboard/server/dao/notification/NotificationService.java

@ -16,11 +16,9 @@
package org.thingsboard.server.dao.notification;
import org.thingsboard.server.common.data.id.NotificationId;
import org.thingsboard.server.common.data.id.NotificationRequestId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.id.UserId;
import org.thingsboard.server.common.data.notification.Notification;
import org.thingsboard.server.common.data.notification.NotificationInfo;
import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink;
@ -38,6 +36,4 @@ public interface NotificationService {
int countUnreadNotificationsByUserId(TenantId tenantId, UserId userId);
int updateNotificationsByRequestId(TenantId tenantId, NotificationRequestId notificationRequestId, String notificationReason, NotificationInfo notificationInfo);
}

1
dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java

@ -658,7 +658,6 @@ public class ModelConstants {
public static final String NOTIFICATION_RECIPIENT_ID_PROPERTY = "recipient_id";
public static final String NOTIFICATION_REASON_PROPERTY = "reason";
public static final String NOTIFICATION_TEXT_PROPERTY = "text";
public static final String NOTIFICATION_INFO_PROPERTY = "info";
public static final String NOTIFICATION_SEVERITY_PROPERTY = "severity";
public static final String NOTIFICATION_ORIGINATOR_TYPE_PROPERTY = "originator_type";
public static final String NOTIFICATION_STATUS_PROPERTY = "status";

3
dao/src/main/java/org/thingsboard/server/dao/model/sql/NotificationEntity.java

@ -18,6 +18,7 @@ package org.thingsboard.server.dao.model.sql;
import com.fasterxml.jackson.databind.JsonNode;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.annotations.Formula;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import org.thingsboard.common.util.JacksonUtil;
@ -60,7 +61,7 @@ public class NotificationEntity extends BaseSqlEntity<Notification> {
private String text;
@Type(type = "json")
@Column(name = ModelConstants.NOTIFICATION_INFO_PROPERTY)
@Formula("(SELECT r.notification_info FROM notification_request r WHERE r.id = request_id)")
private JsonNode info;
@Enumerated(EnumType.STRING)

5
dao/src/main/java/org/thingsboard/server/dao/notification/DefaultNotificationService.java

@ -73,9 +73,4 @@ public class DefaultNotificationService implements NotificationService {
return notificationDao.countUnreadByUserId(tenantId, userId);
}
@Override
public int updateNotificationsByRequestId(TenantId tenantId, NotificationRequestId notificationRequestId, String notificationReason, NotificationInfo notificationInfo) {
return notificationDao.updateByRequestId(tenantId, notificationRequestId, notificationReason, notificationInfo);
}
}

3
dao/src/main/java/org/thingsboard/server/dao/notification/NotificationDao.java

@ -20,7 +20,6 @@ import org.thingsboard.server.common.data.id.NotificationRequestId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.id.UserId;
import org.thingsboard.server.common.data.notification.Notification;
import org.thingsboard.server.common.data.notification.NotificationInfo;
import org.thingsboard.server.common.data.notification.NotificationStatus;
import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink;
@ -38,6 +37,4 @@ public interface NotificationDao extends Dao<Notification> {
PageData<Notification> findByRequestId(TenantId tenantId, NotificationRequestId notificationRequestId, PageLink pageLink);
int updateByRequestId(TenantId tenantId, NotificationRequestId notificationRequestId, String notificationReason, NotificationInfo notificationInfo);
}

5
dao/src/main/java/org/thingsboard/server/dao/sql/notification/JpaNotificationDao.java

@ -90,11 +90,6 @@ public class JpaNotificationDao extends JpaAbstractDao<NotificationEntity, Notif
return DaoUtil.toPageData(notificationRepository.findByRequestId(notificationRequestId.getId(), DaoUtil.toPageable(pageLink)));
}
@Override
public int updateByRequestId(TenantId tenantId, NotificationRequestId notificationRequestId, String notificationReason, NotificationInfo notificationInfo) {
return notificationRepository.updateReasonAndInfoByRequestId(notificationRequestId.getId(), notificationReason, JacksonUtil.valueToTree(notificationInfo));
}
@Override
protected Class<NotificationEntity> getEntityClass() {
return NotificationEntity.class;

10
dao/src/main/java/org/thingsboard/server/dao/sql/notification/NotificationRepository.java

@ -15,7 +15,6 @@
*/
package org.thingsboard.server.dao.sql.notification;
import com.fasterxml.jackson.databind.JsonNode;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
@ -49,15 +48,6 @@ public interface NotificationRepository extends JpaRepository<NotificationEntity
Page<NotificationEntity> findByRequestId(UUID requestId, Pageable pageable);
@Modifying
@Transactional
@Query("UPDATE NotificationEntity n " +
"SET n.info = :info, n.reason = :reason " +
"WHERE n.requestId = :requestId")
int updateReasonAndInfoByRequestId(@Param("requestId") UUID requestId,
@Param("reason") String reason,
@Param("info") JsonNode info);
int countByRequestId(UUID requestId);
int countByRequestIdAndStatus(UUID requestId, NotificationStatus status);

Loading…
Cancel
Save