refactoring: - Customer controller - preparation
This commit is contained in:
parent
e055a7f16e
commit
086dae045a
@ -22,17 +22,16 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.thingsboard.rule.engine.api.msg.DeviceCredentialsUpdateNotificationMsg;
|
||||
import org.thingsboard.server.cluster.TbClusterService;
|
||||
import org.thingsboard.server.common.data.Customer;
|
||||
import org.thingsboard.server.common.data.DataConstants;
|
||||
import org.thingsboard.server.common.data.Device;
|
||||
import org.thingsboard.server.common.data.HasName;
|
||||
import org.thingsboard.server.common.data.Tenant;
|
||||
import org.thingsboard.server.common.data.alarm.Alarm;
|
||||
import org.thingsboard.server.common.data.asset.Asset;
|
||||
import org.thingsboard.server.common.data.audit.ActionType;
|
||||
import org.thingsboard.server.common.data.edge.Edge;
|
||||
import org.thingsboard.server.common.data.edge.EdgeEventActionType;
|
||||
import org.thingsboard.server.common.data.edge.EdgeEventType;
|
||||
import org.thingsboard.server.common.data.id.AssetId;
|
||||
import org.thingsboard.server.common.data.id.CustomerId;
|
||||
import org.thingsboard.server.common.data.id.DeviceId;
|
||||
import org.thingsboard.server.common.data.id.EdgeId;
|
||||
@ -70,10 +69,11 @@ public class DefaultTbNotificationEntityService implements TbNotificationEntityS
|
||||
|
||||
@Override
|
||||
public <E extends HasName, I extends EntityId> void notifyDeleteEntity(TenantId tenantId, I entityId, E entity,
|
||||
CustomerId customerId, List<EdgeId> relatedEdgeIds,
|
||||
SecurityUser user, Object... additionalInfo) {
|
||||
logEntityAction(tenantId, entityId, entity, customerId, ActionType.DELETED, user, additionalInfo);
|
||||
sendDeleteNotificationMsg(tenantId, entityId, relatedEdgeIds);
|
||||
CustomerId customerId, ActionType actionType,
|
||||
List<EdgeId> relatedEdgeIds,
|
||||
SecurityUser user, boolean isBody, Object... additionalInfo) {
|
||||
logEntityAction(tenantId, entityId, entity, customerId, actionType, user, additionalInfo);
|
||||
sendDeleteNotificationMsg(tenantId, entityId, entity, relatedEdgeIds, isBody);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -126,7 +126,7 @@ public class DefaultTbNotificationEntityService implements TbNotificationEntityS
|
||||
gatewayNotificationsService.onDeviceDeleted(device);
|
||||
tbClusterService.onDeviceDeleted(device, null);
|
||||
|
||||
notifyDeleteEntity(tenantId, deviceId, device, customerId, relatedEdgeIds, user, additionalInfo);
|
||||
notifyDeleteEntity(tenantId, deviceId, device, customerId, ActionType.DELETED, relatedEdgeIds, user, false, additionalInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -145,12 +145,10 @@ public class DefaultTbNotificationEntityService implements TbNotificationEntityS
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyCreateOrUpdateAsset(TenantId tenantId, AssetId assetId, CustomerId customerId, Asset asset,
|
||||
ActionType actionType, SecurityUser user, Object... additionalInfo) {
|
||||
logEntityAction(tenantId, assetId, asset, customerId, actionType, user, additionalInfo);
|
||||
|
||||
if (actionType == ActionType.UPDATED) {
|
||||
sendEntityNotificationMsg(asset.getTenantId(), asset.getId(), EdgeEventActionType.UPDATED);
|
||||
public <E extends HasName, I extends EntityId> void notifyCreateOrUpdateEntity(TenantId tenantId, I entityId, E entity, CustomerId customerId, ActionType actionType, SecurityUser user, Object... additionalInfo) {
|
||||
logEntityAction(tenantId, entityId, entity, customerId, actionType, user, additionalInfo);
|
||||
if (actionType == ActionType.UPDATED) {
|
||||
sendEntityNotificationMsg(tenantId, entityId, EdgeEventActionType.UPDATED);
|
||||
}
|
||||
}
|
||||
|
||||
@ -197,9 +195,10 @@ public class DefaultTbNotificationEntityService implements TbNotificationEntityS
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyDeleteAlarm(Alarm alarm, SecurityUser user, List<EdgeId> relatedEdgeIds) {
|
||||
logEntityAction(alarm.getTenantId(), alarm.getOriginator(), alarm, alarm.getCustomerId(), ActionType.ALARM_DELETE, user, null);
|
||||
sendAlarmDeleteNotificationMsg(alarm, relatedEdgeIds);
|
||||
public void notifyDeleteCustomer(Customer customer, SecurityUser user, List<EdgeId> edgeIds) {
|
||||
logEntityAction(customer.getTenantId(), customer.getId(), customer, customer.getId(), ActionType.DELETED, user, null);
|
||||
sendDeleteNotificationMsg(customer.getTenantId(), customer.getId(), customer, edgeIds, false);
|
||||
tbClusterService.broadcastEntityStateChangeEvent(customer.getTenantId(), customer.getId(), ComponentLifecycleEvent.DELETED);
|
||||
}
|
||||
|
||||
private <E extends HasName, I extends EntityId> void logEntityAction(TenantId tenantId, I entityId, E entity, CustomerId customerId,
|
||||
@ -228,17 +227,15 @@ public class DefaultTbNotificationEntityService implements TbNotificationEntityS
|
||||
}
|
||||
}
|
||||
|
||||
private void sendDeleteNotificationMsg(TenantId tenantId, EntityId entityId, List<EdgeId> edgeIds) {
|
||||
sendDeleteNotificationMsg(tenantId, entityId, edgeIds, null);
|
||||
}
|
||||
|
||||
protected void sendAlarmDeleteNotificationMsg(Alarm alarm, List<EdgeId> relatedEdgeIds) {
|
||||
protected <E extends HasName, I extends EntityId> void sendDeleteNotificationMsg(TenantId tenantId, I entityId, E entity, List<EdgeId> edgeIds, boolean isBody) {
|
||||
try {
|
||||
sendDeleteNotificationMsg(alarm.getTenantId(), alarm.getId(), relatedEdgeIds, json.writeValueAsString(alarm));
|
||||
String body = isBody ? json.writeValueAsString(entity) : null;
|
||||
sendDeleteNotificationMsg(tenantId, entityId, edgeIds, body);
|
||||
} catch (Exception e) {
|
||||
log.warn("Failed to push delete alarm msg to core: {}", alarm, e);
|
||||
log.warn("Failed to push delete " + entity.getClass().getName() + " msg to core: {}", entity, e);
|
||||
}
|
||||
}
|
||||
|
||||
private void sendDeleteNotificationMsg(TenantId tenantId, EntityId entityId, List<EdgeId> edgeIds, String body) {
|
||||
if (edgeIds != null && !edgeIds.isEmpty()) {
|
||||
for (EdgeId edgeId : edgeIds) {
|
||||
|
||||
@ -15,15 +15,14 @@
|
||||
*/
|
||||
package org.thingsboard.server.service.entitiy;
|
||||
|
||||
import org.thingsboard.server.common.data.Customer;
|
||||
import org.thingsboard.server.common.data.Device;
|
||||
import org.thingsboard.server.common.data.HasName;
|
||||
import org.thingsboard.server.common.data.Tenant;
|
||||
import org.thingsboard.server.common.data.alarm.Alarm;
|
||||
import org.thingsboard.server.common.data.asset.Asset;
|
||||
import org.thingsboard.server.common.data.audit.ActionType;
|
||||
import org.thingsboard.server.common.data.edge.Edge;
|
||||
import org.thingsboard.server.common.data.edge.EdgeEventActionType;
|
||||
import org.thingsboard.server.common.data.id.AssetId;
|
||||
import org.thingsboard.server.common.data.id.CustomerId;
|
||||
import org.thingsboard.server.common.data.id.DeviceId;
|
||||
import org.thingsboard.server.common.data.id.EdgeId;
|
||||
@ -41,9 +40,13 @@ public interface TbNotificationEntityService {
|
||||
ActionType actionType, SecurityUser user, Exception e,
|
||||
Object... additionalInfo);
|
||||
|
||||
<E extends HasName, I extends EntityId> void notifyCreateOrUpdateEntity(TenantId tenantId, I entityId, E entity,
|
||||
CustomerId customerId, ActionType actionType,
|
||||
SecurityUser user, Object... additionalInfo);
|
||||
|
||||
<E extends HasName, I extends EntityId> void notifyDeleteEntity(TenantId tenantId, I entityId, E entity, CustomerId customerId,
|
||||
List<EdgeId> relatedEdgeIds, SecurityUser user,
|
||||
Object... additionalInfo);
|
||||
ActionType actionType, List<EdgeId> relatedEdgeIds, SecurityUser user,
|
||||
boolean isBody, Object... additionalInfo);
|
||||
|
||||
<E extends HasName, I extends EntityId> void notifyAssignOrUnassignEntityToCustomer(TenantId tenantId, I entityId,
|
||||
CustomerId customerId, E entity,
|
||||
@ -74,13 +77,10 @@ public interface TbNotificationEntityService {
|
||||
void notifyAssignDeviceToTenant(TenantId tenantId, TenantId newTenantId, DeviceId deviceId, CustomerId customerId,
|
||||
Device device, Tenant tenant, SecurityUser user, Object... additionalInfo);
|
||||
|
||||
void notifyCreateOrUpdateAsset(TenantId tenantId, AssetId assetId, CustomerId customerId, Asset asset,
|
||||
ActionType actionType, SecurityUser user, Object... additionalInfo);
|
||||
|
||||
void notifyEdge(TenantId tenantId, EdgeId edgeId, CustomerId customerId, Edge edge, ActionType actionType, SecurityUser user, Object... additionalInfo);
|
||||
|
||||
void notifyCreateOrUpdateAlarm(Alarm alarm,
|
||||
ActionType actionType, SecurityUser user, Object... additionalInfo);
|
||||
void notifyCreateOrUpdateAlarm(Alarm alarm, ActionType actionType, SecurityUser user, Object... additionalInfo);
|
||||
|
||||
void notifyDeleteAlarm(Alarm alarm, SecurityUser user, List<EdgeId> relatedEdgeIds);
|
||||
|
||||
void notifyDeleteCustomer(Customer customer, SecurityUser user, List<EdgeId> relatedEdgeIds);
|
||||
}
|
||||
|
||||
@ -79,7 +79,8 @@ public class DefaultTbAlarmService extends AbstractTbEntityService implements Tb
|
||||
@Override
|
||||
public Boolean delete(Alarm alarm, SecurityUser user) throws ThingsboardException {
|
||||
List<EdgeId> relatedEdgeIds = findRelatedEdgeIds(alarm.getTenantId(), alarm.getOriginator());
|
||||
notificationEntityService.notifyDeleteAlarm(alarm, user, relatedEdgeIds);
|
||||
notificationEntityService.notifyDeleteEntity(alarm.getTenantId(), alarm.getOriginator(), alarm, alarm.getCustomerId(),
|
||||
ActionType.ALARM_DELETE, relatedEdgeIds, user, true);
|
||||
return alarmService.deleteAlarm(alarm.getTenantId(), alarm.getId()).isSuccessful();
|
||||
}
|
||||
}
|
||||
|
||||
@ -45,7 +45,7 @@ public class DefaultTbAssetService extends AbstractTbEntityService implements Tb
|
||||
TenantId tenantId = asset.getTenantId();
|
||||
try {
|
||||
Asset savedAsset = checkNotNull(assetService.saveAsset(asset));
|
||||
notificationEntityService.notifyCreateOrUpdateAsset(tenantId, savedAsset.getId(), savedAsset.getCustomerId(), asset, actionType, user);
|
||||
notificationEntityService.notifyCreateOrUpdateEntity(tenantId, savedAsset.getId(), asset, savedAsset.getCustomerId(), actionType, user);
|
||||
return savedAsset;
|
||||
} catch (Exception e) {
|
||||
notificationEntityService.notifyEntity(tenantId, emptyId(EntityType.ASSET), asset, null, actionType, user, e);
|
||||
@ -60,7 +60,7 @@ public class DefaultTbAssetService extends AbstractTbEntityService implements Tb
|
||||
try {
|
||||
List<EdgeId> relatedEdgeIds = findRelatedEdgeIds(tenantId, assetId);
|
||||
assetService.deleteAsset(tenantId, assetId);
|
||||
notificationEntityService.notifyDeleteEntity(tenantId, assetId, asset, asset.getCustomerId(), relatedEdgeIds, user, asset.toString());
|
||||
notificationEntityService.notifyDeleteEntity(tenantId, assetId, asset, asset.getCustomerId(), ActionType.DELETED, relatedEdgeIds, user, false, asset.toString());
|
||||
|
||||
return removeAlarmsByEntityId(tenantId, assetId);
|
||||
} catch (Exception e) {
|
||||
|
||||
@ -0,0 +1,63 @@
|
||||
/**
|
||||
* Copyright © 2016-2022 The Thingsboard Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.thingsboard.server.service.entitiy.customer;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.thingsboard.server.common.data.Customer;
|
||||
import org.thingsboard.server.common.data.EntityType;
|
||||
import org.thingsboard.server.common.data.audit.ActionType;
|
||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
||||
import org.thingsboard.server.common.data.id.EdgeId;
|
||||
import org.thingsboard.server.common.data.id.TenantId;
|
||||
import org.thingsboard.server.queue.util.TbCoreComponent;
|
||||
import org.thingsboard.server.service.entitiy.AbstractTbEntityService;
|
||||
import org.thingsboard.server.service.security.model.SecurityUser;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@TbCoreComponent
|
||||
@AllArgsConstructor
|
||||
public class DefaultTbCustomerService extends AbstractTbEntityService implements TbCustomerService {
|
||||
|
||||
@Override
|
||||
public Customer save(Customer customer, SecurityUser user) throws ThingsboardException {
|
||||
ActionType actionType = customer.getId() == null ? ActionType.ADDED : ActionType.UPDATED;
|
||||
TenantId tenantId = customer.getTenantId();
|
||||
try {
|
||||
Customer savedCustomer = checkNotNull(customerService.saveCustomer(customer));
|
||||
notificationEntityService.notifyCreateOrUpdateEntity(tenantId, savedCustomer.getId(), savedCustomer, savedCustomer.getId(), actionType, user);
|
||||
return savedCustomer;
|
||||
} catch (Exception e) {
|
||||
notificationEntityService.notifyEntity(tenantId, emptyId(EntityType.CUSTOMER), customer, null, actionType, user, e);
|
||||
throw handleException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete(Customer customer, SecurityUser user) throws ThingsboardException {
|
||||
TenantId tenantId = customer.getTenantId();
|
||||
try {
|
||||
List<EdgeId> relatedEdgeIds = findRelatedEdgeIds(tenantId, customer.getId());
|
||||
customerService.deleteCustomer(tenantId, customer.getId());
|
||||
notificationEntityService.notifyDeleteCustomer(customer, user, relatedEdgeIds);
|
||||
} catch (Exception e) {
|
||||
notificationEntityService.notifyEntity(tenantId, emptyId(EntityType.CUSTOMER), null, null, ActionType.DELETED, user, e);
|
||||
throw handleException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,26 @@
|
||||
/**
|
||||
* Copyright © 2016-2022 The Thingsboard Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.thingsboard.server.service.entitiy.customer;
|
||||
|
||||
import org.thingsboard.server.common.data.Customer;
|
||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
||||
import org.thingsboard.server.service.security.model.SecurityUser;
|
||||
|
||||
public interface TbCustomerService {
|
||||
Customer save (Customer customer, SecurityUser user) throws ThingsboardException;
|
||||
|
||||
void delete (Customer customer, SecurityUser user) throws ThingsboardException;
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user