Showing
34 changed files
with
333 additions
and
153 deletions
application/src/main/java/org/thingsboard/server/config/yunteng/ControllerExceptionHandler.java
0 → 100644
1 | +package org.thingsboard.server.config.yunteng; | ||
2 | +import lombok.RequiredArgsConstructor; | ||
3 | +import org.springframework.http.HttpStatus; | ||
4 | +import org.springframework.security.access.AccessDeniedException; | ||
5 | +import org.springframework.web.bind.MethodArgumentNotValidException; | ||
6 | +import org.springframework.web.bind.annotation.ControllerAdvice; | ||
7 | +import org.springframework.web.bind.annotation.ExceptionHandler; | ||
8 | +import org.thingsboard.server.common.data.yunteng.core.exception.NoneTenantAssetException; | ||
9 | +import org.thingsboard.server.common.data.yunteng.core.exception.TooManyRequestException; | ||
10 | +import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; | ||
11 | +import org.thingsboard.server.common.data.yunteng.core.exception.YunTengException; | ||
12 | +import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; | ||
13 | +import org.thingsboard.server.exception.yunteng.YunTengErrorResponseHandler; | ||
14 | + | ||
15 | +import javax.servlet.http.HttpServletRequest; | ||
16 | +import javax.servlet.http.HttpServletResponse; | ||
17 | +import java.util.Objects; | ||
18 | +@ControllerAdvice(basePackages = "org.thingsboard.server.controller.yunteng") | ||
19 | +@RequiredArgsConstructor | ||
20 | +public class ControllerExceptionHandler { | ||
21 | + | ||
22 | + private final YunTengErrorResponseHandler errorResponseHandler; | ||
23 | + | ||
24 | + @ExceptionHandler(YunTengException.class) | ||
25 | + public void handleYunTengException(YunTengException ex, HttpServletResponse response) { | ||
26 | + response.setCharacterEncoding("utf-8"); | ||
27 | + errorResponseHandler.handle(ex, response); | ||
28 | + } | ||
29 | + | ||
30 | + @ExceptionHandler(MethodArgumentNotValidException.class) | ||
31 | + public void handleMethodArgumentNotValidException( | ||
32 | + MethodArgumentNotValidException ex, HttpServletResponse response) { | ||
33 | + response.setCharacterEncoding("utf-8"); | ||
34 | + errorResponseHandler.handle( | ||
35 | + new YunTengException( | ||
36 | + ErrorMessage.INVALID_PARAMETER.setMessage( | ||
37 | + Objects.requireNonNull(ex.getBindingResult().getFieldError()).getDefaultMessage()), | ||
38 | + HttpStatus.BAD_REQUEST), | ||
39 | + response); | ||
40 | + } | ||
41 | + | ||
42 | + @ExceptionHandler(YtDataValidationException.class) | ||
43 | + public void handleDataValidationException( | ||
44 | + YtDataValidationException ex, HttpServletRequest request, HttpServletResponse response) { | ||
45 | + response.setCharacterEncoding("utf-8"); | ||
46 | + YunTengException YunTengException = | ||
47 | + new YunTengException( | ||
48 | + ErrorMessage.BAD_PARAMETER.setMessage(ex.getMessage()), HttpStatus.BAD_REQUEST); | ||
49 | + errorResponseHandler.handle(YunTengException, response); | ||
50 | + } | ||
51 | + | ||
52 | + @ExceptionHandler(TooManyRequestException.class) | ||
53 | + public void handleTooManyRequestException(HttpServletResponse response) { | ||
54 | + response.setCharacterEncoding("utf-8"); | ||
55 | + errorResponseHandler.handle( | ||
56 | + new YunTengException(ErrorMessage.TOO_MANY_REQUEST, HttpStatus.TOO_MANY_REQUESTS), | ||
57 | + response); | ||
58 | + } | ||
59 | + | ||
60 | + @ExceptionHandler(AccessDeniedException.class) | ||
61 | + public void handleAccessDeniedException(AccessDeniedException ex, HttpServletResponse response) { | ||
62 | + response.setCharacterEncoding("utf-8"); | ||
63 | + errorResponseHandler.handle( | ||
64 | + new YunTengException( | ||
65 | + ErrorMessage.ACCESS_DENIED.setMessage(ex.getMessage()), HttpStatus.FORBIDDEN), | ||
66 | + response); | ||
67 | + } | ||
68 | + | ||
69 | + @ExceptionHandler(NoneTenantAssetException.class) | ||
70 | + public void handleNoneTenantAssetException( | ||
71 | + NoneTenantAssetException ex, HttpServletResponse response) { | ||
72 | + response.setCharacterEncoding("utf-8"); | ||
73 | + errorResponseHandler.handle( | ||
74 | + new YunTengException( | ||
75 | + ErrorMessage.NONE_TENANT_ASSET.setMessage(ex.getMessage()), HttpStatus.NOT_FOUND), | ||
76 | + response); | ||
77 | + } | ||
78 | +} |
@@ -289,6 +289,7 @@ public abstract class BaseController { | @@ -289,6 +289,7 @@ public abstract class BaseController { | ||
289 | 289 | ||
290 | @ExceptionHandler(ThingsboardException.class) | 290 | @ExceptionHandler(ThingsboardException.class) |
291 | public void handleThingsboardException(ThingsboardException ex, HttpServletResponse response) { | 291 | public void handleThingsboardException(ThingsboardException ex, HttpServletResponse response) { |
292 | + response.setCharacterEncoding("utf-8"); | ||
292 | errorResponseHandler.handle(ex, response); | 293 | errorResponseHandler.handle(ex, response); |
293 | } | 294 | } |
294 | 295 |
@@ -7,9 +7,11 @@ import org.springframework.util.Assert; | @@ -7,9 +7,11 @@ import org.springframework.util.Assert; | ||
7 | import org.springframework.validation.annotation.Validated; | 7 | import org.springframework.validation.annotation.Validated; |
8 | import org.springframework.web.bind.annotation.*; | 8 | import org.springframework.web.bind.annotation.*; |
9 | import org.springframework.web.servlet.support.ServletUriComponentsBuilder; | 9 | import org.springframework.web.servlet.support.ServletUriComponentsBuilder; |
10 | +import org.thingsboard.server.common.data.Tenant; | ||
10 | import org.thingsboard.server.common.data.exception.ThingsboardException; | 11 | import org.thingsboard.server.common.data.exception.ThingsboardException; |
12 | +import org.thingsboard.server.common.data.plugin.ComponentLifecycleEvent; | ||
11 | import org.thingsboard.server.common.data.yunteng.common.UpdateGroup; | 13 | import org.thingsboard.server.common.data.yunteng.common.UpdateGroup; |
12 | -import org.thingsboard.server.common.data.yunteng.core.exception.DataValidationException; | 14 | +import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; |
13 | import org.thingsboard.server.common.data.yunteng.dto.MenuDTO; | 15 | import org.thingsboard.server.common.data.yunteng.dto.MenuDTO; |
14 | import org.thingsboard.server.common.data.yunteng.dto.TenantDTO; | 16 | import org.thingsboard.server.common.data.yunteng.dto.TenantDTO; |
15 | import org.thingsboard.server.common.data.yunteng.dto.UserDTO; | 17 | import org.thingsboard.server.common.data.yunteng.dto.UserDTO; |
@@ -17,10 +19,13 @@ import org.thingsboard.server.common.data.yunteng.dto.request.TenantReqDTO; | @@ -17,10 +19,13 @@ import org.thingsboard.server.common.data.yunteng.dto.request.TenantReqDTO; | ||
17 | import org.thingsboard.server.common.data.yunteng.enums.OrderTypeEnum; | 19 | import org.thingsboard.server.common.data.yunteng.enums.OrderTypeEnum; |
18 | import org.thingsboard.server.common.data.yunteng.utils.tools.PageData; | 20 | import org.thingsboard.server.common.data.yunteng.utils.tools.PageData; |
19 | import org.thingsboard.server.controller.BaseController; | 21 | import org.thingsboard.server.controller.BaseController; |
22 | +import org.thingsboard.server.dao.tenant.TenantService; | ||
20 | import org.thingsboard.server.dao.yunteng.service.MenuService; | 23 | import org.thingsboard.server.dao.yunteng.service.MenuService; |
21 | import org.thingsboard.server.dao.yunteng.service.YtTenantService; | 24 | import org.thingsboard.server.dao.yunteng.service.YtTenantService; |
22 | import org.thingsboard.server.dao.yunteng.service.YtUserService; | 25 | import org.thingsboard.server.dao.yunteng.service.YtUserService; |
26 | +import org.thingsboard.server.service.install.InstallScripts; | ||
23 | 27 | ||
28 | +import java.io.IOException; | ||
24 | import java.net.URI; | 29 | import java.net.URI; |
25 | import java.util.*; | 30 | import java.util.*; |
26 | 31 | ||
@@ -29,12 +34,14 @@ import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant. | @@ -29,12 +34,14 @@ import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant. | ||
29 | @RestController | 34 | @RestController |
30 | @RequestMapping("api/yt/admin") | 35 | @RequestMapping("api/yt/admin") |
31 | @RequiredArgsConstructor | 36 | @RequiredArgsConstructor |
32 | -//@PreAuthorize("hasAnyRole('SYS_ADMIN','PLATFORM_ADMIN')") | 37 | +@PreAuthorize("hasAnyAuthority('SYS_ADMIN','PLATFORM_ADMIN')") |
33 | public class YtAdminController extends BaseController { | 38 | public class YtAdminController extends BaseController { |
34 | 39 | ||
35 | private final YtTenantService ytTenantService; | 40 | private final YtTenantService ytTenantService; |
36 | private final MenuService menuService; | 41 | private final MenuService menuService; |
37 | private final YtUserService userService; | 42 | private final YtUserService userService; |
43 | + private final TenantService tenantService; | ||
44 | + private final InstallScripts installScripts; | ||
38 | 45 | ||
39 | @PostMapping("/tenant") | 46 | @PostMapping("/tenant") |
40 | public ResponseEntity<TenantDTO> saveTenant(@RequestBody TenantReqDTO tenantReqDTO) { | 47 | public ResponseEntity<TenantDTO> saveTenant(@RequestBody TenantReqDTO tenantReqDTO) { |
@@ -84,7 +91,7 @@ public class YtAdminController extends BaseController { | @@ -84,7 +91,7 @@ public class YtAdminController extends BaseController { | ||
84 | public void deleteTenant(@RequestBody String[] ids) { | 91 | public void deleteTenant(@RequestBody String[] ids) { |
85 | Assert.notNull(ids, "ids cannot be null"); | 92 | Assert.notNull(ids, "ids cannot be null"); |
86 | if (ids.length == 0) { | 93 | if (ids.length == 0) { |
87 | - throw new DataValidationException("id cannot be empty"); | 94 | + throw new YtDataValidationException("id cannot be empty"); |
88 | } | 95 | } |
89 | ytTenantService.deleteTenants(ids); | 96 | ytTenantService.deleteTenants(ids); |
90 | } | 97 | } |
@@ -147,7 +154,21 @@ public class YtAdminController extends BaseController { | @@ -147,7 +154,21 @@ public class YtAdminController extends BaseController { | ||
147 | 154 | ||
148 | @PostMapping("tenant/updateOrCreateTenant") | 155 | @PostMapping("tenant/updateOrCreateTenant") |
149 | public TenantDTO updateOrCreateTenant( | 156 | public TenantDTO updateOrCreateTenant( |
150 | - @Validated(UpdateGroup.class) @RequestBody TenantReqDTO tenantReqDTO) { | 157 | + @Validated(UpdateGroup.class) @RequestBody TenantReqDTO tenantReqDTO) throws IOException { |
158 | + boolean newTenant = tenantReqDTO.getId() == null; | ||
159 | + //增加TB的租户创建 | ||
160 | + Tenant tbTenant = new Tenant(); | ||
161 | + tbTenant.setTitle(tenantReqDTO.getName()); | ||
162 | + tbTenant = tenantService.saveTenant(tbTenant); | ||
163 | + if(newTenant){ | ||
164 | + installScripts.createDefaultRuleChains(tbTenant.getId()); | ||
165 | + installScripts.createDefaultEdgeRuleChains(tbTenant.getId()); | ||
166 | + } | ||
167 | + tenantProfileCache.evict(tbTenant.getId()); | ||
168 | + tbClusterService.onTenantChange(tbTenant, null); | ||
169 | + tbClusterService.broadcastEntityStateChangeEvent(tbTenant.getId(), tbTenant.getId(), | ||
170 | + newTenant ? ComponentLifecycleEvent.CREATED : ComponentLifecycleEvent.UPDATED); | ||
171 | + tenantReqDTO.setTenantId(tbTenant.getTenantId().toString()); | ||
151 | return ytTenantService.updateOrCreateTenant(tenantReqDTO); | 172 | return ytTenantService.updateOrCreateTenant(tenantReqDTO); |
152 | } | 173 | } |
153 | } | 174 | } |
@@ -10,7 +10,7 @@ import org.springframework.web.bind.annotation.*; | @@ -10,7 +10,7 @@ import org.springframework.web.bind.annotation.*; | ||
10 | import org.springframework.web.servlet.support.ServletUriComponentsBuilder; | 10 | import org.springframework.web.servlet.support.ServletUriComponentsBuilder; |
11 | import org.thingsboard.server.common.data.exception.ThingsboardException; | 11 | import org.thingsboard.server.common.data.exception.ThingsboardException; |
12 | import org.thingsboard.server.common.data.yunteng.common.AddGroup; | 12 | import org.thingsboard.server.common.data.yunteng.common.AddGroup; |
13 | -import org.thingsboard.server.common.data.yunteng.core.exception.DataValidationException; | 13 | +import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; |
14 | import org.thingsboard.server.common.data.yunteng.dto.AlarmContactDTO; | 14 | import org.thingsboard.server.common.data.yunteng.dto.AlarmContactDTO; |
15 | import org.thingsboard.server.common.data.yunteng.utils.tools.PageData; | 15 | import org.thingsboard.server.common.data.yunteng.utils.tools.PageData; |
16 | import org.thingsboard.server.controller.BaseController; | 16 | import org.thingsboard.server.controller.BaseController; |
@@ -82,7 +82,7 @@ public class YtAlarmContactController extends BaseController { | @@ -82,7 +82,7 @@ public class YtAlarmContactController extends BaseController { | ||
82 | @DeleteMapping | 82 | @DeleteMapping |
83 | public void deleteById(@RequestBody String[] ids) { | 83 | public void deleteById(@RequestBody String[] ids) { |
84 | if (ids.length == 0) { | 84 | if (ids.length == 0) { |
85 | - throw new DataValidationException("please provide alarm ids to delete"); | 85 | + throw new YtDataValidationException("please provide alarm ids to delete"); |
86 | } | 86 | } |
87 | alarmService.delete(ids); | 87 | alarmService.delete(ids); |
88 | } | 88 | } |
@@ -10,7 +10,6 @@ import org.springframework.web.servlet.support.ServletUriComponentsBuilder; | @@ -10,7 +10,6 @@ import org.springframework.web.servlet.support.ServletUriComponentsBuilder; | ||
10 | import org.thingsboard.server.common.data.exception.ThingsboardException; | 10 | import org.thingsboard.server.common.data.exception.ThingsboardException; |
11 | import org.thingsboard.server.common.data.yunteng.common.AddGroup; | 11 | import org.thingsboard.server.common.data.yunteng.common.AddGroup; |
12 | import org.thingsboard.server.common.data.yunteng.common.DeleteGroup; | 12 | import org.thingsboard.server.common.data.yunteng.common.DeleteGroup; |
13 | -import org.thingsboard.server.common.data.yunteng.core.exception.FastIotException; | ||
14 | import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO; | 13 | import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO; |
15 | import org.thingsboard.server.common.data.yunteng.dto.DeviceDTO; | 14 | import org.thingsboard.server.common.data.yunteng.dto.DeviceDTO; |
16 | import org.thingsboard.server.common.data.yunteng.enums.DeviceState; | 15 | import org.thingsboard.server.common.data.yunteng.enums.DeviceState; |
@@ -34,7 +33,7 @@ public class YtDeviceController extends BaseController { | @@ -34,7 +33,7 @@ public class YtDeviceController extends BaseController { | ||
34 | 33 | ||
35 | @PostMapping | 34 | @PostMapping |
36 | public ResponseEntity<DeviceDTO> saveDevice(@Validated(AddGroup.class)@RequestBody DeviceDTO deviceDTO) | 35 | public ResponseEntity<DeviceDTO> saveDevice(@Validated(AddGroup.class)@RequestBody DeviceDTO deviceDTO) |
37 | - throws FastIotException, ThingsboardException { | 36 | + throws ThingsboardException { |
38 | DeviceDTO newDeviceDTO = deviceService.insertOrUpdate(getCurrentUser().getCurrentTenantId(), deviceDTO); | 37 | DeviceDTO newDeviceDTO = deviceService.insertOrUpdate(getCurrentUser().getCurrentTenantId(), deviceDTO); |
39 | return Optional.ofNullable(newDeviceDTO) | 38 | return Optional.ofNullable(newDeviceDTO) |
40 | .map( | 39 | .map( |
@@ -9,7 +9,6 @@ import org.springframework.web.bind.annotation.*; | @@ -9,7 +9,6 @@ import org.springframework.web.bind.annotation.*; | ||
9 | import org.springframework.web.servlet.support.ServletUriComponentsBuilder; | 9 | import org.springframework.web.servlet.support.ServletUriComponentsBuilder; |
10 | import org.thingsboard.server.common.data.exception.ThingsboardException; | 10 | import org.thingsboard.server.common.data.exception.ThingsboardException; |
11 | import org.thingsboard.server.common.data.yunteng.common.DeleteGroup; | 11 | import org.thingsboard.server.common.data.yunteng.common.DeleteGroup; |
12 | -import org.thingsboard.server.common.data.yunteng.core.exception.FastIotException; | ||
13 | import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO; | 12 | import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO; |
14 | import org.thingsboard.server.common.data.yunteng.dto.DeviceProfileDTO; | 13 | import org.thingsboard.server.common.data.yunteng.dto.DeviceProfileDTO; |
15 | import org.thingsboard.server.common.data.yunteng.enums.OrderTypeEnum; | 14 | import org.thingsboard.server.common.data.yunteng.enums.OrderTypeEnum; |
@@ -33,7 +32,7 @@ public class YtDeviceProfileController extends BaseController { | @@ -33,7 +32,7 @@ public class YtDeviceProfileController extends BaseController { | ||
33 | @PostMapping | 32 | @PostMapping |
34 | @PreAuthorize("hasRole('ROLE_TENANT_ADMIN')") | 33 | @PreAuthorize("hasRole('ROLE_TENANT_ADMIN')") |
35 | public ResponseEntity<DeviceProfileDTO> saveDeviceProfile( | 34 | public ResponseEntity<DeviceProfileDTO> saveDeviceProfile( |
36 | - @RequestBody DeviceProfileDTO deviceProfileDTO) throws FastIotException, ThingsboardException { | 35 | + @RequestBody DeviceProfileDTO deviceProfileDTO) throws ThingsboardException { |
37 | DeviceProfileDTO newDeviceProfileDTO = deviceProfileService.insertOrUpdate(getCurrentUser().getCurrentTenantId(), deviceProfileDTO); | 36 | DeviceProfileDTO newDeviceProfileDTO = deviceProfileService.insertOrUpdate(getCurrentUser().getCurrentTenantId(), deviceProfileDTO); |
38 | return Optional.ofNullable(newDeviceProfileDTO) | 37 | return Optional.ofNullable(newDeviceProfileDTO) |
39 | .map( | 38 | .map( |
@@ -8,8 +8,7 @@ import org.springframework.util.Assert; | @@ -8,8 +8,7 @@ import org.springframework.util.Assert; | ||
8 | import org.springframework.web.bind.annotation.*; | 8 | import org.springframework.web.bind.annotation.*; |
9 | import org.springframework.web.servlet.support.ServletUriComponentsBuilder; | 9 | import org.springframework.web.servlet.support.ServletUriComponentsBuilder; |
10 | import org.thingsboard.server.common.data.exception.ThingsboardException; | 10 | import org.thingsboard.server.common.data.exception.ThingsboardException; |
11 | -import org.thingsboard.server.common.data.yunteng.core.exception.DataValidationException; | ||
12 | -import org.thingsboard.server.common.data.yunteng.core.exception.FastIotException; | 11 | +import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; |
13 | import org.thingsboard.server.common.data.yunteng.dto.MenuDTO; | 12 | import org.thingsboard.server.common.data.yunteng.dto.MenuDTO; |
14 | import org.thingsboard.server.controller.BaseController; | 13 | import org.thingsboard.server.controller.BaseController; |
15 | import org.thingsboard.server.dao.yunteng.service.MenuService; | 14 | import org.thingsboard.server.dao.yunteng.service.MenuService; |
@@ -62,7 +61,7 @@ public class YtMenuController extends BaseController { | @@ -62,7 +61,7 @@ public class YtMenuController extends BaseController { | ||
62 | @PostMapping | 61 | @PostMapping |
63 | @PreAuthorize("hasAnyRole('SYS_ADMIN','TENANT_ADMIN')") | 62 | @PreAuthorize("hasAnyRole('SYS_ADMIN','TENANT_ADMIN')") |
64 | public ResponseEntity<MenuDTO> saveMenu(@RequestBody MenuDTO menuDTO) | 63 | public ResponseEntity<MenuDTO> saveMenu(@RequestBody MenuDTO menuDTO) |
65 | - throws FastIotException, ThingsboardException { | 64 | + throws ThingsboardException { |
66 | MenuDTO newMenuDTO = | 65 | MenuDTO newMenuDTO = |
67 | menuService.saveMenu( | 66 | menuService.saveMenu( |
68 | getCurrentUser().getCurrentTenantId(), getCurrentUser().isPtSysadmin(), menuDTO); | 67 | getCurrentUser().getCurrentTenantId(), getCurrentUser().isPtSysadmin(), menuDTO); |
@@ -83,7 +82,7 @@ public class YtMenuController extends BaseController { | @@ -83,7 +82,7 @@ public class YtMenuController extends BaseController { | ||
83 | @PreAuthorize("hasAnyRole('SYS_ADMIN','TENANT_ADMIN')") | 82 | @PreAuthorize("hasAnyRole('SYS_ADMIN','TENANT_ADMIN')") |
84 | public void deleteMenus(@RequestBody String[] ids) throws ThingsboardException { | 83 | public void deleteMenus(@RequestBody String[] ids) throws ThingsboardException { |
85 | if (ids.length == 0) { | 84 | if (ids.length == 0) { |
86 | - throw new DataValidationException("please provide menu ids to delete"); | 85 | + throw new YtDataValidationException("please provide menu ids to delete"); |
87 | } | 86 | } |
88 | menuService.deleteMenus(getCurrentUser().getCurrentTenantId(), ids); | 87 | menuService.deleteMenus(getCurrentUser().getCurrentTenantId(), ids); |
89 | } | 88 | } |
@@ -8,7 +8,6 @@ import org.springframework.web.servlet.support.ServletUriComponentsBuilder; | @@ -8,7 +8,6 @@ import org.springframework.web.servlet.support.ServletUriComponentsBuilder; | ||
8 | import org.thingsboard.server.common.data.exception.ThingsboardException; | 8 | import org.thingsboard.server.common.data.exception.ThingsboardException; |
9 | import org.thingsboard.server.common.data.yunteng.common.DeleteGroup; | 9 | import org.thingsboard.server.common.data.yunteng.common.DeleteGroup; |
10 | import org.thingsboard.server.common.data.yunteng.common.UpdateGroup; | 10 | import org.thingsboard.server.common.data.yunteng.common.UpdateGroup; |
11 | -import org.thingsboard.server.common.data.yunteng.core.exception.FastIotException; | ||
12 | import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO; | 11 | import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO; |
13 | import org.thingsboard.server.common.data.yunteng.dto.OrganizationDTO; | 12 | import org.thingsboard.server.common.data.yunteng.dto.OrganizationDTO; |
14 | import org.thingsboard.server.controller.BaseController; | 13 | import org.thingsboard.server.controller.BaseController; |
@@ -27,7 +26,7 @@ public class YtOrganizationController extends BaseController { | @@ -27,7 +26,7 @@ public class YtOrganizationController extends BaseController { | ||
27 | 26 | ||
28 | @PostMapping | 27 | @PostMapping |
29 | public ResponseEntity<OrganizationDTO> saveGroup(@RequestBody OrganizationDTO groupDTO) | 28 | public ResponseEntity<OrganizationDTO> saveGroup(@RequestBody OrganizationDTO groupDTO) |
30 | - throws FastIotException, ThingsboardException { | 29 | + throws ThingsboardException { |
31 | OrganizationDTO newGroupDTO = | 30 | OrganizationDTO newGroupDTO = |
32 | organizationService.saveOrganization(groupDTO, getCurrentUser().getCurrentTenantId()); | 31 | organizationService.saveOrganization(groupDTO, getCurrentUser().getCurrentTenantId()); |
33 | return Optional.ofNullable(newGroupDTO) | 32 | return Optional.ofNullable(newGroupDTO) |
@@ -8,13 +8,17 @@ import lombok.RequiredArgsConstructor; | @@ -8,13 +8,17 @@ import lombok.RequiredArgsConstructor; | ||
8 | import org.apache.commons.lang3.StringUtils; | 8 | import org.apache.commons.lang3.StringUtils; |
9 | import org.springframework.http.ResponseEntity; | 9 | import org.springframework.http.ResponseEntity; |
10 | import org.springframework.security.access.prepost.PreAuthorize; | 10 | import org.springframework.security.access.prepost.PreAuthorize; |
11 | -import org.springframework.util.Assert; | ||
12 | import org.springframework.validation.annotation.Validated; | 11 | import org.springframework.validation.annotation.Validated; |
13 | import org.springframework.web.bind.annotation.*; | 12 | import org.springframework.web.bind.annotation.*; |
14 | import org.springframework.web.servlet.support.ServletUriComponentsBuilder; | 13 | import org.springframework.web.servlet.support.ServletUriComponentsBuilder; |
14 | +import org.thingsboard.server.common.data.User; | ||
15 | +import org.thingsboard.server.common.data.audit.ActionType; | ||
16 | +import org.thingsboard.server.common.data.edge.EdgeEventActionType; | ||
15 | import org.thingsboard.server.common.data.exception.ThingsboardException; | 17 | import org.thingsboard.server.common.data.exception.ThingsboardException; |
18 | +import org.thingsboard.server.common.data.id.TenantId; | ||
16 | import org.thingsboard.server.common.data.yunteng.common.AddGroup; | 19 | import org.thingsboard.server.common.data.yunteng.common.AddGroup; |
17 | import org.thingsboard.server.common.data.yunteng.common.DeleteGroup; | 20 | import org.thingsboard.server.common.data.yunteng.common.DeleteGroup; |
21 | +import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; | ||
18 | import org.thingsboard.server.common.data.yunteng.utils.Demo; | 22 | import org.thingsboard.server.common.data.yunteng.utils.Demo; |
19 | import org.thingsboard.server.common.data.yunteng.utils.ExcelUtil; | 23 | import org.thingsboard.server.common.data.yunteng.utils.ExcelUtil; |
20 | import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO; | 24 | import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO; |
@@ -27,6 +31,7 @@ import org.thingsboard.server.common.data.yunteng.enums.RoleEnum; | @@ -27,6 +31,7 @@ import org.thingsboard.server.common.data.yunteng.enums.RoleEnum; | ||
27 | import org.thingsboard.server.common.data.yunteng.utils.tools.PageData; | 31 | import org.thingsboard.server.common.data.yunteng.utils.tools.PageData; |
28 | import org.thingsboard.server.common.data.yunteng.utils.tools.ResponseResult; | 32 | import org.thingsboard.server.common.data.yunteng.utils.tools.ResponseResult; |
29 | import org.thingsboard.server.controller.BaseController; | 33 | import org.thingsboard.server.controller.BaseController; |
34 | +import org.thingsboard.server.dao.user.UserService; | ||
30 | import org.thingsboard.server.dao.yunteng.service.YtUserService; | 35 | import org.thingsboard.server.dao.yunteng.service.YtUserService; |
31 | 36 | ||
32 | import javax.servlet.http.HttpServletRequest; | 37 | import javax.servlet.http.HttpServletRequest; |
@@ -35,6 +40,7 @@ import java.io.IOException; | @@ -35,6 +40,7 @@ import java.io.IOException; | ||
35 | import java.net.URI; | 40 | import java.net.URI; |
36 | import java.util.HashMap; | 41 | import java.util.HashMap; |
37 | import java.util.List; | 42 | import java.util.List; |
43 | +import java.util.UUID; | ||
38 | 44 | ||
39 | import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.*; | 45 | import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.*; |
40 | 46 | ||
@@ -45,7 +51,7 @@ import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant. | @@ -45,7 +51,7 @@ import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant. | ||
45 | public class YtUserController extends BaseController { | 51 | public class YtUserController extends BaseController { |
46 | 52 | ||
47 | private final YtUserService userService; | 53 | private final YtUserService userService; |
48 | - | 54 | + private final UserService tbUserService; |
49 | @GetMapping("{userId}") | 55 | @GetMapping("{userId}") |
50 | public ResponseEntity<UserDTO> getUser(@PathVariable("userId") String userId) | 56 | public ResponseEntity<UserDTO> getUser(@PathVariable("userId") String userId) |
51 | throws ThingsboardException { | 57 | throws ThingsboardException { |
@@ -131,14 +137,22 @@ public class YtUserController extends BaseController { | @@ -131,14 +137,22 @@ public class YtUserController extends BaseController { | ||
131 | return ResponseEntity.created(location).body(newUserDTO); | 137 | return ResponseEntity.created(location).body(newUserDTO); |
132 | } | 138 | } |
133 | 139 | ||
134 | - @PreAuthorize("hasRole('SYS_ADMIN')") | 140 | + @PreAuthorize("hasAnyAuthority('SYS_ADMIN','PLATFORM_ADMIN')") |
135 | @PostMapping("saveTenantAdmin") | 141 | @PostMapping("saveTenantAdmin") |
136 | - public UserDTO saveTenantAdmin(@RequestBody UserDTO userDTO) throws ThingsboardException { | ||
137 | - Assert.isTrue(StringUtils.isNotBlank(userDTO.getTenantId()), "tenant code must exist"); | ||
138 | - Assert.notNull(userDTO.getUsername(), "username must exist"); | ||
139 | - Assert.notNull(userDTO.getRealName(), "real name must exist"); | 142 | + public UserDTO saveTenantAdmin(@Validated(AddGroup.class)@RequestBody UserDTO userDTO) throws ThingsboardException { |
143 | + //创建TB的租户管理员 | ||
144 | + User tbUser = new User(); | ||
145 | + TenantId tenantId = new TenantId(UUID.fromString(userDTO.getTenantId())); | ||
146 | + tbUser.setTenantId(tenantId); | ||
147 | + tbUser.setEmail(userDTO.getUsername()+ FastIotConstants.DEFAULT_EMAIL_SUFFIX_FOR_TB); | ||
148 | + tbUser = tbUserService.saveUser(tbUser); | ||
149 | + logEntityAction(tbUser.getId(), tbUser, | ||
150 | + tbUser.getCustomerId(), | ||
151 | + userDTO.getId() == null ? ActionType.ADDED : ActionType.UPDATED, null); | ||
152 | + sendEntityNotificationMsg(tenantId, tbUser.getId(), | ||
153 | + userDTO.getId() == null ? EdgeEventActionType.ADDED : EdgeEventActionType.UPDATED); | ||
140 | return userService.saveTenantAdmin( | 154 | return userService.saveTenantAdmin( |
141 | - userDTO, getCurrentUser().isPtSysadmin(), getCurrentUser().getCurrentTenantId()); | 155 | + userDTO, getCurrentUser().isPtSysadmin(), tenantId.getId().toString()); |
142 | } | 156 | } |
143 | 157 | ||
144 | @DeleteMapping | 158 | @DeleteMapping |
application/src/main/java/org/thingsboard/server/exception/yunteng/YunTengErrorResponseHandler.java
0 → 100644
1 | +package org.thingsboard.server.exception.yunteng; | ||
2 | + | ||
3 | +import com.fasterxml.jackson.databind.ObjectMapper; | ||
4 | +import lombok.extern.slf4j.Slf4j; | ||
5 | +import org.springframework.beans.factory.annotation.Autowired; | ||
6 | +import org.springframework.http.HttpStatus; | ||
7 | +import org.springframework.http.MediaType; | ||
8 | +import org.springframework.security.access.AccessDeniedException; | ||
9 | +import org.springframework.security.authentication.BadCredentialsException; | ||
10 | +import org.springframework.security.authentication.DisabledException; | ||
11 | +import org.springframework.security.authentication.LockedException; | ||
12 | +import org.springframework.security.core.AuthenticationException; | ||
13 | +import org.springframework.security.web.access.AccessDeniedHandler; | ||
14 | +import org.springframework.stereotype.Component; | ||
15 | +import org.thingsboard.server.common.data.yunteng.core.Result; | ||
16 | +import org.thingsboard.server.common.data.yunteng.core.exception.YunTengException; | ||
17 | +import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; | ||
18 | +import org.thingsboard.server.service.security.exception.AuthMethodNotSupportedException; | ||
19 | +import org.thingsboard.server.service.security.exception.JwtExpiredTokenException; | ||
20 | + | ||
21 | +import javax.servlet.http.HttpServletRequest; | ||
22 | +import javax.servlet.http.HttpServletResponse; | ||
23 | +import java.io.IOException; | ||
24 | + | ||
25 | +@Component | ||
26 | +@Slf4j | ||
27 | +public class YunTengErrorResponseHandler implements AccessDeniedHandler { | ||
28 | + | ||
29 | + private final ObjectMapper mapper; | ||
30 | + | ||
31 | + @Autowired | ||
32 | + public YunTengErrorResponseHandler(ObjectMapper mapper) { | ||
33 | + this.mapper = mapper; | ||
34 | + } | ||
35 | + | ||
36 | + @Override | ||
37 | + public void handle( | ||
38 | + HttpServletRequest request, | ||
39 | + HttpServletResponse response, | ||
40 | + AccessDeniedException accessDeniedException) | ||
41 | + throws IOException { | ||
42 | + if (!response.isCommitted()) { | ||
43 | + response.setContentType(MediaType.APPLICATION_JSON_VALUE); | ||
44 | + response.setStatus(HttpStatus.FORBIDDEN.value()); | ||
45 | + mapper.writeValue(response.getWriter(), Result.error(ErrorMessage.NO_PERMISSION)); | ||
46 | + } | ||
47 | + } | ||
48 | + | ||
49 | + public void handle(Exception exception, HttpServletResponse response) { | ||
50 | + log.debug("Processing exception {}", exception.getMessage(), exception); | ||
51 | + if (!response.isCommitted()) { | ||
52 | + try { | ||
53 | + response.setContentType(MediaType.APPLICATION_JSON_VALUE); | ||
54 | + | ||
55 | + if (exception instanceof AccessDeniedException) { | ||
56 | + response.setStatus(HttpStatus.FORBIDDEN.value()); | ||
57 | + mapper.writeValue(response.getWriter(), Result.error(ErrorMessage.ACCESS_DENIED)); | ||
58 | + } else if (exception instanceof AuthenticationException) { | ||
59 | + handleAuthenticationException((AuthenticationException) exception, response); | ||
60 | + } else if (exception instanceof YunTengException) { | ||
61 | + response.setStatus(((YunTengException) exception).getHttpStatus().value()); | ||
62 | + mapper.writeValue( | ||
63 | + response.getWriter(), Result.error(((YunTengException) exception).getError())); | ||
64 | + } else { | ||
65 | + response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value()); | ||
66 | + mapper.writeValue(response.getWriter(), Result.error(exception.getMessage())); | ||
67 | + } | ||
68 | + } catch (IOException e) { | ||
69 | + log.error("Can't handle exception", e); | ||
70 | + } | ||
71 | + } | ||
72 | + } | ||
73 | + | ||
74 | + private void handleAuthenticationException( | ||
75 | + AuthenticationException authenticationException, HttpServletResponse response) | ||
76 | + throws IOException { | ||
77 | + response.setStatus(HttpStatus.UNAUTHORIZED.value()); | ||
78 | + if (authenticationException instanceof BadCredentialsException) { | ||
79 | + mapper.writeValue( | ||
80 | + response.getWriter(), Result.error(ErrorMessage.USERNAME_PASSWORD_INCORRECT)); | ||
81 | + } else if (authenticationException instanceof DisabledException) { | ||
82 | + mapper.writeValue(response.getWriter(), Result.error(ErrorMessage.ACCOUNT_DISABLED)); | ||
83 | + } else if (authenticationException instanceof LockedException) { | ||
84 | + mapper.writeValue(response.getWriter(), Result.error(ErrorMessage.ACCOUNT_DISABLED)); | ||
85 | + } else if (authenticationException instanceof JwtExpiredTokenException) { | ||
86 | + mapper.writeValue(response.getWriter(), Result.error(ErrorMessage.TOKEN_EXPIRED)); | ||
87 | + } else if (authenticationException instanceof AuthMethodNotSupportedException) { | ||
88 | + mapper.writeValue( | ||
89 | + response.getWriter(), Result.error(ErrorMessage.AUTHENTICATION_METHOD_NOT_SUPPORTED)); | ||
90 | + } else { | ||
91 | + mapper.writeValue( | ||
92 | + response.getWriter(), | ||
93 | + Result.error(HttpStatus.UNAUTHORIZED.value(), authenticationException.getMessage())); | ||
94 | + } | ||
95 | + } | ||
96 | +} |
@@ -2,7 +2,7 @@ package org.thingsboard.server.common.data.yunteng.config.sms; | @@ -2,7 +2,7 @@ package org.thingsboard.server.common.data.yunteng.config.sms; | ||
2 | 2 | ||
3 | import lombok.extern.slf4j.Slf4j; | 3 | import lombok.extern.slf4j.Slf4j; |
4 | import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; | 4 | import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; |
5 | -import org.thingsboard.server.common.data.yunteng.core.exception.DataValidationException; | 5 | +import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; |
6 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; | 6 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; |
7 | 7 | ||
8 | @Slf4j | 8 | @Slf4j |
@@ -11,7 +11,7 @@ public abstract class AbstractSmsSender implements SmsSender { | @@ -11,7 +11,7 @@ public abstract class AbstractSmsSender implements SmsSender { | ||
11 | protected void validatePhoneNumber(String phoneNumber) { | 11 | protected void validatePhoneNumber(String phoneNumber) { |
12 | phoneNumber = phoneNumber.trim(); | 12 | phoneNumber = phoneNumber.trim(); |
13 | if (!FastIotConstants.CHINA_MOBILE_PATTERN.matcher(phoneNumber).matches()) { | 13 | if (!FastIotConstants.CHINA_MOBILE_PATTERN.matcher(phoneNumber).matches()) { |
14 | - throw new DataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | 14 | + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); |
15 | } | 15 | } |
16 | } | 16 | } |
17 | } | 17 | } |
@@ -8,12 +8,11 @@ import com.aliyuncs.exceptions.ClientException; | @@ -8,12 +8,11 @@ import com.aliyuncs.exceptions.ClientException; | ||
8 | import com.aliyuncs.http.MethodType; | 8 | import com.aliyuncs.http.MethodType; |
9 | import com.aliyuncs.profile.DefaultProfile; | 9 | import com.aliyuncs.profile.DefaultProfile; |
10 | import com.aliyuncs.profile.IClientProfile; | 10 | import com.aliyuncs.profile.IClientProfile; |
11 | -import lombok.Data; | ||
12 | import lombok.extern.slf4j.Slf4j; | 11 | import lombok.extern.slf4j.Slf4j; |
13 | import org.apache.commons.lang3.StringUtils; | 12 | import org.apache.commons.lang3.StringUtils; |
14 | import org.thingsboard.common.util.JacksonUtil; | 13 | import org.thingsboard.common.util.JacksonUtil; |
15 | import org.thingsboard.server.common.data.yunteng.config.sms.AbstractSmsSender; | 14 | import org.thingsboard.server.common.data.yunteng.config.sms.AbstractSmsSender; |
16 | -import org.thingsboard.server.common.data.yunteng.core.exception.FastIotException; | 15 | +import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; |
17 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; | 16 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; |
18 | import org.thingsboard.server.common.data.yunteng.enums.ResponseCodeEnum; | 17 | import org.thingsboard.server.common.data.yunteng.enums.ResponseCodeEnum; |
19 | 18 | ||
@@ -30,7 +29,7 @@ public class AliSmsSender extends AbstractSmsSender { | @@ -30,7 +29,7 @@ public class AliSmsSender extends AbstractSmsSender { | ||
30 | public AliSmsSender(AliSmsProviderConfiguration config) { | 29 | public AliSmsSender(AliSmsProviderConfiguration config) { |
31 | if (StringUtils.isEmpty(config.getAccessKeyId()) | 30 | if (StringUtils.isEmpty(config.getAccessKeyId()) |
32 | || StringUtils.isEmpty(config.getAccessKeyId())) { | 31 | || StringUtils.isEmpty(config.getAccessKeyId())) { |
33 | - throw new FastIotException(ErrorMessage.INVALID_PARAMETER); | 32 | + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); |
34 | } | 33 | } |
35 | this.config = config; | 34 | this.config = config; |
36 | initProfile(); | 35 | initProfile(); |
common/data/src/main/java/org/thingsboard/server/common/data/yunteng/core/exception/YtDataValidationException.java
renamed from
common/data/src/main/java/org/thingsboard/server/common/data/yunteng/core/exception/DataValidationException.java
@@ -2,16 +2,16 @@ package org.thingsboard.server.common.data.yunteng.core.exception; | @@ -2,16 +2,16 @@ package org.thingsboard.server.common.data.yunteng.core.exception; | ||
2 | 2 | ||
3 | import lombok.Getter; | 3 | import lombok.Getter; |
4 | 4 | ||
5 | -public class DataValidationException extends RuntimeException { | 5 | +public class YtDataValidationException extends RuntimeException { |
6 | private static final long serialVersionUID = 3556952261254572635L; | 6 | private static final long serialVersionUID = 3556952261254572635L; |
7 | 7 | ||
8 | @Getter public boolean log = false; | 8 | @Getter public boolean log = false; |
9 | 9 | ||
10 | - public DataValidationException(String message) { | 10 | + public YtDataValidationException(String message) { |
11 | super(message); | 11 | super(message); |
12 | } | 12 | } |
13 | 13 | ||
14 | - public DataValidationException(String message, boolean log) { | 14 | + public YtDataValidationException(String message, boolean log) { |
15 | super(message); | 15 | super(message); |
16 | this.log = log; | 16 | this.log = log; |
17 | } | 17 | } |
common/data/src/main/java/org/thingsboard/server/common/data/yunteng/core/exception/YunTengException.java
renamed from
common/data/src/main/java/org/thingsboard/server/common/data/yunteng/core/exception/FastIotException.java
@@ -4,26 +4,26 @@ import lombok.Getter; | @@ -4,26 +4,26 @@ import lombok.Getter; | ||
4 | import org.springframework.http.HttpStatus; | 4 | import org.springframework.http.HttpStatus; |
5 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; | 5 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; |
6 | 6 | ||
7 | -public class FastIotException extends RuntimeException { | 7 | +public class YunTengException extends RuntimeException { |
8 | private static final long serialVersionUID = 4036257507478854844L; | 8 | private static final long serialVersionUID = 4036257507478854844L; |
9 | 9 | ||
10 | @Getter private final HttpStatus httpStatus; | 10 | @Getter private final HttpStatus httpStatus; |
11 | 11 | ||
12 | @Getter private final ErrorMessage error; | 12 | @Getter private final ErrorMessage error; |
13 | 13 | ||
14 | - public FastIotException(ErrorMessage errorMessage) { | 14 | + public YunTengException(ErrorMessage errorMessage) { |
15 | super(errorMessage.getMessage()); | 15 | super(errorMessage.getMessage()); |
16 | this.httpStatus = HttpStatus.INTERNAL_SERVER_ERROR; | 16 | this.httpStatus = HttpStatus.INTERNAL_SERVER_ERROR; |
17 | this.error = errorMessage; | 17 | this.error = errorMessage; |
18 | } | 18 | } |
19 | 19 | ||
20 | - public FastIotException(ErrorMessage errorMessage, HttpStatus httpStatus) { | 20 | + public YunTengException(ErrorMessage errorMessage, HttpStatus httpStatus) { |
21 | super(errorMessage.getMessage()); | 21 | super(errorMessage.getMessage()); |
22 | this.httpStatus = httpStatus; | 22 | this.httpStatus = httpStatus; |
23 | this.error = errorMessage; | 23 | this.error = errorMessage; |
24 | } | 24 | } |
25 | 25 | ||
26 | - public FastIotException() { | 26 | + public YunTengException() { |
27 | super(ErrorMessage.INTERNAL_ERROR.getMessage()); | 27 | super(ErrorMessage.INTERNAL_ERROR.getMessage()); |
28 | this.error = ErrorMessage.INTERNAL_ERROR; | 28 | this.error = ErrorMessage.INTERNAL_ERROR; |
29 | this.httpStatus = HttpStatus.INTERNAL_SERVER_ERROR; | 29 | this.httpStatus = HttpStatus.INTERNAL_SERVER_ERROR; |
@@ -45,6 +45,7 @@ public class UserDTO extends BaseDTO { | @@ -45,6 +45,7 @@ public class UserDTO extends BaseDTO { | ||
45 | private boolean hasPassword; | 45 | private boolean hasPassword; |
46 | 46 | ||
47 | @JsonInclude(JsonInclude.Include.NON_NULL) | 47 | @JsonInclude(JsonInclude.Include.NON_NULL) |
48 | + @NotEmpty(message = "租户ID不能为空或者空字符串", groups = AddGroup.class) | ||
48 | private String tenantId; | 49 | private String tenantId; |
49 | 50 | ||
50 | @JsonInclude(JsonInclude.Include.NON_NULL) | 51 | @JsonInclude(JsonInclude.Include.NON_NULL) |
@@ -4,17 +4,17 @@ public enum RoleEnum { | @@ -4,17 +4,17 @@ public enum RoleEnum { | ||
4 | /** | 4 | /** |
5 | * 超级管理员 | 5 | * 超级管理员 |
6 | */ | 6 | */ |
7 | - ROLE_SYS_ADMIN, | 7 | + SYS_ADMIN, |
8 | /** | 8 | /** |
9 | * 租户管理员 | 9 | * 租户管理员 |
10 | */ | 10 | */ |
11 | - ROLE_TENANT_ADMIN, | 11 | + TENANT_ADMIN, |
12 | /** | 12 | /** |
13 | * 租户下普通用户 | 13 | * 租户下普通用户 |
14 | */ | 14 | */ |
15 | - ROLE_NORMAL_USER, | 15 | + CUSTOMER_USER, |
16 | /** | 16 | /** |
17 | * 平台系统管理员 | 17 | * 平台系统管理员 |
18 | */ | 18 | */ |
19 | - ROLE_PLATFORM_ADMIN; | 19 | + PLATFORM_ADMIN; |
20 | } | 20 | } |
@@ -12,8 +12,7 @@ import org.springframework.stereotype.Service; | @@ -12,8 +12,7 @@ import org.springframework.stereotype.Service; | ||
12 | import org.springframework.transaction.annotation.Transactional; | 12 | import org.springframework.transaction.annotation.Transactional; |
13 | import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; | 13 | import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; |
14 | import org.thingsboard.server.common.data.yunteng.core.cache.CacheUtils; | 14 | import org.thingsboard.server.common.data.yunteng.core.cache.CacheUtils; |
15 | -import org.thingsboard.server.common.data.yunteng.core.exception.DataValidationException; | ||
16 | -import org.thingsboard.server.common.data.yunteng.core.exception.FastIotException; | 15 | +import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; |
17 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; | 16 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; |
18 | import org.thingsboard.server.common.data.yunteng.dto.MenuDTO; | 17 | import org.thingsboard.server.common.data.yunteng.dto.MenuDTO; |
19 | import org.thingsboard.server.common.data.yunteng.enums.MenuTypeEnum; | 18 | import org.thingsboard.server.common.data.yunteng.enums.MenuTypeEnum; |
@@ -84,19 +83,17 @@ public class MenuServiceImpl extends AbstractBaseService<MenuMapper, Menu> imple | @@ -84,19 +83,17 @@ public class MenuServiceImpl extends AbstractBaseService<MenuMapper, Menu> imple | ||
84 | } | 83 | } |
85 | if (!isSysAdmin | 84 | if (!isSysAdmin |
86 | && menuDTO.getType().equals(MenuTypeEnum.SYSADMIN)) { | 85 | && menuDTO.getType().equals(MenuTypeEnum.SYSADMIN)) { |
87 | - throw new FastIotException( | ||
88 | - ErrorMessage.ACCESS_DENIED.setMessage("Non-system admin cannot save system menu"), | ||
89 | - HttpStatus.FORBIDDEN); | 86 | + throw new AccessDeniedException("Non-system admin cannot save system menu"); |
90 | } | 87 | } |
91 | if (menuDTO.getType().equals(MenuTypeEnum.CUSTOM) | 88 | if (menuDTO.getType().equals(MenuTypeEnum.CUSTOM) |
92 | && StringUtils.isAllBlank(menuDTO.getName())) { | 89 | && StringUtils.isAllBlank(menuDTO.getName())) { |
93 | - throw new DataValidationException("menu name is required when save custom menu"); | 90 | + throw new YtDataValidationException("menu name is required when save custom menu"); |
94 | } | 91 | } |
95 | int count = | 92 | int count = |
96 | baseMapper.selectCount( | 93 | baseMapper.selectCount( |
97 | new QueryWrapper<Menu>().lambda().eq(Menu::getPath, menuDTO.getPath())); | 94 | new QueryWrapper<Menu>().lambda().eq(Menu::getPath, menuDTO.getPath())); |
98 | if (count > 0) { | 95 | if (count > 0) { |
99 | - throw new DataValidationException("menu with path " + menuDTO + " already exist"); | 96 | + throw new YtDataValidationException("menu with path " + menuDTO + " already exist"); |
100 | } | 97 | } |
101 | menuDTO.setTenantId(tenantId); | 98 | menuDTO.setTenantId(tenantId); |
102 | Menu menu = menuDTO.getEntity(Menu.class); | 99 | Menu menu = menuDTO.getEntity(Menu.class); |
@@ -118,7 +115,7 @@ public class MenuServiceImpl extends AbstractBaseService<MenuMapper, Menu> imple | @@ -118,7 +115,7 @@ public class MenuServiceImpl extends AbstractBaseService<MenuMapper, Menu> imple | ||
118 | public MenuDTO updateMenu(String tenantId,boolean isSysAdmin,MenuDTO menuDTO) { | 115 | public MenuDTO updateMenu(String tenantId,boolean isSysAdmin,MenuDTO menuDTO) { |
119 | Menu menu = baseMapper.selectById(menuDTO.getId()); | 116 | Menu menu = baseMapper.selectById(menuDTO.getId()); |
120 | if (menu == null) { | 117 | if (menu == null) { |
121 | - throw new DataValidationException("cannot find menu to update"); | 118 | + throw new YtDataValidationException("cannot find menu to update"); |
122 | } else { | 119 | } else { |
123 | if (!isSysAdmin) { | 120 | if (!isSysAdmin) { |
124 | if (!tenantId.equals(menuDTO.getTenantId())) { | 121 | if (!tenantId.equals(menuDTO.getTenantId())) { |
@@ -166,7 +163,7 @@ public class MenuServiceImpl extends AbstractBaseService<MenuMapper, Menu> imple | @@ -166,7 +163,7 @@ public class MenuServiceImpl extends AbstractBaseService<MenuMapper, Menu> imple | ||
166 | int menuCountInDB = | 163 | int menuCountInDB = |
167 | baseMapper.selectCount(new QueryWrapper<Menu>().lambda().in(Menu::getId, ids)); | 164 | baseMapper.selectCount(new QueryWrapper<Menu>().lambda().in(Menu::getId, ids)); |
168 | if (menuCountInDB != menuId.length) { | 165 | if (menuCountInDB != menuId.length) { |
169 | - throw new DataValidationException("please ensure all menu id are valid"); | 166 | + throw new YtDataValidationException("please ensure all menu id are valid"); |
170 | } | 167 | } |
171 | Set<String> existMenus = baseMapper.selectTenantMenuIds(tenantId); | 168 | Set<String> existMenus = baseMapper.selectTenantMenuIds(tenantId); |
172 | Set<String> toDel = Sets.difference(existMenus, ids); | 169 | Set<String> toDel = Sets.difference(existMenus, ids); |
@@ -193,7 +190,7 @@ public class MenuServiceImpl extends AbstractBaseService<MenuMapper, Menu> imple | @@ -193,7 +190,7 @@ public class MenuServiceImpl extends AbstractBaseService<MenuMapper, Menu> imple | ||
193 | int menuCountInDB = | 190 | int menuCountInDB = |
194 | baseMapper.selectCount(new QueryWrapper<Menu>().lambda().in(Menu::getId, ids)); | 191 | baseMapper.selectCount(new QueryWrapper<Menu>().lambda().in(Menu::getId, ids)); |
195 | if (menuCountInDB != menuId.length) { | 192 | if (menuCountInDB != menuId.length) { |
196 | - throw new DataValidationException("please ensure all menu id are valid"); | 193 | + throw new YtDataValidationException("please ensure all menu id are valid"); |
197 | } | 194 | } |
198 | } | 195 | } |
199 | Set<String> existMenus = baseMapper.selectRoleMenuIds(roleId); | 196 | Set<String> existMenus = baseMapper.selectRoleMenuIds(roleId); |
@@ -12,7 +12,7 @@ import org.springframework.stereotype.Service; | @@ -12,7 +12,7 @@ import org.springframework.stereotype.Service; | ||
12 | import org.springframework.transaction.annotation.Transactional; | 12 | import org.springframework.transaction.annotation.Transactional; |
13 | import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; | 13 | import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; |
14 | import org.thingsboard.server.common.data.yunteng.core.cache.CacheUtils; | 14 | import org.thingsboard.server.common.data.yunteng.core.cache.CacheUtils; |
15 | -import org.thingsboard.server.common.data.yunteng.core.exception.FastIotException; | 15 | +import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; |
16 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; | 16 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; |
17 | import org.thingsboard.server.common.data.yunteng.dto.RoleDTO; | 17 | import org.thingsboard.server.common.data.yunteng.dto.RoleDTO; |
18 | import org.thingsboard.server.common.data.yunteng.dto.request.RoleReqDTO; | 18 | import org.thingsboard.server.common.data.yunteng.dto.request.RoleReqDTO; |
@@ -54,12 +54,12 @@ public class RoleServiceImpl extends AbstractBaseService<RoleMapper, Role> imple | @@ -54,12 +54,12 @@ public class RoleServiceImpl extends AbstractBaseService<RoleMapper, Role> imple | ||
54 | .lambda() | 54 | .lambda() |
55 | .eq(queryMap.get("status") != null, Role::isEnabled, queryMap.get("status")) | 55 | .eq(queryMap.get("status") != null, Role::isEnabled, queryMap.get("status")) |
56 | .eq(queryMap.get("roleType") != null, Role::getRoleType, queryMap.get("roleType")) | 56 | .eq(queryMap.get("roleType") != null, Role::getRoleType, queryMap.get("roleType")) |
57 | - .ne(queryMap.get("roleType") == null, Role::getRoleType, RoleEnum.ROLE_TENANT_ADMIN) | 57 | + .ne(queryMap.get("roleType") == null, Role::getRoleType, RoleEnum.TENANT_ADMIN) |
58 | .ne( | 58 | .ne( |
59 | queryMap.get("roleType") == null | 59 | queryMap.get("roleType") == null |
60 | && isPlatformAdmin, | 60 | && isPlatformAdmin, |
61 | Role::getRoleType, | 61 | Role::getRoleType, |
62 | - RoleEnum.ROLE_SYS_ADMIN) | 62 | + RoleEnum.SYS_ADMIN) |
63 | .eq( | 63 | .eq( |
64 | !isSysadmin, | 64 | !isSysadmin, |
65 | Role::getTenantId, | 65 | Role::getTenantId, |
@@ -87,7 +87,7 @@ public class RoleServiceImpl extends AbstractBaseService<RoleMapper, Role> imple | @@ -87,7 +87,7 @@ public class RoleServiceImpl extends AbstractBaseService<RoleMapper, Role> imple | ||
87 | // 判断该角色下面是否有用户 | 87 | // 判断该角色下面是否有用户 |
88 | Set<String> userIds = baseMapper.checkRoleUserMappingByRoleIds(ids); | 88 | Set<String> userIds = baseMapper.checkRoleUserMappingByRoleIds(ids); |
89 | if (null != userIds && userIds.size() > 0) { | 89 | if (null != userIds && userIds.size() > 0) { |
90 | - throw new FastIotException(ErrorMessage.ROLE_IN_USE); | 90 | + throw new YtDataValidationException(ErrorMessage.ROLE_IN_USE.getMessage()); |
91 | } | 91 | } |
92 | // delete sys_role_menu mapping | 92 | // delete sys_role_menu mapping |
93 | baseMapper.deleteRoleMenuMappingByRoleIds(ids); | 93 | baseMapper.deleteRoleMenuMappingByRoleIds(ids); |
@@ -106,7 +106,7 @@ public class RoleServiceImpl extends AbstractBaseService<RoleMapper, Role> imple | @@ -106,7 +106,7 @@ public class RoleServiceImpl extends AbstractBaseService<RoleMapper, Role> imple | ||
106 | boolean cachePresent; | 106 | boolean cachePresent; |
107 | if (isSysadmin) { | 107 | if (isSysadmin) { |
108 | cacheKey = | 108 | cacheKey = |
109 | - FastIotConstants.CacheConfigKey.USER_PERMISSION_PREFIX + RoleEnum.ROLE_SYS_ADMIN.name(); | 109 | + FastIotConstants.CacheConfigKey.USER_PERMISSION_PREFIX + RoleEnum.SYS_ADMIN.name(); |
110 | Optional<Set<String>> optionalPermission = | 110 | Optional<Set<String>> optionalPermission = |
111 | cacheUtils.get(FastIotConstants.CacheConfigKey.CACHE_CONFIG_KEY, cacheKey); | 111 | cacheUtils.get(FastIotConstants.CacheConfigKey.CACHE_CONFIG_KEY, cacheKey); |
112 | cachePresent = optionalPermission.isPresent(); | 112 | cachePresent = optionalPermission.isPresent(); |
@@ -168,13 +168,13 @@ public class RoleServiceImpl extends AbstractBaseService<RoleMapper, Role> imple | @@ -168,13 +168,13 @@ public class RoleServiceImpl extends AbstractBaseService<RoleMapper, Role> imple | ||
168 | public RoleDTO saveOrUpdateRoleInfoWithMenu(RoleReqDTO roleReqDTO,boolean isSysadmin,boolean isPlatformAdmin,String tenantId) { | 168 | public RoleDTO saveOrUpdateRoleInfoWithMenu(RoleReqDTO roleReqDTO,boolean isSysadmin,boolean isPlatformAdmin,String tenantId) { |
169 | Role role; | 169 | Role role; |
170 | // 默认普通管理员角色,即租户管理员添加的角色 | 170 | // 默认普通管理员角色,即租户管理员添加的角色 |
171 | - var roleType = RoleEnum.ROLE_NORMAL_USER.name(); | 171 | + var roleType = RoleEnum.CUSTOMER_USER.name(); |
172 | if (null != roleReqDTO.getRoleType()) { | 172 | if (null != roleReqDTO.getRoleType()) { |
173 | roleType = roleReqDTO.getRoleType().name(); | 173 | roleType = roleReqDTO.getRoleType().name(); |
174 | } else { | 174 | } else { |
175 | if (isSysadmin | 175 | if (isSysadmin |
176 | || isPlatformAdmin) { | 176 | || isPlatformAdmin) { |
177 | - roleType = RoleEnum.ROLE_PLATFORM_ADMIN.name(); | 177 | + roleType = RoleEnum.PLATFORM_ADMIN.name(); |
178 | } | 178 | } |
179 | } | 179 | } |
180 | boolean update = StringUtils.isNotBlank(roleReqDTO.getId()); | 180 | boolean update = StringUtils.isNotBlank(roleReqDTO.getId()); |
@@ -212,7 +212,7 @@ public class RoleServiceImpl extends AbstractBaseService<RoleMapper, Role> imple | @@ -212,7 +212,7 @@ public class RoleServiceImpl extends AbstractBaseService<RoleMapper, Role> imple | ||
212 | menuService.assignMenuToRole( | 212 | menuService.assignMenuToRole( |
213 | roleReqDTO.getMenu().toArray(new String[roleReqDTO.getMenu().size()]), role.getId()); | 213 | roleReqDTO.getMenu().toArray(new String[roleReqDTO.getMenu().size()]), role.getId()); |
214 | // 如果是租户管理员角色并且是更新,则需要更新租户菜单表 | 214 | // 如果是租户管理员角色并且是更新,则需要更新租户菜单表 |
215 | - if (role.getRoleType().equals(RoleEnum.ROLE_TENANT_ADMIN.name()) && update) { | 215 | + if (role.getRoleType().equals(RoleEnum.TENANT_ADMIN.name()) && update) { |
216 | List<String> menus = roleReqDTO.getMenu(); | 216 | List<String> menus = roleReqDTO.getMenu(); |
217 | // 先删除以前的租户菜单,再更新新的租户菜单 | 217 | // 先删除以前的租户菜单,再更新新的租户菜单 |
218 | // 1、查询这个角色有几个租户用户 | 218 | // 1、查询这个角色有几个租户用户 |
@@ -6,10 +6,10 @@ import lombok.extern.slf4j.Slf4j; | @@ -6,10 +6,10 @@ import lombok.extern.slf4j.Slf4j; | ||
6 | import org.apache.commons.lang3.StringUtils; | 6 | import org.apache.commons.lang3.StringUtils; |
7 | import org.springframework.stereotype.Service; | 7 | import org.springframework.stereotype.Service; |
8 | import org.springframework.transaction.annotation.Transactional; | 8 | import org.springframework.transaction.annotation.Transactional; |
9 | -import org.thingsboard.server.common.data.yunteng.core.exception.DataValidationException; | ||
10 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; | 9 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; |
11 | import org.thingsboard.server.common.data.yunteng.dto.SysDictItemDTO; | 10 | import org.thingsboard.server.common.data.yunteng.dto.SysDictItemDTO; |
12 | import org.thingsboard.server.common.data.yunteng.utils.tools.PageData; | 11 | import org.thingsboard.server.common.data.yunteng.utils.tools.PageData; |
12 | +import org.thingsboard.server.dao.exception.DataValidationException; | ||
13 | import org.thingsboard.server.dao.yunteng.entities.SysDictItem; | 13 | import org.thingsboard.server.dao.yunteng.entities.SysDictItem; |
14 | import org.thingsboard.server.dao.yunteng.mapper.SysDictItemMapper; | 14 | import org.thingsboard.server.dao.yunteng.mapper.SysDictItemMapper; |
15 | import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; | 15 | import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; |
@@ -5,7 +5,7 @@ import lombok.RequiredArgsConstructor; | @@ -5,7 +5,7 @@ import lombok.RequiredArgsConstructor; | ||
5 | import lombok.extern.slf4j.Slf4j; | 5 | import lombok.extern.slf4j.Slf4j; |
6 | import org.springframework.stereotype.Service; | 6 | import org.springframework.stereotype.Service; |
7 | import org.springframework.transaction.annotation.Transactional; | 7 | import org.springframework.transaction.annotation.Transactional; |
8 | -import org.thingsboard.server.common.data.yunteng.core.exception.DataValidationException; | 8 | +import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; |
9 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; | 9 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; |
10 | import org.thingsboard.server.common.data.yunteng.dto.SysDictDTO; | 10 | import org.thingsboard.server.common.data.yunteng.dto.SysDictDTO; |
11 | import org.thingsboard.server.common.data.yunteng.dto.SysDictItemDTO; | 11 | import org.thingsboard.server.common.data.yunteng.dto.SysDictItemDTO; |
@@ -52,7 +52,7 @@ public class SysDictServiceImpl extends AbstractBaseService<SysDictMapper, SysDi | @@ -52,7 +52,7 @@ public class SysDictServiceImpl extends AbstractBaseService<SysDictMapper, SysDi | ||
52 | // 新增之前先判断该租户是否已添加 | 52 | // 新增之前先判断该租户是否已添加 |
53 | SysDictDTO querySysDict = baseMapper.getDictInfoByCode(tenantId, sysDictDTO.getDictCode()); | 53 | SysDictDTO querySysDict = baseMapper.getDictInfoByCode(tenantId, sysDictDTO.getDictCode()); |
54 | if (querySysDict != null) { | 54 | if (querySysDict != null) { |
55 | - throw new DataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | 55 | + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); |
56 | } | 56 | } |
57 | SysDict sysDict = new SysDict(); | 57 | SysDict sysDict = new SysDict(); |
58 | sysDictDTO.copyToEntity(sysDict); | 58 | sysDictDTO.copyToEntity(sysDict); |
@@ -69,7 +69,7 @@ public class SysDictServiceImpl extends AbstractBaseService<SysDictMapper, SysDi | @@ -69,7 +69,7 @@ public class SysDictServiceImpl extends AbstractBaseService<SysDictMapper, SysDi | ||
69 | List<SysDictItemDTO> sysDictItemDTO = | 69 | List<SysDictItemDTO> sysDictItemDTO = |
70 | sysDictItemMapper.getDictItemInfo(id,null); | 70 | sysDictItemMapper.getDictItemInfo(id,null); |
71 | if (sysDictItemDTO != null) { | 71 | if (sysDictItemDTO != null) { |
72 | - throw new DataValidationException( | 72 | + throw new YtDataValidationException( |
73 | "There is a relationship between superiors and subordinates"); | 73 | "There is a relationship between superiors and subordinates"); |
74 | } | 74 | } |
75 | } | 75 | } |
@@ -7,7 +7,7 @@ import lombok.RequiredArgsConstructor; | @@ -7,7 +7,7 @@ import lombok.RequiredArgsConstructor; | ||
7 | import org.apache.commons.lang3.StringUtils; | 7 | import org.apache.commons.lang3.StringUtils; |
8 | import org.springframework.stereotype.Service; | 8 | import org.springframework.stereotype.Service; |
9 | import org.springframework.transaction.annotation.Transactional; | 9 | import org.springframework.transaction.annotation.Transactional; |
10 | -import org.thingsboard.server.common.data.yunteng.core.exception.DataValidationException; | 10 | +import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; |
11 | import org.thingsboard.server.common.data.yunteng.dto.AlarmContactDTO; | 11 | import org.thingsboard.server.common.data.yunteng.dto.AlarmContactDTO; |
12 | import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils; | 12 | import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils; |
13 | import org.thingsboard.server.common.data.yunteng.utils.tools.PageData; | 13 | import org.thingsboard.server.common.data.yunteng.utils.tools.PageData; |
@@ -72,7 +72,7 @@ public class YtAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM | @@ -72,7 +72,7 @@ public class YtAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM | ||
72 | tenantWapper(tenantId).eq(AlarmContact::getUsername, alarmContactDTO.getUsername()); | 72 | tenantWapper(tenantId).eq(AlarmContact::getUsername, alarmContactDTO.getUsername()); |
73 | int Count = baseMapper.selectCount(Wrapper); | 73 | int Count = baseMapper.selectCount(Wrapper); |
74 | if (Count > 0) { | 74 | if (Count > 0) { |
75 | - throw new DataValidationException("department for this name is exited"); | 75 | + throw new YtDataValidationException("department for this name is exited"); |
76 | } | 76 | } |
77 | alarmContactDTO.setTenantId(tenantId); | 77 | alarmContactDTO.setTenantId(tenantId); |
78 | AlarmContact alarmContact = alarmContactDTO.getEntity(AlarmContact.class); | 78 | AlarmContact alarmContact = alarmContactDTO.getEntity(AlarmContact.class); |
@@ -111,7 +111,7 @@ public class YtAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM | @@ -111,7 +111,7 @@ public class YtAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM | ||
111 | // 得到对象 | 111 | // 得到对象 |
112 | AlarmContact alarmContact = baseMapper.selectById(alarmContactDTO.getId()); | 112 | AlarmContact alarmContact = baseMapper.selectById(alarmContactDTO.getId()); |
113 | if (alarmContact == null) { | 113 | if (alarmContact == null) { |
114 | - throw new DataValidationException("此数据不存在"); | 114 | + throw new YtDataValidationException("此数据不存在"); |
115 | } else { | 115 | } else { |
116 | AlarmContact entity = alarmContactDTO.getEntity(AlarmContact.class); | 116 | AlarmContact entity = alarmContactDTO.getEntity(AlarmContact.class); |
117 | System.out.println(alarmContact); | 117 | System.out.println(alarmContact); |
@@ -3,7 +3,7 @@ package org.thingsboard.server.dao.yunteng.impl; | @@ -3,7 +3,7 @@ package org.thingsboard.server.dao.yunteng.impl; | ||
3 | import lombok.RequiredArgsConstructor; | 3 | import lombok.RequiredArgsConstructor; |
4 | import lombok.extern.slf4j.Slf4j; | 4 | import lombok.extern.slf4j.Slf4j; |
5 | import org.springframework.stereotype.Service; | 5 | import org.springframework.stereotype.Service; |
6 | -import org.thingsboard.server.common.data.yunteng.core.exception.FastIotException; | 6 | +import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; |
7 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; | 7 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; |
8 | import org.thingsboard.server.common.data.yunteng.dto.AlarmInfoDTO; | 8 | import org.thingsboard.server.common.data.yunteng.dto.AlarmInfoDTO; |
9 | import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils; | 9 | import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils; |
@@ -131,7 +131,7 @@ public class YtAlarmInfoServiceImpl implements YtAlarmInfoService { | @@ -131,7 +131,7 @@ public class YtAlarmInfoServiceImpl implements YtAlarmInfoService { | ||
131 | return pageData; | 131 | return pageData; |
132 | } catch (Exception e) { | 132 | } catch (Exception e) { |
133 | log.error("create TBAlarmInfo error {}", e.getMessage()); | 133 | log.error("create TBAlarmInfo error {}", e.getMessage()); |
134 | - throw new FastIotException(ErrorMessage.CONNECT_TO_TB_ERROR); | 134 | + throw new YtDataValidationException(ErrorMessage.CONNECT_TO_TB_ERROR.getMessage()); |
135 | } | 135 | } |
136 | //return getPageData(alarmInfoIPage,AlarmInfoDTO.class); | 136 | //return getPageData(alarmInfoIPage,AlarmInfoDTO.class); |
137 | } | 137 | } |
@@ -6,7 +6,7 @@ import lombok.extern.slf4j.Slf4j; | @@ -6,7 +6,7 @@ import lombok.extern.slf4j.Slf4j; | ||
6 | import org.apache.commons.lang3.StringUtils; | 6 | import org.apache.commons.lang3.StringUtils; |
7 | import org.springframework.stereotype.Service; | 7 | import org.springframework.stereotype.Service; |
8 | import org.springframework.transaction.annotation.Transactional; | 8 | import org.springframework.transaction.annotation.Transactional; |
9 | -import org.thingsboard.server.common.data.yunteng.core.exception.DataValidationException; | 9 | +import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; |
10 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; | 10 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; |
11 | import org.thingsboard.server.common.data.yunteng.dto.AlarmProfileDTO; | 11 | import org.thingsboard.server.common.data.yunteng.dto.AlarmProfileDTO; |
12 | import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils; | 12 | import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils; |
@@ -49,7 +49,7 @@ public class YtAlarmProfileServiceImpl extends AbstractBaseService<AlarmProfileM | @@ -49,7 +49,7 @@ public class YtAlarmProfileServiceImpl extends AbstractBaseService<AlarmProfileM | ||
49 | @Override | 49 | @Override |
50 | public AlarmProfileDTO findAlarmProfileByDeviceProfileId(String tenantId,String deviceProfileId) { | 50 | public AlarmProfileDTO findAlarmProfileByDeviceProfileId(String tenantId,String deviceProfileId) { |
51 | if (StringUtils.isEmpty(deviceProfileId)) { | 51 | if (StringUtils.isEmpty(deviceProfileId)) { |
52 | - throw new DataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | 52 | + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); |
53 | } | 53 | } |
54 | List<AlarmProfile> alarmProfileList = | 54 | List<AlarmProfile> alarmProfileList = |
55 | baseMapper.selectList( | 55 | baseMapper.selectList( |
@@ -8,7 +8,7 @@ import org.apache.commons.lang3.StringUtils; | @@ -8,7 +8,7 @@ import org.apache.commons.lang3.StringUtils; | ||
8 | import org.springframework.security.access.AccessDeniedException; | 8 | import org.springframework.security.access.AccessDeniedException; |
9 | import org.springframework.stereotype.Service; | 9 | import org.springframework.stereotype.Service; |
10 | import org.springframework.transaction.annotation.Transactional; | 10 | import org.springframework.transaction.annotation.Transactional; |
11 | -import org.thingsboard.server.common.data.yunteng.core.exception.DataValidationException; | 11 | +import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; |
12 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; | 12 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; |
13 | import org.thingsboard.server.common.data.yunteng.dto.AlarmContactDTO; | 13 | import org.thingsboard.server.common.data.yunteng.dto.AlarmContactDTO; |
14 | import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils; | 14 | import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils; |
@@ -71,7 +71,7 @@ public class YtAlarmServiceImpl extends AbstractBaseService<AlarmContactMapper, | @@ -71,7 +71,7 @@ public class YtAlarmServiceImpl extends AbstractBaseService<AlarmContactMapper, | ||
71 | .eq( AlarmContact::getUsername, alarmContactDTO.getUsername()); | 71 | .eq( AlarmContact::getUsername, alarmContactDTO.getUsername()); |
72 | int Count = baseMapper.selectCount(Wrapper); | 72 | int Count = baseMapper.selectCount(Wrapper); |
73 | if (Count > 0) { | 73 | if (Count > 0) { |
74 | - throw new DataValidationException("department for this name is exited"); | 74 | + throw new YtDataValidationException("department for this name is exited"); |
75 | } | 75 | } |
76 | alarmContactDTO.setTenantId(tenantId); | 76 | alarmContactDTO.setTenantId(tenantId); |
77 | AlarmContact alarmContact = alarmContactDTO.getEntity(AlarmContact.class); | 77 | AlarmContact alarmContact = alarmContactDTO.getEntity(AlarmContact.class); |
@@ -112,7 +112,7 @@ public class YtAlarmServiceImpl extends AbstractBaseService<AlarmContactMapper, | @@ -112,7 +112,7 @@ public class YtAlarmServiceImpl extends AbstractBaseService<AlarmContactMapper, | ||
112 | AlarmContact alarmContact = alarmContactMapper.selectById(alarmContactDTO.getId()); | 112 | AlarmContact alarmContact = alarmContactMapper.selectById(alarmContactDTO.getId()); |
113 | if (alarmContact == null) { | 113 | if (alarmContact == null) { |
114 | //为空则抛出无效参数的异常 | 114 | //为空则抛出无效参数的异常 |
115 | - throw new DataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | 115 | + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); |
116 | } else { | 116 | } else { |
117 | if (!istenantAdmin) { | 117 | if (!istenantAdmin) { |
118 | if (!tenantId.equals(alarmContactDTO.getTenantId())) { | 118 | if (!tenantId.equals(alarmContactDTO.getTenantId())) { |
@@ -8,7 +8,7 @@ import org.apache.commons.lang3.StringUtils; | @@ -8,7 +8,7 @@ import org.apache.commons.lang3.StringUtils; | ||
8 | import org.springframework.stereotype.Service; | 8 | import org.springframework.stereotype.Service; |
9 | import org.springframework.transaction.annotation.Transactional; | 9 | import org.springframework.transaction.annotation.Transactional; |
10 | import org.thingsboard.server.common.data.yunteng.core.cache.CacheUtils; | 10 | import org.thingsboard.server.common.data.yunteng.core.cache.CacheUtils; |
11 | -import org.thingsboard.server.common.data.yunteng.core.exception.DataValidationException; | 11 | +import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; |
12 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; | 12 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; |
13 | import org.thingsboard.server.common.data.yunteng.dto.AlarmProfileDTO; | 13 | import org.thingsboard.server.common.data.yunteng.dto.AlarmProfileDTO; |
14 | import org.thingsboard.server.common.data.yunteng.dto.DeviceProfileDTO; | 14 | import org.thingsboard.server.common.data.yunteng.dto.DeviceProfileDTO; |
@@ -68,7 +68,7 @@ public class YtDeviceProfileServiceImpl | @@ -68,7 +68,7 @@ public class YtDeviceProfileServiceImpl | ||
68 | YtDeviceProfile deviceProfile = new YtDeviceProfile(); | 68 | YtDeviceProfile deviceProfile = new YtDeviceProfile(); |
69 | // 判断数据库是否已存在名字相同的设备配置 | 69 | // 判断数据库是否已存在名字相同的设备配置 |
70 | if (findDeviceProfile(tenantId,deviceProfileDTO).size() > 0) { | 70 | if (findDeviceProfile(tenantId,deviceProfileDTO).size() > 0) { |
71 | - throw new DataValidationException(ErrorMessage.NAME_ALREADY_EXISTS.getMessage()); | 71 | + throw new YtDataValidationException(ErrorMessage.NAME_ALREADY_EXISTS.getMessage()); |
72 | } | 72 | } |
73 | deviceProfileDTO.copyToEntity(deviceProfile); | 73 | deviceProfileDTO.copyToEntity(deviceProfile); |
74 | deviceProfile.setTenantId(tenantId); | 74 | deviceProfile.setTenantId(tenantId); |
@@ -90,7 +90,7 @@ public class YtDeviceProfileServiceImpl | @@ -90,7 +90,7 @@ public class YtDeviceProfileServiceImpl | ||
90 | int count = | 90 | int count = |
91 | deviceMapper.selectCount(new QueryWrapper<YtDevice>().lambda().in(YtDevice::getProfileId, ids)); | 91 | deviceMapper.selectCount(new QueryWrapper<YtDevice>().lambda().in(YtDevice::getProfileId, ids)); |
92 | if (count > 0) { | 92 | if (count > 0) { |
93 | - throw new DataValidationException("有设备使用待删除配置,请先删除设备或者修改设备配置"); | 93 | + throw new YtDataValidationException("有设备使用待删除配置,请先删除设备或者修改设备配置"); |
94 | } | 94 | } |
95 | // TODO check if ids bind to iotfs_key_value_mapping | 95 | // TODO check if ids bind to iotfs_key_value_mapping |
96 | // 删除本地时,先删除TB的DeviceProfile | 96 | // 删除本地时,先删除TB的DeviceProfile |
@@ -11,7 +11,7 @@ import org.springframework.stereotype.Service; | @@ -11,7 +11,7 @@ import org.springframework.stereotype.Service; | ||
11 | import org.springframework.transaction.annotation.Transactional; | 11 | import org.springframework.transaction.annotation.Transactional; |
12 | import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; | 12 | import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; |
13 | import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | 13 | import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; |
14 | -import org.thingsboard.server.common.data.yunteng.core.exception.DataValidationException; | 14 | +import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; |
15 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; | 15 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; |
16 | import org.thingsboard.server.common.data.yunteng.dto.DeviceDTO; | 16 | import org.thingsboard.server.common.data.yunteng.dto.DeviceDTO; |
17 | import org.thingsboard.server.common.data.yunteng.dto.OrganizationDTO; | 17 | import org.thingsboard.server.common.data.yunteng.dto.OrganizationDTO; |
@@ -70,7 +70,7 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | @@ -70,7 +70,7 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | ||
70 | // 如果device token已经存在,那么必定只有一个,不会有多个 | 70 | // 如果device token已经存在,那么必定只有一个,不会有多个 |
71 | YtDevice deviceExistWithSameToken = devices.get(0); | 71 | YtDevice deviceExistWithSameToken = devices.get(0); |
72 | if (!deviceExistWithSameToken.getId().equals(deviceDTO.getId())) { | 72 | if (!deviceExistWithSameToken.getId().equals(deviceDTO.getId())) { |
73 | - throw new DataValidationException("设备Device Token已经存在!"); | 73 | + throw new YtDataValidationException("设备Device Token已经存在!"); |
74 | } | 74 | } |
75 | } | 75 | } |
76 | // 首先update tb, 需要更新的字段有 | 76 | // 首先update tb, 需要更新的字段有 |
@@ -145,7 +145,7 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | @@ -145,7 +145,7 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | ||
145 | 145 | ||
146 | private void validateUpdate(DeviceDTO deviceDTO) { | 146 | private void validateUpdate(DeviceDTO deviceDTO) { |
147 | if (StringUtils.isAllBlank(deviceDTO.getName())) { | 147 | if (StringUtils.isAllBlank(deviceDTO.getName())) { |
148 | - throw new DataValidationException("device name must be specific"); | 148 | + throw new YtDataValidationException("device name must be specific"); |
149 | } | 149 | } |
150 | } | 150 | } |
151 | 151 | ||
@@ -190,35 +190,35 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | @@ -190,35 +190,35 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | ||
190 | 190 | ||
191 | private void validateDeviceDTO(String tenantId,DeviceDTO deviceDTO, boolean insert) { | 191 | private void validateDeviceDTO(String tenantId,DeviceDTO deviceDTO, boolean insert) { |
192 | if (StringUtils.isBlank(deviceDTO.getName())) { | 192 | if (StringUtils.isBlank(deviceDTO.getName())) { |
193 | - throw new DataValidationException("device name cannot be black"); | 193 | + throw new YtDataValidationException("device name cannot be black"); |
194 | } | 194 | } |
195 | // validate IOT DB | 195 | // validate IOT DB |
196 | if (StringUtils.isBlank(deviceDTO.getProfileId())) { | 196 | if (StringUtils.isBlank(deviceDTO.getProfileId())) { |
197 | - throw new DataValidationException("device profile cannot be black"); | 197 | + throw new YtDataValidationException("device profile cannot be black"); |
198 | } | 198 | } |
199 | if (StringUtils.isBlank(deviceDTO.getDeviceToken()) && !insert) { | 199 | if (StringUtils.isBlank(deviceDTO.getDeviceToken()) && !insert) { |
200 | - throw new DataValidationException("device token cannot be black"); | 200 | + throw new YtDataValidationException("device token cannot be black"); |
201 | } | 201 | } |
202 | // 验证设备名称是否已经存在 如果此处直接使用deviceDTO 将有误 | 202 | // 验证设备名称是否已经存在 如果此处直接使用deviceDTO 将有误 |
203 | if (insert) { | 203 | if (insert) { |
204 | DeviceDTO check = new DeviceDTO(); | 204 | DeviceDTO check = new DeviceDTO(); |
205 | check.setName(deviceDTO.getName()); | 205 | check.setName(deviceDTO.getName()); |
206 | if (findDeviceInfo(tenantId,check).size() > 0) { | 206 | if (findDeviceInfo(tenantId,check).size() > 0) { |
207 | - throw new DataValidationException(ErrorMessage.NAME_ALREADY_EXISTS.getMessage()); | 207 | + throw new YtDataValidationException(ErrorMessage.NAME_ALREADY_EXISTS.getMessage()); |
208 | } | 208 | } |
209 | } | 209 | } |
210 | // 验证数据profileId的正确性 | 210 | // 验证数据profileId的正确性 |
211 | YtDeviceProfile deviceProfile = deviceProfileMapper.selectById(deviceDTO.getProfileId()); | 211 | YtDeviceProfile deviceProfile = deviceProfileMapper.selectById(deviceDTO.getProfileId()); |
212 | Organization organization = organizationMapper.selectById(deviceDTO.getOrganizationId()); | 212 | Organization organization = organizationMapper.selectById(deviceDTO.getOrganizationId()); |
213 | if (null == deviceProfile || null == organization) { | 213 | if (null == deviceProfile || null == organization) { |
214 | - throw new DataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | 214 | + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); |
215 | // } else if (StringUtils.isEmpty(deviceProfile.getTbProfileId())) { | 215 | // } else if (StringUtils.isEmpty(deviceProfile.getTbProfileId())) { |
216 | // throw new DataValidationException("tb_device profile is nonexistent"); | 216 | // throw new DataValidationException("tb_device profile is nonexistent"); |
217 | } else if (!deviceProfile | 217 | } else if (!deviceProfile |
218 | .getTenantId() | 218 | .getTenantId() |
219 | .equals(tenantId) | 219 | .equals(tenantId) |
220 | || !organization.getTenantId().equals(tenantId)) { | 220 | || !organization.getTenantId().equals(tenantId)) { |
221 | - throw new DataValidationException(ErrorMessage.TENANT_MISMATCHING.getMessage()); | 221 | + throw new YtDataValidationException(ErrorMessage.TENANT_MISMATCHING.getMessage()); |
222 | } | 222 | } |
223 | } | 223 | } |
224 | 224 | ||
@@ -231,7 +231,7 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | @@ -231,7 +231,7 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | ||
231 | .lambda() | 231 | .lambda() |
232 | .eq(YtDevice::getDeviceToken, deviceDTO.getDeviceToken())); | 232 | .eq(YtDevice::getDeviceToken, deviceDTO.getDeviceToken())); |
233 | if (!devices.isEmpty()) { | 233 | if (!devices.isEmpty()) { |
234 | - throw new DataValidationException("设备Device Token已经存在!"); | 234 | + throw new YtDataValidationException("设备Device Token已经存在!"); |
235 | } | 235 | } |
236 | } | 236 | } |
237 | YtDevice device = new YtDevice(); | 237 | YtDevice device = new YtDevice(); |
@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | ||
4 | import org.apache.commons.lang3.StringUtils; | 4 | import org.apache.commons.lang3.StringUtils; |
5 | import org.springframework.stereotype.Service; | 5 | import org.springframework.stereotype.Service; |
6 | import org.springframework.transaction.annotation.Transactional; | 6 | import org.springframework.transaction.annotation.Transactional; |
7 | -import org.thingsboard.server.common.data.yunteng.core.exception.DataValidationException; | 7 | +import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; |
8 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; | 8 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; |
9 | import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO; | 9 | import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO; |
10 | import org.thingsboard.server.common.data.yunteng.dto.DeviceTypeDTO; | 10 | import org.thingsboard.server.common.data.yunteng.dto.DeviceTypeDTO; |
@@ -24,7 +24,7 @@ public class YtDeviceTypeServiceImpl extends AbstractBaseService<DeviceTypeMappe | @@ -24,7 +24,7 @@ public class YtDeviceTypeServiceImpl extends AbstractBaseService<DeviceTypeMappe | ||
24 | public List<DeviceTypeDTO> getDeviceTypeTree(String tenantId) { | 24 | public List<DeviceTypeDTO> getDeviceTypeTree(String tenantId) { |
25 | if (StringUtils.isEmpty(tenantId)) { | 25 | if (StringUtils.isEmpty(tenantId)) { |
26 | if (StringUtils.isEmpty(tenantId)) { | 26 | if (StringUtils.isEmpty(tenantId)) { |
27 | - throw new DataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | 27 | + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); |
28 | } | 28 | } |
29 | } | 29 | } |
30 | List<DeviceType> typeList = baseMapper.selectList( | 30 | List<DeviceType> typeList = baseMapper.selectList( |
@@ -11,7 +11,7 @@ import lombok.extern.slf4j.Slf4j; | @@ -11,7 +11,7 @@ import lombok.extern.slf4j.Slf4j; | ||
11 | import org.springframework.stereotype.Service; | 11 | import org.springframework.stereotype.Service; |
12 | import org.thingsboard.server.common.data.yunteng.config.email.EmailConfiguration; | 12 | import org.thingsboard.server.common.data.yunteng.config.email.EmailConfiguration; |
13 | import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; | 13 | import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; |
14 | -import org.thingsboard.server.common.data.yunteng.core.exception.DataValidationException; | 14 | +import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; |
15 | import org.thingsboard.server.common.data.yunteng.dto.request.EmailReqDTO; | 15 | import org.thingsboard.server.common.data.yunteng.dto.request.EmailReqDTO; |
16 | import org.thingsboard.server.common.data.yunteng.enums.EmailFormatEnum; | 16 | import org.thingsboard.server.common.data.yunteng.enums.EmailFormatEnum; |
17 | import org.thingsboard.server.common.data.yunteng.enums.ResponseCodeEnum; | 17 | import org.thingsboard.server.common.data.yunteng.enums.ResponseCodeEnum; |
@@ -47,11 +47,11 @@ public class YtMailServiceImpl implements YtMailService { | @@ -47,11 +47,11 @@ public class YtMailServiceImpl implements YtMailService { | ||
47 | //查询模板信息 | 47 | //查询模板信息 |
48 | MessageTemplate messageTemplate = messageTemplateMapper.selectById(emailReqDTO.getId()); | 48 | MessageTemplate messageTemplate = messageTemplateMapper.selectById(emailReqDTO.getId()); |
49 | if(null == messageTemplate){ | 49 | if(null == messageTemplate){ |
50 | - throw new DataValidationException("invalid parameters"); | 50 | + throw new YtDataValidationException("invalid parameters"); |
51 | } | 51 | } |
52 | MessageConfig messageConfig =messageConfigMapper.selectById(messageTemplate.getMessageConfigId()); | 52 | MessageConfig messageConfig =messageConfigMapper.selectById(messageTemplate.getMessageConfigId()); |
53 | if (messageConfig.getStatus() != FastIotConstants.StateValue.ENABLE) { | 53 | if (messageConfig.getStatus() != FastIotConstants.StateValue.ENABLE) { |
54 | - throw new DataValidationException("messageConfig is disable"); | 54 | + throw new YtDataValidationException("messageConfig is disable"); |
55 | } | 55 | } |
56 | JsonNode configNode = messageConfig.getConfig(); | 56 | JsonNode configNode = messageConfig.getConfig(); |
57 | EmailConfiguration emailConfiguration = JacksonUtil.convertValue(configNode, EmailConfiguration.class); | 57 | EmailConfiguration emailConfiguration = JacksonUtil.convertValue(configNode, EmailConfiguration.class); |
@@ -8,7 +8,7 @@ import org.apache.commons.lang3.StringUtils; | @@ -8,7 +8,7 @@ import org.apache.commons.lang3.StringUtils; | ||
8 | import org.springframework.stereotype.Service; | 8 | import org.springframework.stereotype.Service; |
9 | import org.springframework.transaction.annotation.Transactional; | 9 | import org.springframework.transaction.annotation.Transactional; |
10 | import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; | 10 | import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; |
11 | -import org.thingsboard.server.common.data.yunteng.core.exception.DataValidationException; | 11 | +import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; |
12 | import org.thingsboard.server.common.data.yunteng.dto.MessageConfigDTO; | 12 | import org.thingsboard.server.common.data.yunteng.dto.MessageConfigDTO; |
13 | import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils; | 13 | import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils; |
14 | import org.thingsboard.server.common.data.yunteng.utils.tools.PageData; | 14 | import org.thingsboard.server.common.data.yunteng.utils.tools.PageData; |
@@ -77,7 +77,7 @@ public class YtMessageConfigServiceImpl | @@ -77,7 +77,7 @@ public class YtMessageConfigServiceImpl | ||
77 | MessageConfig config = baseMapper.selectById(configDTO.getId()); | 77 | MessageConfig config = baseMapper.selectById(configDTO.getId()); |
78 | if (configDTO.getStatus() == FastIotConstants.StateValue.ENABLE) { | 78 | if (configDTO.getStatus() == FastIotConstants.StateValue.ENABLE) { |
79 | if (StringUtils.isEmpty(config.getId())) { | 79 | if (StringUtils.isEmpty(config.getId())) { |
80 | - throw new DataValidationException("invalid parameters"); | 80 | + throw new YtDataValidationException("invalid parameters"); |
81 | } | 81 | } |
82 | checkMessageConfig(configDTO, tenantId); | 82 | checkMessageConfig(configDTO, tenantId); |
83 | } | 83 | } |
@@ -145,7 +145,7 @@ public class YtMessageConfigServiceImpl | @@ -145,7 +145,7 @@ public class YtMessageConfigServiceImpl | ||
145 | getEnableConfigByMessageAndPlatform( | 145 | getEnableConfigByMessageAndPlatform( |
146 | configDTO.getMessageType(), configDTO.getPlatformType(), tenantId); | 146 | configDTO.getMessageType(), configDTO.getPlatformType(), tenantId); |
147 | if (null != enableConfig && !enableConfig.getId().equalsIgnoreCase(configDTO.getId())) { | 147 | if (null != enableConfig && !enableConfig.getId().equalsIgnoreCase(configDTO.getId())) { |
148 | - throw new DataValidationException("enabled config is existed"); | 148 | + throw new YtDataValidationException("enabled config is existed"); |
149 | } | 149 | } |
150 | } | 150 | } |
151 | } | 151 | } |
@@ -6,7 +6,7 @@ import org.apache.commons.lang3.StringUtils; | @@ -6,7 +6,7 @@ import org.apache.commons.lang3.StringUtils; | ||
6 | import org.springframework.stereotype.Service; | 6 | import org.springframework.stereotype.Service; |
7 | import org.springframework.transaction.annotation.Transactional; | 7 | import org.springframework.transaction.annotation.Transactional; |
8 | import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; | 8 | import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; |
9 | -import org.thingsboard.server.common.data.yunteng.core.exception.DataValidationException; | 9 | +import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; |
10 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; | 10 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; |
11 | import org.thingsboard.server.common.data.yunteng.dto.MessageTemplateDTO; | 11 | import org.thingsboard.server.common.data.yunteng.dto.MessageTemplateDTO; |
12 | import org.thingsboard.server.common.data.yunteng.utils.tools.PageData; | 12 | import org.thingsboard.server.common.data.yunteng.utils.tools.PageData; |
@@ -61,11 +61,11 @@ public class YtMessageTemplateServiceImpl | @@ -61,11 +61,11 @@ public class YtMessageTemplateServiceImpl | ||
61 | queryTemplate.setMessageType(templateDTO.getMessageType()); | 61 | queryTemplate.setMessageType(templateDTO.getMessageType()); |
62 | // queryTemplate.setTemplateCode(tenantCode); | 62 | // queryTemplate.setTemplateCode(tenantCode); |
63 | if(StringUtils.isEmpty(templateDTO.getTemplatePurpose()) || StringUtils.isEmpty(templateDTO.getMessageType())){ | 63 | if(StringUtils.isEmpty(templateDTO.getTemplatePurpose()) || StringUtils.isEmpty(templateDTO.getMessageType())){ |
64 | - throw new DataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | 64 | + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); |
65 | } | 65 | } |
66 | List<MessageTemplateDTO> messageTemplateDTOList = baseMapper.findMessageTemplate(queryTemplate); | 66 | List<MessageTemplateDTO> messageTemplateDTOList = baseMapper.findMessageTemplate(queryTemplate); |
67 | if(null!=messageTemplateDTOList && messageTemplateDTOList.size()>0){ | 67 | if(null!=messageTemplateDTOList && messageTemplateDTOList.size()>0){ |
68 | - throw new DataValidationException(ErrorMessage.NOT_SET_PASSWORD_TEMPLATE.getMessage()); | 68 | + throw new YtDataValidationException(ErrorMessage.NOT_SET_PASSWORD_TEMPLATE.getMessage()); |
69 | } | 69 | } |
70 | MessageTemplate messageTemplate = baseMapper.selectById(templateDTO.getId()); | 70 | MessageTemplate messageTemplate = baseMapper.selectById(templateDTO.getId()); |
71 | templateDTO.copyToEntity(messageTemplate); | 71 | templateDTO.copyToEntity(messageTemplate); |
@@ -8,7 +8,7 @@ import org.apache.commons.lang3.StringUtils; | @@ -8,7 +8,7 @@ import org.apache.commons.lang3.StringUtils; | ||
8 | import org.springframework.stereotype.Service; | 8 | import org.springframework.stereotype.Service; |
9 | import org.springframework.transaction.annotation.Transactional; | 9 | import org.springframework.transaction.annotation.Transactional; |
10 | import org.springframework.util.Assert; | 10 | import org.springframework.util.Assert; |
11 | -import org.thingsboard.server.common.data.yunteng.core.exception.DataValidationException; | 11 | +import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; |
12 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; | 12 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; |
13 | import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO; | 13 | import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO; |
14 | import org.thingsboard.server.common.data.yunteng.dto.OrganizationDTO; | 14 | import org.thingsboard.server.common.data.yunteng.dto.OrganizationDTO; |
@@ -41,12 +41,12 @@ public class YtOrganizationServiceImpl extends AbstractBaseService<OrganizationM | @@ -41,12 +41,12 @@ public class YtOrganizationServiceImpl extends AbstractBaseService<OrganizationM | ||
41 | if (StringUtils.isNotBlank(organizationDTO.getParentId())) { | 41 | if (StringUtils.isNotBlank(organizationDTO.getParentId())) { |
42 | Organization organization = baseMapper.selectById(organizationDTO.getParentId()); | 42 | Organization organization = baseMapper.selectById(organizationDTO.getParentId()); |
43 | if (organization == null) { | 43 | if (organization == null) { |
44 | - throw new DataValidationException("parent organization not exist!"); | 44 | + throw new YtDataValidationException("parent organization not exist!"); |
45 | } else { | 45 | } else { |
46 | if (!organization | 46 | if (!organization |
47 | .getTenantId() | 47 | .getTenantId() |
48 | .equals(null)) {//TODO getCurrentUser().getTenantId() | 48 | .equals(null)) {//TODO getCurrentUser().getTenantId() |
49 | - throw new DataValidationException("parent organization not exist."); | 49 | + throw new YtDataValidationException("parent organization not exist."); |
50 | } | 50 | } |
51 | } | 51 | } |
52 | } | 52 | } |
@@ -62,7 +62,7 @@ public class YtOrganizationServiceImpl extends AbstractBaseService<OrganizationM | @@ -62,7 +62,7 @@ public class YtOrganizationServiceImpl extends AbstractBaseService<OrganizationM | ||
62 | @Transactional | 62 | @Transactional |
63 | public boolean deleteOrganizations(DeleteDTO deleteDTO,String tenantId) { | 63 | public boolean deleteOrganizations(DeleteDTO deleteDTO,String tenantId) { |
64 | if(null == deleteDTO || deleteDTO.getIds().isEmpty()){ | 64 | if(null == deleteDTO || deleteDTO.getIds().isEmpty()){ |
65 | - throw new DataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | 65 | + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); |
66 | } | 66 | } |
67 | String[] ids = deleteDTO.getIds().toArray(new String[deleteDTO.getIds().size()]); | 67 | String[] ids = deleteDTO.getIds().toArray(new String[deleteDTO.getIds().size()]); |
68 | Set<String> idToDelete = | 68 | Set<String> idToDelete = |
@@ -73,7 +73,7 @@ public class YtOrganizationServiceImpl extends AbstractBaseService<OrganizationM | @@ -73,7 +73,7 @@ public class YtOrganizationServiceImpl extends AbstractBaseService<OrganizationM | ||
73 | .map(OrganizationDTO::getId) | 73 | .map(OrganizationDTO::getId) |
74 | .collect(Collectors.toSet()); | 74 | .collect(Collectors.toSet()); |
75 | if (idToDelete.size() != ids.length) { | 75 | if (idToDelete.size() != ids.length) { |
76 | - throw new DataValidationException("待删除数据存在子项,不能删除!"); | 76 | + throw new YtDataValidationException("待删除数据存在子项,不能删除!"); |
77 | } | 77 | } |
78 | List<UserOrganizationMapping> userOrganizationMappingList = | 78 | List<UserOrganizationMapping> userOrganizationMappingList = |
79 | userOrganizationMappingMapper.selectList( | 79 | userOrganizationMappingMapper.selectList( |
@@ -81,7 +81,7 @@ public class YtOrganizationServiceImpl extends AbstractBaseService<OrganizationM | @@ -81,7 +81,7 @@ public class YtOrganizationServiceImpl extends AbstractBaseService<OrganizationM | ||
81 | .lambda() | 81 | .lambda() |
82 | .in(UserOrganizationMapping::getOrganizationId, idToDelete)); | 82 | .in(UserOrganizationMapping::getOrganizationId, idToDelete)); |
83 | if (!userOrganizationMappingList.isEmpty()) { | 83 | if (!userOrganizationMappingList.isEmpty()) { |
84 | - throw new DataValidationException("待删除数据存在关联用户,不能删除!"); | 84 | + throw new YtDataValidationException("待删除数据存在关联用户,不能删除!"); |
85 | } | 85 | } |
86 | // 查询是否有设备使用该组织 | 86 | // 查询是否有设备使用该组织 |
87 | // List<Device> deviceList = deviceMapper.selectList( | 87 | // List<Device> deviceList = deviceMapper.selectList( |
@@ -241,7 +241,7 @@ public class YtOrganizationServiceImpl extends AbstractBaseService<OrganizationM | @@ -241,7 +241,7 @@ public class YtOrganizationServiceImpl extends AbstractBaseService<OrganizationM | ||
241 | for (String userId : userIds) { | 241 | for (String userId : userIds) { |
242 | User user = userMapper.selectById(userId); | 242 | User user = userMapper.selectById(userId); |
243 | if (user == null) { | 243 | if (user == null) { |
244 | - throw new DataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | 244 | + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); |
245 | } | 245 | } |
246 | userOrganizationMappingMapper.delete( | 246 | userOrganizationMappingMapper.delete( |
247 | new QueryWrapper<UserOrganizationMapping>() | 247 | new QueryWrapper<UserOrganizationMapping>() |
@@ -15,7 +15,7 @@ import org.thingsboard.server.common.data.yunteng.config.sms.YtDefaultSmsSenderF | @@ -15,7 +15,7 @@ import org.thingsboard.server.common.data.yunteng.config.sms.YtDefaultSmsSenderF | ||
15 | import org.thingsboard.server.common.data.yunteng.config.sms.SmsProviderConfiguration; | 15 | import org.thingsboard.server.common.data.yunteng.config.sms.SmsProviderConfiguration; |
16 | import org.thingsboard.server.common.data.yunteng.config.sms.SmsSender; | 16 | import org.thingsboard.server.common.data.yunteng.config.sms.SmsSender; |
17 | import org.thingsboard.server.common.data.yunteng.core.cache.CacheUtils; | 17 | import org.thingsboard.server.common.data.yunteng.core.cache.CacheUtils; |
18 | -import org.thingsboard.server.common.data.yunteng.core.exception.DataValidationException; | 18 | +import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; |
19 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; | 19 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; |
20 | import org.thingsboard.server.common.data.yunteng.dto.request.CodeTTL; | 20 | import org.thingsboard.server.common.data.yunteng.dto.request.CodeTTL; |
21 | import org.thingsboard.server.common.data.yunteng.dto.request.SmsReqDTO; | 21 | import org.thingsboard.server.common.data.yunteng.dto.request.SmsReqDTO; |
@@ -63,7 +63,7 @@ public class YtSmsServiceImpl implements YtSmsService { | @@ -63,7 +63,7 @@ public class YtSmsServiceImpl implements YtSmsService { | ||
63 | LinkedHashMap<String, String> templateParam = smsReqDTO.getParams(); | 63 | LinkedHashMap<String, String> templateParam = smsReqDTO.getParams(); |
64 | String templateId = smsReqDTO.getId(); | 64 | String templateId = smsReqDTO.getId(); |
65 | if (StringUtils.isEmpty(phoneNumbers) || StringUtils.isEmpty(templateId)) { | 65 | if (StringUtils.isEmpty(phoneNumbers) || StringUtils.isEmpty(templateId)) { |
66 | - throw new DataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | 66 | + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); |
67 | } | 67 | } |
68 | MessageTemplate messageTemplate = messageTemplateMapper.selectById(templateId); | 68 | MessageTemplate messageTemplate = messageTemplateMapper.selectById(templateId); |
69 | if (null != messageTemplate) { | 69 | if (null != messageTemplate) { |
@@ -113,7 +113,7 @@ public class YtSmsServiceImpl implements YtSmsService { | @@ -113,7 +113,7 @@ public class YtSmsServiceImpl implements YtSmsService { | ||
113 | if (userMapper | 113 | if (userMapper |
114 | .selectList(new QueryWrapper<User>().lambda().eq(User::getPhoneNumber, phoneNumber)) | 114 | .selectList(new QueryWrapper<User>().lambda().eq(User::getPhoneNumber, phoneNumber)) |
115 | .isEmpty()) { | 115 | .isEmpty()) { |
116 | - throw new DataValidationException("电话号码未在系统注册,请联系你的管理员"); | 116 | + throw new YtDataValidationException("电话号码未在系统注册,请联系你的管理员"); |
117 | } | 117 | } |
118 | // 获取是否有验证码存在,防止发送数量过多 | 118 | // 获取是否有验证码存在,防止发送数量过多 |
119 | String key = | 119 | String key = |
@@ -142,7 +142,7 @@ public class YtSmsServiceImpl implements YtSmsService { | @@ -142,7 +142,7 @@ public class YtSmsServiceImpl implements YtSmsService { | ||
142 | .eq(MessageTemplate::getTemplatePurpose, MsgTemplatePurposeEnum.FOR_LOGIN.name()) | 142 | .eq(MessageTemplate::getTemplatePurpose, MsgTemplatePurposeEnum.FOR_LOGIN.name()) |
143 | .eq(MessageTemplate::getMessageType, MessageTypeEnum.PHONE_MESSAGE.name())); | 143 | .eq(MessageTemplate::getMessageType, MessageTypeEnum.PHONE_MESSAGE.name())); |
144 | if (messageTemplates.isEmpty()) { | 144 | if (messageTemplates.isEmpty()) { |
145 | - throw new DataValidationException("no sms provider config"); | 145 | + throw new YtDataValidationException("no sms provider config"); |
146 | } | 146 | } |
147 | String code = RandomStringUtils.randomNumeric(6); | 147 | String code = RandomStringUtils.randomNumeric(6); |
148 | LinkedHashMap<String, String> params = new LinkedHashMap<>(); | 148 | LinkedHashMap<String, String> params = new LinkedHashMap<>(); |
@@ -3,13 +3,12 @@ package org.thingsboard.server.dao.yunteng.impl; | @@ -3,13 +3,12 @@ package org.thingsboard.server.dao.yunteng.impl; | ||
3 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 3 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
4 | import com.baomidou.mybatisplus.core.metadata.IPage; | 4 | import com.baomidou.mybatisplus.core.metadata.IPage; |
5 | import lombok.RequiredArgsConstructor; | 5 | import lombok.RequiredArgsConstructor; |
6 | -import org.apache.commons.lang3.RandomStringUtils; | ||
7 | import org.apache.commons.lang3.StringUtils; | 6 | import org.apache.commons.lang3.StringUtils; |
8 | import org.springframework.beans.BeanUtils; | 7 | import org.springframework.beans.BeanUtils; |
9 | import org.springframework.stereotype.Service; | 8 | import org.springframework.stereotype.Service; |
10 | import org.springframework.transaction.annotation.Transactional; | 9 | import org.springframework.transaction.annotation.Transactional; |
11 | import org.thingsboard.server.common.data.id.EntityId; | 10 | import org.thingsboard.server.common.data.id.EntityId; |
12 | -import org.thingsboard.server.common.data.yunteng.core.exception.DataValidationException; | 11 | +import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; |
13 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; | 12 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; |
14 | import org.thingsboard.server.common.data.yunteng.dto.TenantDTO; | 13 | import org.thingsboard.server.common.data.yunteng.dto.TenantDTO; |
15 | import org.thingsboard.server.common.data.yunteng.dto.request.TenantReqDTO; | 14 | import org.thingsboard.server.common.data.yunteng.dto.request.TenantReqDTO; |
@@ -42,10 +41,8 @@ public class YtTenantServiceImpl extends AbstractBaseService<TenantMapper, Tenan | @@ -42,10 +41,8 @@ public class YtTenantServiceImpl extends AbstractBaseService<TenantMapper, Tenan | ||
42 | public TenantDTO createNewTenant(TenantReqDTO tenantReqDTO) { | 41 | public TenantDTO createNewTenant(TenantReqDTO tenantReqDTO) { |
43 | TenantDTO tenantDTO = new TenantDTO(); | 42 | TenantDTO tenantDTO = new TenantDTO(); |
44 | BeanUtils.copyProperties(tenantReqDTO, tenantDTO); | 43 | BeanUtils.copyProperties(tenantReqDTO, tenantDTO); |
45 | - processTenantId(tenantDTO); | ||
46 | Tenant tenant = tenantDTO.getEntity(Tenant.class); | 44 | Tenant tenant = tenantDTO.getEntity(Tenant.class); |
47 | baseMapper.insert(tenant); | 45 | baseMapper.insert(tenant); |
48 | - // 调用TB API | ||
49 | tenant.copyToDTO(tenantDTO); | 46 | tenant.copyToDTO(tenantDTO); |
50 | saveTenantMapping(tenantDTO.getTenantId(), tenantReqDTO.getRoleIds()); | 47 | saveTenantMapping(tenantDTO.getTenantId(), tenantReqDTO.getRoleIds()); |
51 | return tenantDTO; | 48 | return tenantDTO; |
@@ -75,31 +72,12 @@ public class YtTenantServiceImpl extends AbstractBaseService<TenantMapper, Tenan | @@ -75,31 +72,12 @@ public class YtTenantServiceImpl extends AbstractBaseService<TenantMapper, Tenan | ||
75 | } | 72 | } |
76 | }); | 73 | }); |
77 | } | 74 | } |
78 | - | ||
79 | - private void processTenantId(TenantDTO tenantDTO) { | ||
80 | - if (tenantDTO.getTenantId() != null) { | ||
81 | - if (tenantDTO.getTenantId().length() > 30) { | ||
82 | - throw new DataValidationException("tenant code too long"); | ||
83 | - } | ||
84 | - int count = | ||
85 | - baseMapper.selectCount( | ||
86 | - new QueryWrapper<Tenant>() | ||
87 | - .lambda() | ||
88 | - .eq(Tenant::getTenantId, tenantDTO.getTenantId())); | ||
89 | - if (count > 0) { | ||
90 | - throw new DataValidationException("tenant code already exist"); | ||
91 | - } | ||
92 | - } else { | ||
93 | - tenantDTO.setTenantId(RandomStringUtils.randomAlphabetic(20)); | ||
94 | - } | ||
95 | - } | ||
96 | - | ||
97 | @Override | 75 | @Override |
98 | @Transactional | 76 | @Transactional |
99 | public TenantDTO updateTenant(TenantDTO tenantDTO) { | 77 | public TenantDTO updateTenant(TenantDTO tenantDTO) { |
100 | Tenant tenant = baseMapper.selectById(tenantDTO.getId()); | 78 | Tenant tenant = baseMapper.selectById(tenantDTO.getId()); |
101 | if (tenant == null) { | 79 | if (tenant == null) { |
102 | - throw new DataValidationException("tenant does not exist"); | 80 | + throw new YtDataValidationException("tenant does not exist"); |
103 | } | 81 | } |
104 | String existTenantId = tenant.getTenantId(); | 82 | String existTenantId = tenant.getTenantId(); |
105 | tenantDTO.copyToEntity(tenant); | 83 | tenantDTO.copyToEntity(tenant); |
@@ -187,7 +165,7 @@ public class YtTenantServiceImpl extends AbstractBaseService<TenantMapper, Tenan | @@ -187,7 +165,7 @@ public class YtTenantServiceImpl extends AbstractBaseService<TenantMapper, Tenan | ||
187 | @Override | 165 | @Override |
188 | public List<String> getTenantRolesByTenantId(String tenantId) { | 166 | public List<String> getTenantRolesByTenantId(String tenantId) { |
189 | if(StringUtils.isEmpty(tenantId)){ | 167 | if(StringUtils.isEmpty(tenantId)){ |
190 | - throw new DataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | 168 | + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); |
191 | } | 169 | } |
192 | List<String> roles = new ArrayList<>(); | 170 | List<String> roles = new ArrayList<>(); |
193 | List<TenantRole> tenantRoleList = tenantRoleMapper | 171 | List<TenantRole> tenantRoleList = tenantRoleMapper |
@@ -17,8 +17,7 @@ import org.springframework.transaction.annotation.Transactional; | @@ -17,8 +17,7 @@ import org.springframework.transaction.annotation.Transactional; | ||
17 | import org.springframework.util.Assert; | 17 | import org.springframework.util.Assert; |
18 | import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; | 18 | import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; |
19 | import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | 19 | import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; |
20 | -import org.thingsboard.server.common.data.yunteng.core.exception.DataValidationException; | ||
21 | -import org.thingsboard.server.common.data.yunteng.core.exception.FastIotException; | 20 | +import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; |
22 | import org.thingsboard.server.common.data.yunteng.core.exception.NoneTenantAssetException; | 21 | import org.thingsboard.server.common.data.yunteng.core.exception.NoneTenantAssetException; |
23 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; | 22 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; |
24 | import org.thingsboard.server.common.data.yunteng.dto.*; | 23 | import org.thingsboard.server.common.data.yunteng.dto.*; |
@@ -78,15 +77,15 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | @@ -78,15 +77,15 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | ||
78 | public UserDTO saveAccount(UserDTO userDTO, boolean sendEmail, boolean sendMsg,boolean isPtSysadmin,String tenantId) { | 77 | public UserDTO saveAccount(UserDTO userDTO, boolean sendEmail, boolean sendMsg,boolean isPtSysadmin,String tenantId) { |
79 | boolean isAdminOperate = isPtSysadmin; | 78 | boolean isAdminOperate = isPtSysadmin; |
80 | if (StringUtils.isAllBlank(userDTO.getUsername())) { | 79 | if (StringUtils.isAllBlank(userDTO.getUsername())) { |
81 | - throw new DataValidationException("username is required"); | 80 | + throw new YtDataValidationException("username is required"); |
82 | } | 81 | } |
83 | validatePhoneNumberAndEmail(userDTO); | 82 | validatePhoneNumberAndEmail(userDTO); |
84 | if (sendMsg && StringUtils.isAllBlank(userDTO.getPhoneNumber())) { | 83 | if (sendMsg && StringUtils.isAllBlank(userDTO.getPhoneNumber())) { |
85 | - throw new DataValidationException( | 84 | + throw new YtDataValidationException( |
86 | "you must specify user phone number if you want send activate email to this user"); | 85 | "you must specify user phone number if you want send activate email to this user"); |
87 | } | 86 | } |
88 | if (sendEmail && StringUtils.isAllBlank(userDTO.getEmail())) { | 87 | if (sendEmail && StringUtils.isAllBlank(userDTO.getEmail())) { |
89 | - throw new DataValidationException( | 88 | + throw new YtDataValidationException( |
90 | "you must specify user email if you want send activate email to this user"); | 89 | "you must specify user email if you want send activate email to this user"); |
91 | } | 90 | } |
92 | User user = new User(); | 91 | User user = new User(); |
@@ -106,7 +105,7 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | @@ -106,7 +105,7 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | ||
106 | .lambda() | 105 | .lambda() |
107 | .eq(Tenant::getTenantId, userDTO.getTenantId())); | 106 | .eq(Tenant::getTenantId, userDTO.getTenantId())); |
108 | if (tenantExist == 0) { | 107 | if (tenantExist == 0) { |
109 | - throw new DataValidationException("tenant must exist"); | 108 | + throw new YtDataValidationException("tenant must exist"); |
110 | } | 109 | } |
111 | } else { | 110 | } else { |
112 | // 添加的平台系统其他用户 | 111 | // 添加的平台系统其他用户 |
@@ -132,7 +131,7 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | @@ -132,7 +131,7 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | ||
132 | > 0; | 131 | > 0; |
133 | } | 132 | } |
134 | if (userExist) { | 133 | if (userExist) { |
135 | - throw new DataValidationException(ErrorMessage.NAME_ALREADY_EXISTS.getMessage()); | 134 | + throw new YtDataValidationException(ErrorMessage.NAME_ALREADY_EXISTS.getMessage()); |
136 | } else { | 135 | } else { |
137 | baseMapper.insert(user); | 136 | baseMapper.insert(user); |
138 | for (String roleId : userDTO.getRoleIds()) { | 137 | for (String roleId : userDTO.getRoleIds()) { |
@@ -152,17 +151,17 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | @@ -152,17 +151,17 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | ||
152 | private void validatePhoneNumberAndEmail(UserDTO userDTO) { | 151 | private void validatePhoneNumberAndEmail(UserDTO userDTO) { |
153 | if (StringUtils.isNotBlank(userDTO.getPhoneNumber())) { | 152 | if (StringUtils.isNotBlank(userDTO.getPhoneNumber())) { |
154 | if (!CHINA_MOBILE_PATTERN.matcher(userDTO.getPhoneNumber()).matches()) { | 153 | if (!CHINA_MOBILE_PATTERN.matcher(userDTO.getPhoneNumber()).matches()) { |
155 | - throw new DataValidationException(ErrorMessage.PROVIDE_CORRECT_PHONE_NUMBER.getMessage()); | 154 | + throw new YtDataValidationException(ErrorMessage.PROVIDE_CORRECT_PHONE_NUMBER.getMessage()); |
156 | } | 155 | } |
157 | } | 156 | } |
158 | if (StringUtils.isNotBlank(userDTO.getEmail())) { | 157 | if (StringUtils.isNotBlank(userDTO.getEmail())) { |
159 | if (!EMAIL_PATTERN.matcher(userDTO.getEmail()).matches()) { | 158 | if (!EMAIL_PATTERN.matcher(userDTO.getEmail()).matches()) { |
160 | - throw new DataValidationException(ErrorMessage.PROVIDE_CORRECT_EMAIL.getMessage()); | 159 | + throw new YtDataValidationException(ErrorMessage.PROVIDE_CORRECT_EMAIL.getMessage()); |
161 | } | 160 | } |
162 | } | 161 | } |
163 | if (StringUtils.isAllBlank(userDTO.getEmail()) | 162 | if (StringUtils.isAllBlank(userDTO.getEmail()) |
164 | && StringUtils.isAllBlank(userDTO.getPhoneNumber())) { | 163 | && StringUtils.isAllBlank(userDTO.getPhoneNumber())) { |
165 | - throw new DataValidationException(ErrorMessage.PHONE_NUMBER_OR_EMAIL_REQUIRED.getMessage()); | 164 | + throw new YtDataValidationException(ErrorMessage.PHONE_NUMBER_OR_EMAIL_REQUIRED.getMessage()); |
166 | } | 165 | } |
167 | } | 166 | } |
168 | 167 | ||
@@ -175,7 +174,7 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | @@ -175,7 +174,7 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | ||
175 | "you don't have permission to get activation link for this user"); | 174 | "you don't have permission to get activation link for this user"); |
176 | } | 175 | } |
177 | if (StringUtils.isAllBlank(user.getActivateToken())) { | 176 | if (StringUtils.isAllBlank(user.getActivateToken())) { |
178 | - throw new DataValidationException("user already activated"); | 177 | + throw new YtDataValidationException("user already activated"); |
179 | } | 178 | } |
180 | try { | 179 | try { |
181 | List<AdminSetting> generalSetting = | 180 | List<AdminSetting> generalSetting = |
@@ -243,7 +242,7 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | @@ -243,7 +242,7 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | ||
243 | throw new NoneTenantAssetException("this user not belong to current tenant"); | 242 | throw new NoneTenantAssetException("this user not belong to current tenant"); |
244 | } | 243 | } |
245 | if (!user.getUsername().equals(userDTO.getUsername())) { | 244 | if (!user.getUsername().equals(userDTO.getUsername())) { |
246 | - throw new DataValidationException("username is immutable"); | 245 | + throw new YtDataValidationException("username is immutable"); |
247 | } | 246 | } |
248 | validatePhoneNumberAndEmail(userDTO); | 247 | validatePhoneNumberAndEmail(userDTO); |
249 | user.setRealName(userDTO.getRealName()); | 248 | user.setRealName(userDTO.getRealName()); |
@@ -271,7 +270,7 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | @@ -271,7 +270,7 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | ||
271 | if (isPtSysadmin) { | 270 | if (isPtSysadmin) { |
272 | String roleType = (String) queryMap.get("roleType"); | 271 | String roleType = (String) queryMap.get("roleType"); |
273 | if (StringUtils.isEmpty(roleType)) { | 272 | if (StringUtils.isEmpty(roleType)) { |
274 | - roleType = RoleEnum.ROLE_PLATFORM_ADMIN.name(); | 273 | + roleType = RoleEnum.PLATFORM_ADMIN.name(); |
275 | } | 274 | } |
276 | userPage = | 275 | userPage = |
277 | baseMapper.getAdminUserPage( | 276 | baseMapper.getAdminUserPage( |
@@ -358,7 +357,7 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | @@ -358,7 +357,7 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | ||
358 | baseMapper.selectList( | 357 | baseMapper.selectList( |
359 | new QueryWrapper<User>().lambda().eq(User::getUsername, userDTO.getUsername())); | 358 | new QueryWrapper<User>().lambda().eq(User::getUsername, userDTO.getUsername())); |
360 | if (!users.isEmpty()) { | 359 | if (!users.isEmpty()) { |
361 | - throw new DataValidationException("用户已存在"); | 360 | + throw new YtDataValidationException("用户已存在"); |
362 | } | 361 | } |
363 | baseMapper.insert(user); | 362 | baseMapper.insert(user); |
364 | List<TenantRole> tenantRoleList = | 363 | List<TenantRole> tenantRoleList = |
@@ -368,7 +367,7 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | @@ -368,7 +367,7 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | ||
368 | .eq(TenantRole::getTenantId, userDTO.getTenantId())); | 367 | .eq(TenantRole::getTenantId, userDTO.getTenantId())); |
369 | // 保存用户与角色的映射信息 | 368 | // 保存用户与角色的映射信息 |
370 | if (null == tenantRoleList || tenantRoleList.size() == 0) { | 369 | if (null == tenantRoleList || tenantRoleList.size() == 0) { |
371 | - throw new FastIotException(ErrorMessage.INVALID_PARAMETER); | 370 | + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); |
372 | } | 371 | } |
373 | for (TenantRole tenantRole : tenantRoleList) { | 372 | for (TenantRole tenantRole : tenantRoleList) { |
374 | roleMapper.saveUserRoleMapping(user.getId(), tenantRole.getRoleId()); | 373 | roleMapper.saveUserRoleMapping(user.getId(), tenantRole.getRoleId()); |
@@ -405,7 +404,7 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | @@ -405,7 +404,7 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | ||
405 | // 通过用户ID查询用户信息 | 404 | // 通过用户ID查询用户信息 |
406 | User user = baseMapper.selectById(msg.getUserId()); | 405 | User user = baseMapper.selectById(msg.getUserId()); |
407 | if (null == user) { | 406 | if (null == user) { |
408 | - throw new DataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | 407 | + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); |
409 | } | 408 | } |
410 | 409 | ||
411 | // 通过模板用途和状态查询模板信息 | 410 | // 通过模板用途和状态查询模板信息 |
@@ -417,7 +416,7 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | @@ -417,7 +416,7 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | ||
417 | List<MessageTemplateDTO> templateDTOList = | 416 | List<MessageTemplateDTO> templateDTOList = |
418 | messageTemplateService.findMessageTemplate(messageTemplateDTO); | 417 | messageTemplateService.findMessageTemplate(messageTemplateDTO); |
419 | if (null == templateDTOList || templateDTOList.size() < 1) { | 418 | if (null == templateDTOList || templateDTOList.size() < 1) { |
420 | - throw new DataValidationException(ErrorMessage.EXIST_ENABLE_TEMPLATE.getMessage()); | 419 | + throw new YtDataValidationException(ErrorMessage.EXIST_ENABLE_TEMPLATE.getMessage()); |
421 | } | 420 | } |
422 | if (messageType.equalsIgnoreCase(MessageTypeEnum.PHONE_MESSAGE.name())) { | 421 | if (messageType.equalsIgnoreCase(MessageTypeEnum.PHONE_MESSAGE.name())) { |
423 | SmsReqDTO smsReqDTO = new SmsReqDTO(); | 422 | SmsReqDTO smsReqDTO = new SmsReqDTO(); |
@@ -454,7 +453,7 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | @@ -454,7 +453,7 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | ||
454 | public String[] getUserRoleOrOrganization(RoleOrOrganizationReqDTO roleOrGroupReqDTO) { | 453 | public String[] getUserRoleOrOrganization(RoleOrOrganizationReqDTO roleOrGroupReqDTO) { |
455 | String userId = roleOrGroupReqDTO.getUserId(); | 454 | String userId = roleOrGroupReqDTO.getUserId(); |
456 | if (StringUtils.isEmpty(userId)) { | 455 | if (StringUtils.isEmpty(userId)) { |
457 | - throw new DataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | 456 | + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); |
458 | } | 457 | } |
459 | if (roleOrGroupReqDTO.isQueryRole()) { | 458 | if (roleOrGroupReqDTO.isQueryRole()) { |
460 | List<String> roleIds = | 459 | List<String> roleIds = |
@@ -487,13 +486,13 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | @@ -487,13 +486,13 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | ||
487 | if (null == user | 486 | if (null == user |
488 | || StringUtils.isEmpty(accountReqDTO.getPassword()) | 487 | || StringUtils.isEmpty(accountReqDTO.getPassword()) |
489 | || StringUtils.isEmpty(accountReqDTO.getResetPassword())) { | 488 | || StringUtils.isEmpty(accountReqDTO.getResetPassword())) { |
490 | - throw new DataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | 489 | + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); |
491 | } | 490 | } |
492 | if (!StringUtils.isEmpty(user.getPassword())) { | 491 | if (!StringUtils.isEmpty(user.getPassword())) { |
493 | // 判断用户密码是否正确 | 492 | // 判断用户密码是否正确 |
494 | boolean isMatch = passwordEncoder.matches(accountReqDTO.getPassword(), user.getPassword()); | 493 | boolean isMatch = passwordEncoder.matches(accountReqDTO.getPassword(), user.getPassword()); |
495 | if (!isMatch) { | 494 | if (!isMatch) { |
496 | - throw new DataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | 495 | + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); |
497 | } | 496 | } |
498 | } | 497 | } |
499 | // 修改密码 | 498 | // 修改密码 |
@@ -505,7 +504,7 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | @@ -505,7 +504,7 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> imp | ||
505 | @Override | 504 | @Override |
506 | public UserDTO accountExist(String userName,String tenantId) { | 505 | public UserDTO accountExist(String userName,String tenantId) { |
507 | if (StringUtils.isEmpty(userName)) { | 506 | if (StringUtils.isEmpty(userName)) { |
508 | - throw new DataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | 507 | + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); |
509 | } | 508 | } |
510 | UserDTO userDTO = new UserDTO(); | 509 | UserDTO userDTO = new UserDTO(); |
511 | userDTO.setTenantId(tenantId); | 510 | userDTO.setTenantId(tenantId); |