...
|
...
|
@@ -205,17 +205,26 @@ public class TkAdminController extends BaseController { |
205
|
205
|
|
206
|
206
|
@PutMapping("/menu/assign/{tenantId}")
|
207
|
207
|
public void assignMenuToTenant(
|
208
|
|
- @RequestBody String[] menuIds, @PathVariable("tenantId") String tenantId){
|
|
208
|
+ @RequestBody String[] menuIds, @PathVariable("tenantId") String tenantId) {
|
209
|
209
|
menuService.assignMenuToTenant(tenantId, menuIds);
|
210
|
210
|
}
|
211
|
211
|
|
212
|
212
|
@PostMapping("tenant/updateOrCreateTenant")
|
213
|
|
- @Transactional
|
214
|
213
|
public TenantDTO updateOrCreateTenant(
|
215
|
214
|
@Validated(UpdateGroup.class) @RequestBody TenantReqDTO tenantReqDTO)
|
216
|
|
- throws ThingsboardException, IOException {
|
217
|
|
- updateOrSaveTenant(tenantReqDTO);
|
218
|
|
- return tkTenantService.updateOrCreateTenant(tenantReqDTO);
|
|
215
|
+ throws ThingsboardException {
|
|
216
|
+ boolean isCreate = StringUtils.isBlank(tenantReqDTO.getTenantId());
|
|
217
|
+ TenantDTO result = null;
|
|
218
|
+ try {
|
|
219
|
+ updateOrSaveTenant(tenantReqDTO, isCreate);
|
|
220
|
+ result = tkTenantService.updateOrCreateTenant(tenantReqDTO, isCreate);
|
|
221
|
+ } catch (Exception e) {
|
|
222
|
+ if (isCreate) {
|
|
223
|
+ deleteTenant(tenantReqDTO.getTenantId());
|
|
224
|
+ throw handleException(e);
|
|
225
|
+ }
|
|
226
|
+ }
|
|
227
|
+ return result;
|
219
|
228
|
}
|
220
|
229
|
|
221
|
230
|
@GetMapping("all/tenants")
|
...
|
...
|
@@ -253,34 +262,40 @@ public class TkAdminController extends BaseController { |
253
|
262
|
}
|
254
|
263
|
}
|
255
|
264
|
|
256
|
|
- private void updateOrSaveTenant(TenantReqDTO tenantReqDTO) throws IOException {
|
257
|
|
- boolean isCreate = tenantReqDTO.getTenantId() == null;
|
258
|
|
- Tenant tbTenant;
|
259
|
|
- if (isCreate) {
|
260
|
|
- // 增加TB的租户创建
|
261
|
|
- tbTenant = new Tenant();
|
262
|
|
- } else {
|
263
|
|
- tbTenant = new Tenant(TenantId.fromUUID(UUID.fromString(tenantReqDTO.getTenantId())));
|
264
|
|
- }
|
265
|
|
- tbTenant.setTenantProfileId(tenantReqDTO.getTenantProfileId());
|
266
|
|
- tbTenant.setTitle(tenantReqDTO.getName());
|
267
|
|
- tbTenant = tenantService.saveTenant(tbTenant);
|
268
|
|
- if (isCreate) {
|
269
|
|
- installScripts.createDefaultRuleChains(tbTenant.getId());
|
270
|
|
- installScripts.createDefaultEdgeRuleChains(tbTenant.getId());
|
271
|
|
- }
|
272
|
|
- tenantProfileCache.evict(tbTenant.getId());
|
273
|
|
- tbClusterService.onTenantChange(tbTenant, null);
|
274
|
|
- tbClusterService.broadcastEntityStateChangeEvent(
|
275
|
|
- tbTenant.getId(),
|
276
|
|
- tbTenant.getId(),
|
277
|
|
- isCreate ? ComponentLifecycleEvent.CREATED : ComponentLifecycleEvent.UPDATED);
|
278
|
|
- tenantReqDTO.setTenantId(tbTenant.getTenantId().toString());
|
|
265
|
+ /**
|
|
266
|
+ * 实现TB创建租户的原生逻辑
|
|
267
|
+ *
|
|
268
|
+ * @param tenantReqDTO
|
|
269
|
+ * @param isCreate
|
|
270
|
+ * @throws IOException
|
|
271
|
+ */
|
|
272
|
+ private void updateOrSaveTenant(TenantReqDTO tenantReqDTO, boolean isCreate) throws IOException {
|
|
273
|
+ Tenant tbTenant;
|
|
274
|
+ if (isCreate) {
|
|
275
|
+ // 增加TB的租户创建
|
|
276
|
+ tbTenant = new Tenant();
|
|
277
|
+ } else {
|
|
278
|
+ tbTenant = new Tenant(TenantId.fromUUID(UUID.fromString(tenantReqDTO.getTenantId())));
|
|
279
|
+ }
|
|
280
|
+ tbTenant.setTenantProfileId(tenantReqDTO.getTenantProfileId());
|
|
281
|
+ tbTenant.setTitle(tenantReqDTO.getName());
|
|
282
|
+ tbTenant = tenantService.saveTenant(tbTenant);
|
|
283
|
+ if (isCreate) {
|
|
284
|
+ installScripts.createDefaultRuleChains(tbTenant.getId());
|
|
285
|
+ installScripts.createDefaultEdgeRuleChains(tbTenant.getId());
|
|
286
|
+ }
|
|
287
|
+ tenantProfileCache.evict(tbTenant.getId());
|
|
288
|
+ tbClusterService.onTenantChange(tbTenant, null);
|
|
289
|
+ tbClusterService.broadcastEntityStateChangeEvent(
|
|
290
|
+ tbTenant.getId(),
|
|
291
|
+ tbTenant.getId(),
|
|
292
|
+ isCreate ? ComponentLifecycleEvent.CREATED : ComponentLifecycleEvent.UPDATED);
|
|
293
|
+ tenantReqDTO.setTenantId(tbTenant.getTenantId().toString());
|
279
|
294
|
}
|
280
|
295
|
|
281
|
|
- private void deleteTenant(String strTenantId) throws ThingsboardException {
|
|
296
|
+ private void deleteTenant(String tbTenantId) throws ThingsboardException {
|
282
|
297
|
try {
|
283
|
|
- TenantId tenantId = TenantId.fromUUID(toUUID(strTenantId));
|
|
298
|
+ TenantId tenantId = TenantId.fromUUID(toUUID(tbTenantId));
|
284
|
299
|
Tenant tenant = checkTenantId(tenantId, Operation.DELETE);
|
285
|
300
|
tenantService.deleteTenant(tenantId);
|
286
|
301
|
tenantProfileCache.evict(tenantId);
|
...
|
...
|
|