Commit 2dfe716f7269c7635743034a6fc0656986396366
Merge branch '20230914' into 'master_dev'
fix(DEFECT-1523): 非业务异常日志问题修复 See merge request yunteng/thingskit!232
Showing
4 changed files
with
21 additions
and
16 deletions
... | ... | @@ -36,18 +36,22 @@ public class ThingsKitExceptionHandler { |
36 | 36 | private final AuditLogService auditLogService; |
37 | 37 | private final ThingsboardErrorResponseHandler errorResponseHandler; |
38 | 38 | |
39 | - @ExceptionHandler(MethodArgumentNotValidException.class) | |
39 | + @ExceptionHandler(RuntimeException.class) | |
40 | 40 | public void handleMethodArgumentNotValidException( |
41 | - MethodArgumentNotValidException ex, | |
41 | + RuntimeException ex, | |
42 | 42 | HttpServletRequest request, |
43 | 43 | HttpServletResponse response) { |
44 | - produceLog(request, ex); | |
45 | - errorResponseHandler.handle( | |
46 | - new ThingsKitException( | |
47 | - ErrorMessage.INVALID_PARAMETER.setMessage( | |
48 | - Objects.requireNonNull(ex.getBindingResult().getFieldError()).getDefaultMessage()), | |
49 | - HttpStatus.BAD_REQUEST), | |
50 | - response); | |
44 | + if(ex instanceof ThingsKitException){ | |
45 | + errorResponseHandler.handle( | |
46 | + new ThingsKitException( | |
47 | + ErrorMessage.INVALID_PARAMETER.setMessage( | |
48 | + ex.getMessage()), | |
49 | + HttpStatus.BAD_REQUEST), | |
50 | + response); | |
51 | + }else{ | |
52 | + produceLog(request, ex); | |
53 | + errorResponseHandler.handle(ex,response); | |
54 | + } | |
51 | 55 | } |
52 | 56 | |
53 | 57 | protected SecurityUser getCurrentUser() throws ThingsboardException { | ... | ... |
... | ... | @@ -94,7 +94,7 @@ public class TkDeviceServiceImpl extends AbstractBaseService<DeviceMapper, TkDev |
94 | 94 | } |
95 | 95 | |
96 | 96 | @Override |
97 | - public void validateFormData(String currentTenantId, DeviceDTO deviceDTO) { | |
97 | + public void validateFormData(String currentTenantId, DeviceDTO deviceDTO) throws RuntimeException{ | |
98 | 98 | boolean insert = StringUtils.isBlank(deviceDTO.getId()); |
99 | 99 | String deviceTenantId; |
100 | 100 | if (StringUtils.isBlank(deviceDTO.getName())) { |
... | ... | @@ -132,7 +132,7 @@ public class TkDeviceServiceImpl extends AbstractBaseService<DeviceMapper, TkDev |
132 | 132 | DeviceProfile deviceProfile = |
133 | 133 | deviceProfileDao.findById(id, UUID.fromString(deviceDTO.getProfileId())); |
134 | 134 | OrganizationDTO organization = |
135 | - organizationService.findOrganizationById(deviceTenantId,deviceDTO.getOrganizationId()); | |
135 | + organizationService.findOrganizationById(deviceDTO.getOrganizationId(),deviceTenantId); | |
136 | 136 | if (null == deviceProfile || null == organization) { |
137 | 137 | throw new TkDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); |
138 | 138 | } else if (!organization.getTenantId().equals(deviceTenantId)) { | ... | ... |
... | ... | @@ -44,9 +44,6 @@ |
44 | 44 | LEFT JOIN tk_organization org ON org.id = d.organization_id |
45 | 45 | <where> |
46 | 46 | m.tenant_id = #{tenantId} |
47 | - <if test="customerId!=null"> | |
48 | - AND m.customer_id = #{customerId} | |
49 | - </if> | |
50 | 47 | <if test="severity!=null"> |
51 | 48 | AND severity = #{severity} |
52 | 49 | </if> | ... | ... |
... | ... | @@ -62,6 +62,7 @@ class ReactState { |
62 | 62 | private final TkNoticeService noticeService; |
63 | 63 | private TkDeviceService ytDeviceService; |
64 | 64 | |
65 | + private String actionData; | |
65 | 66 | ReactState(String reactId, TbContext ctx, TbSceneReactNodeConfig config) { |
66 | 67 | this.reactId = reactId; |
67 | 68 | this.reactName = config.getNames().get(reactId); |
... | ... | @@ -82,6 +83,7 @@ class ReactState { |
82 | 83 | } |
83 | 84 | this.noticeService = SpringBeanUtils.getBean(TkNoticeService.class); |
84 | 85 | this.ytDeviceService = SpringBeanUtils.getBean(TkDeviceService.class); |
86 | + actionData =""; | |
85 | 87 | } |
86 | 88 | |
87 | 89 | /** |
... | ... | @@ -219,8 +221,10 @@ class ReactState { |
219 | 221 | })); |
220 | 222 | }); |
221 | 223 | |
222 | - if (triggerMatched.get() && conditionMatched.get()) { | |
223 | - log.debug(String.format("设备【%s】的消息内容【%s】触发动作", deviceId, msg.getData())); | |
224 | + String msgData = msg.getData(); | |
225 | + if (triggerMatched.get() && conditionMatched.get() && !actionData.equals(msgData)) { | |
226 | + actionData = msgData; | |
227 | + log.debug(String.format("设备【%s】的消息内容【%s】触发动作", deviceId, msgData)); | |
224 | 228 | for (TkDoActionEntity item : actions) { |
225 | 229 | if (ActionTypeEnum.MSG_NOTIFY.equals(item.getOutTarget())) { |
226 | 230 | noticeMsg(ctx, msg, item, deviceId, detail, msg.getTs()); | ... | ... |