diff --git a/application/src/main/data/upgrade/3.5/schema_update.sql b/application/src/main/data/upgrade/3.4.3/schema_update.sql similarity index 100% rename from application/src/main/data/upgrade/3.5/schema_update.sql rename to application/src/main/data/upgrade/3.4.3/schema_update.sql diff --git a/application/src/main/java/org/thingsboard/server/controller/AlarmCommentController.java b/application/src/main/java/org/thingsboard/server/controller/AlarmCommentController.java index 1541b40955..db8853122b 100644 --- a/application/src/main/java/org/thingsboard/server/controller/AlarmCommentController.java +++ b/application/src/main/java/org/thingsboard/server/controller/AlarmCommentController.java @@ -118,6 +118,6 @@ public class AlarmCommentController extends BaseController { Alarm alarm = checkAlarmId(alarmId, Operation.WRITE); PageLink pageLink = createPageLink(pageSize, page, null, sortProperty, sortOrder); - return checkNotNull(alarmCommentService.findAlarmComments(alarm.getTenantId(), alarmId, pageLink).get()); + return checkNotNull(alarmCommentService.findAlarmComments(alarm.getTenantId(), alarmId, pageLink)); } } diff --git a/application/src/main/java/org/thingsboard/server/service/entitiy/TbNotificationEntityService.java b/application/src/main/java/org/thingsboard/server/service/entitiy/TbNotificationEntityService.java index 744fa9ddaa..6ef53fd7f6 100644 --- a/application/src/main/java/org/thingsboard/server/service/entitiy/TbNotificationEntityService.java +++ b/application/src/main/java/org/thingsboard/server/service/entitiy/TbNotificationEntityService.java @@ -106,6 +106,7 @@ public interface TbNotificationEntityService { void notifyCreateOrUpdateAlarmComment(Alarm alarm, AlarmComment alarmComment, ActionType actionType, User user); void notifyDeleteAlarmComment(Alarm alarm, AlarmComment alarmComment, User user); + void notifyCreateOrUpdateOrDelete(TenantId tenantId, CustomerId customerId, I entityId, E entity, User user, ActionType actionType, boolean sendNotifyMsgToEdge, diff --git a/application/src/main/java/org/thingsboard/server/service/entitiy/alarm/DefaultTbAlarmCommentService.java b/application/src/main/java/org/thingsboard/server/service/entitiy/alarm/DefaultTbAlarmCommentService.java index 5359f02b17..5904745088 100644 --- a/application/src/main/java/org/thingsboard/server/service/entitiy/alarm/DefaultTbAlarmCommentService.java +++ b/application/src/main/java/org/thingsboard/server/service/entitiy/alarm/DefaultTbAlarmCommentService.java @@ -43,6 +43,7 @@ public class DefaultTbAlarmCommentService extends AbstractTbEntityService implem throw e; } } + @Override public Boolean deleteAlarmComment(Alarm alarm, AlarmComment alarmComment, User user) { notificationEntityService.notifyDeleteAlarmComment(alarm, alarmComment, user); diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/alarm/AlarmCommentOperationResult.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/alarm/AlarmCommentOperationResult.java index 3687a03eca..3dc25e02ab 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/alarm/AlarmCommentOperationResult.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/alarm/AlarmCommentOperationResult.java @@ -24,7 +24,6 @@ public class AlarmCommentOperationResult { private final boolean successful; private final boolean created; - public AlarmCommentOperationResult(AlarmComment alarmComment, boolean successful) { this(alarmComment, successful, false); } diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/alarm/AlarmCommentService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/alarm/AlarmCommentService.java index 3e92871b85..04eac2cc15 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/alarm/AlarmCommentService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/alarm/AlarmCommentService.java @@ -29,7 +29,7 @@ public interface AlarmCommentService { AlarmCommentOperationResult deleteAlarmComment(TenantId tenantId, AlarmCommentId alarmCommentId); - ListenableFuture> findAlarmComments(TenantId tenantId, AlarmId alarmId, PageLink pageLink); + PageDatafindAlarmComments(TenantId tenantId, AlarmId alarmId, PageLink pageLink); ListenableFuture findAlarmCommentByIdAsync(TenantId tenantId, AlarmCommentId alarmCommentId); diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/alarm/AlarmComment.java b/common/data/src/main/java/org/thingsboard/server/common/data/alarm/AlarmComment.java index 2e3d4eb459..05aecdc7f0 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/alarm/AlarmComment.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/alarm/AlarmComment.java @@ -33,13 +33,13 @@ import org.thingsboard.server.common.data.id.UserId; @Builder @AllArgsConstructor public class AlarmComment extends BaseData implements HasName { - @ApiModelProperty(position = 2, value = "JSON object with Alarm id.", accessMode = ApiModelProperty.AccessMode.READ_ONLY) + @ApiModelProperty(position = 3, value = "JSON object with Alarm id.", accessMode = ApiModelProperty.AccessMode.READ_ONLY) private EntityId alarmId; - @ApiModelProperty(position = 3, value = "JSON object with User id.", accessMode = ApiModelProperty.AccessMode.READ_ONLY) + @ApiModelProperty(position = 4, value = "JSON object with User id.", accessMode = ApiModelProperty.AccessMode.READ_ONLY) private UserId userId; - @ApiModelProperty(position = 4, value = "Defines origination of comment", example = "System/Other", accessMode = ApiModelProperty.AccessMode.READ_ONLY) + @ApiModelProperty(position = 5, value = "Defines origination of comment", example = "System/Other", accessMode = ApiModelProperty.AccessMode.READ_ONLY) private String type; - @ApiModelProperty(position = 5, value = "JSON object with text of comment.", dataType = "com.fasterxml.jackson.databind.JsonNode") + @ApiModelProperty(position = 6, value = "JSON object with text of comment.", dataType = "com.fasterxml.jackson.databind.JsonNode") private transient JsonNode comment; @ApiModelProperty(position = 1, value = "JSON object with the alarm comment Id. " + diff --git a/dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmCommentService.java b/dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmCommentService.java index f55a3564d9..33258f58cd 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmCommentService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmCommentService.java @@ -72,9 +72,8 @@ public class BaseAlarmCommentService extends AbstractEntityService implements Al } @Override - public ListenableFuture> findAlarmComments(TenantId tenantId, AlarmId alarmId, PageLink pageLink) { - PageData alarmComments = alarmCommentDao.findAlarmComments(tenantId, alarmId, pageLink); - return fetchAlarmCommentUserNames(tenantId, alarmComments); + public PageData findAlarmComments(TenantId tenantId, AlarmId alarmId, PageLink pageLink) { + return alarmCommentDao.findAlarmComments(tenantId, alarmId, pageLink); } private ListenableFuture> fetchAlarmCommentUserNames(TenantId tenantId, PageData alarmComments) { diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/AlarmCommentInfoEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/AlarmCommentInfoEntity.java index 3d5dde1fd6..3bcb49f260 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/AlarmCommentInfoEntity.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/AlarmCommentInfoEntity.java @@ -19,6 +19,9 @@ import lombok.Data; import lombok.EqualsAndHashCode; import org.thingsboard.server.common.data.alarm.AlarmCommentInfo; +import java.util.HashMap; +import java.util.Map; + @Data @EqualsAndHashCode(callSuper = true) public class AlarmCommentInfoEntity extends AbstractAlarmCommentEntity { @@ -34,6 +37,12 @@ public class AlarmCommentInfoEntity extends AbstractAlarmCommentEntity { - @Query(value = "SELECT new org.thingsboard.server.dao.model.sql.AlarmCommentInfoEntity(a) FROM AlarmCommentEntity a " + + @Query(value = "SELECT new org.thingsboard.server.dao.model.sql.AlarmCommentInfoEntity(a, u.firstName, u.lastName) FROM AlarmCommentEntity a " + + "LEFT JOIN UserEntity u on u.id = a.userId " + "WHERE a.alarmId = :alarmId ", countQuery = "" + "SELECT count(a) " + diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmCommentDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmCommentDao.java index 39524b565f..8b8b845b2e 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmCommentDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmCommentDao.java @@ -55,7 +55,7 @@ public class JpaAlarmCommentDao extends JpaAbstractDao alarmComments = alarmCommentService.findAlarmComments(tenantId, alarm.getId(), new PageLink(10, 0)).get(); + PageData alarmComments = alarmCommentService.findAlarmComments(tenantId, alarm.getId(), new PageLink(10, 0)); Assert.assertNotNull(alarmComments.getData()); Assert.assertEquals(1, alarmComments.getData().size()); Assert.assertEquals(createdComment, alarmComments.getData().get(0)); @@ -131,7 +131,7 @@ public abstract class BaseAlarmCommentServiceTest extends AbstractServiceTest { AlarmComment fetched = alarmCommentService.findAlarmCommentByIdAsync(tenantId, createdComment.getId()).get(); Assert.assertEquals(updatedComment, fetched); - PageData alarmComments = alarmCommentService.findAlarmComments(tenantId, alarm.getId(), new PageLink(10, 0)).get(); + PageData alarmComments = alarmCommentService.findAlarmComments(tenantId, alarm.getId(), new PageLink(10, 0)); Assert.assertNotNull(alarmComments.getData()); Assert.assertEquals(1, alarmComments.getData().size()); Assert.assertEquals(new AlarmCommentInfo(updatedComment), alarmComments.getData().get(0));