fixed pull request comments

This commit is contained in:
dashevchenko 2022-12-20 15:07:50 +02:00
parent ed37dc850a
commit 7203c15dec
12 changed files with 25 additions and 15 deletions

View File

@ -118,6 +118,6 @@ public class AlarmCommentController extends BaseController {
Alarm alarm = checkAlarmId(alarmId, Operation.WRITE); Alarm alarm = checkAlarmId(alarmId, Operation.WRITE);
PageLink pageLink = createPageLink(pageSize, page, null, sortProperty, sortOrder); 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));
} }
} }

View File

@ -106,6 +106,7 @@ public interface TbNotificationEntityService {
void notifyCreateOrUpdateAlarmComment(Alarm alarm, AlarmComment alarmComment, ActionType actionType, User user); void notifyCreateOrUpdateAlarmComment(Alarm alarm, AlarmComment alarmComment, ActionType actionType, User user);
void notifyDeleteAlarmComment(Alarm alarm, AlarmComment alarmComment, User user); void notifyDeleteAlarmComment(Alarm alarm, AlarmComment alarmComment, User user);
<E extends HasName, I extends EntityId> void notifyCreateOrUpdateOrDelete(TenantId tenantId, CustomerId customerId, <E extends HasName, I extends EntityId> void notifyCreateOrUpdateOrDelete(TenantId tenantId, CustomerId customerId,
I entityId, E entity, User user, I entityId, E entity, User user,
ActionType actionType, boolean sendNotifyMsgToEdge, ActionType actionType, boolean sendNotifyMsgToEdge,

View File

@ -43,6 +43,7 @@ public class DefaultTbAlarmCommentService extends AbstractTbEntityService implem
throw e; throw e;
} }
} }
@Override @Override
public Boolean deleteAlarmComment(Alarm alarm, AlarmComment alarmComment, User user) { public Boolean deleteAlarmComment(Alarm alarm, AlarmComment alarmComment, User user) {
notificationEntityService.notifyDeleteAlarmComment(alarm, alarmComment, user); notificationEntityService.notifyDeleteAlarmComment(alarm, alarmComment, user);

View File

@ -24,7 +24,6 @@ public class AlarmCommentOperationResult {
private final boolean successful; private final boolean successful;
private final boolean created; private final boolean created;
public AlarmCommentOperationResult(AlarmComment alarmComment, boolean successful) { public AlarmCommentOperationResult(AlarmComment alarmComment, boolean successful) {
this(alarmComment, successful, false); this(alarmComment, successful, false);
} }

View File

@ -29,7 +29,7 @@ public interface AlarmCommentService {
AlarmCommentOperationResult deleteAlarmComment(TenantId tenantId, AlarmCommentId alarmCommentId); AlarmCommentOperationResult deleteAlarmComment(TenantId tenantId, AlarmCommentId alarmCommentId);
ListenableFuture<PageData<AlarmCommentInfo>> findAlarmComments(TenantId tenantId, AlarmId alarmId, PageLink pageLink); PageData<AlarmCommentInfo>findAlarmComments(TenantId tenantId, AlarmId alarmId, PageLink pageLink);
ListenableFuture<AlarmComment> findAlarmCommentByIdAsync(TenantId tenantId, AlarmCommentId alarmCommentId); ListenableFuture<AlarmComment> findAlarmCommentByIdAsync(TenantId tenantId, AlarmCommentId alarmCommentId);

View File

@ -33,13 +33,13 @@ import org.thingsboard.server.common.data.id.UserId;
@Builder @Builder
@AllArgsConstructor @AllArgsConstructor
public class AlarmComment extends BaseData<AlarmCommentId> implements HasName { public class AlarmComment extends BaseData<AlarmCommentId> 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; 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; 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; 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; private transient JsonNode comment;
@ApiModelProperty(position = 1, value = "JSON object with the alarm comment Id. " + @ApiModelProperty(position = 1, value = "JSON object with the alarm comment Id. " +

View File

@ -72,9 +72,8 @@ public class BaseAlarmCommentService extends AbstractEntityService implements Al
} }
@Override @Override
public ListenableFuture<PageData<AlarmCommentInfo>> findAlarmComments(TenantId tenantId, AlarmId alarmId, PageLink pageLink) { public PageData<AlarmCommentInfo> findAlarmComments(TenantId tenantId, AlarmId alarmId, PageLink pageLink) {
PageData<AlarmCommentInfo> alarmComments = alarmCommentDao.findAlarmComments(tenantId, alarmId, pageLink); return alarmCommentDao.findAlarmComments(tenantId, alarmId, pageLink);
return fetchAlarmCommentUserNames(tenantId, alarmComments);
} }
private ListenableFuture<PageData<AlarmCommentInfo>> fetchAlarmCommentUserNames(TenantId tenantId, PageData<AlarmCommentInfo> alarmComments) { private ListenableFuture<PageData<AlarmCommentInfo>> fetchAlarmCommentUserNames(TenantId tenantId, PageData<AlarmCommentInfo> alarmComments) {

View File

@ -19,6 +19,9 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.thingsboard.server.common.data.alarm.AlarmCommentInfo; import org.thingsboard.server.common.data.alarm.AlarmCommentInfo;
import java.util.HashMap;
import java.util.Map;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class AlarmCommentInfoEntity extends AbstractAlarmCommentEntity<AlarmCommentInfo> { public class AlarmCommentInfoEntity extends AbstractAlarmCommentEntity<AlarmCommentInfo> {
@ -34,6 +37,12 @@ public class AlarmCommentInfoEntity extends AbstractAlarmCommentEntity<AlarmComm
super(alarmCommentEntity); super(alarmCommentEntity);
} }
public AlarmCommentInfoEntity(AlarmCommentEntity alarmCommentEntity, String firstName, String lastName) {
super(alarmCommentEntity);
this.firstName = firstName;
this.lastName = lastName;
}
@Override @Override
public AlarmCommentInfo toData() { public AlarmCommentInfo toData() {
return new AlarmCommentInfo(super.toAlarmComment(), this.firstName, this.lastName); return new AlarmCommentInfo(super.toAlarmComment(), this.firstName, this.lastName);

View File

@ -27,7 +27,8 @@ import java.util.UUID;
public interface AlarmCommentRepository extends JpaRepository<AlarmCommentEntity, UUID> { public interface AlarmCommentRepository extends JpaRepository<AlarmCommentEntity, UUID> {
@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 ", "WHERE a.alarmId = :alarmId ",
countQuery = "" + countQuery = "" +
"SELECT count(a) " + "SELECT count(a) " +

View File

@ -55,7 +55,7 @@ public class JpaAlarmCommentDao extends JpaAbstractDao<AlarmCommentEntity, Alarm
@Override @Override
public AlarmComment createAlarmComment(TenantId tenantId, AlarmComment alarmComment){ public AlarmComment createAlarmComment(TenantId tenantId, AlarmComment alarmComment){
log.debug("Saving entity {}", alarmComment); log.trace("Saving entity {}", alarmComment);
partitioningRepository.createPartitionIfNotExists(ALARM_COMMENT_COLUMN_FAMILY_NAME, alarmComment.getCreatedTime(), TimeUnit.HOURS.toMillis(partitionSizeInHours)); partitioningRepository.createPartitionIfNotExists(ALARM_COMMENT_COLUMN_FAMILY_NAME, alarmComment.getCreatedTime(), TimeUnit.HOURS.toMillis(partitionSizeInHours));
AlarmCommentEntity saved = alarmCommentRepository.save(new AlarmCommentEntity(alarmComment)); AlarmCommentEntity saved = alarmCommentRepository.save(new AlarmCommentEntity(alarmComment));
return DaoUtil.getData(saved); return DaoUtil.getData(saved);
@ -74,7 +74,7 @@ public class JpaAlarmCommentDao extends JpaAbstractDao<AlarmCommentEntity, Alarm
alarmCommentRepository.findAllByAlarmId(id.getId(), DaoUtil.toPageable(pageLink))); alarmCommentRepository.findAllByAlarmId(id.getId(), DaoUtil.toPageable(pageLink)));
} }
@Override
public AlarmComment findAlarmCommentById(TenantId tenantId, UUID key) { public AlarmComment findAlarmCommentById(TenantId tenantId, UUID key) {
return DaoUtil.getData(alarmCommentRepository.findById(key)); return DaoUtil.getData(alarmCommentRepository.findById(key));
} }

View File

@ -95,7 +95,7 @@ public abstract class BaseAlarmCommentServiceTest extends AbstractServiceTest {
AlarmComment fetched = alarmCommentService.findAlarmCommentByIdAsync(tenantId, createdComment.getId()).get(); AlarmComment fetched = alarmCommentService.findAlarmCommentByIdAsync(tenantId, createdComment.getId()).get();
Assert.assertEquals(createdComment, fetched); Assert.assertEquals(createdComment, fetched);
PageData<AlarmCommentInfo> alarmComments = alarmCommentService.findAlarmComments(tenantId, alarm.getId(), new PageLink(10, 0)).get(); PageData<AlarmCommentInfo> alarmComments = alarmCommentService.findAlarmComments(tenantId, alarm.getId(), new PageLink(10, 0));
Assert.assertNotNull(alarmComments.getData()); Assert.assertNotNull(alarmComments.getData());
Assert.assertEquals(1, alarmComments.getData().size()); Assert.assertEquals(1, alarmComments.getData().size());
Assert.assertEquals(createdComment, alarmComments.getData().get(0)); 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(); AlarmComment fetched = alarmCommentService.findAlarmCommentByIdAsync(tenantId, createdComment.getId()).get();
Assert.assertEquals(updatedComment, fetched); Assert.assertEquals(updatedComment, fetched);
PageData<AlarmCommentInfo> alarmComments = alarmCommentService.findAlarmComments(tenantId, alarm.getId(), new PageLink(10, 0)).get(); PageData<AlarmCommentInfo> alarmComments = alarmCommentService.findAlarmComments(tenantId, alarm.getId(), new PageLink(10, 0));
Assert.assertNotNull(alarmComments.getData()); Assert.assertNotNull(alarmComments.getData());
Assert.assertEquals(1, alarmComments.getData().size()); Assert.assertEquals(1, alarmComments.getData().size());
Assert.assertEquals(new AlarmCommentInfo(updatedComment), alarmComments.getData().get(0)); Assert.assertEquals(new AlarmCommentInfo(updatedComment), alarmComments.getData().get(0));