Commit c978ac1689a3719f5496f37e7158cb654bbe558a
Merge branch '20220505' into 'master'
refactor: 意见反馈业务逻辑调整 See merge request huang/thingsboard3.3.2!93
Showing
4 changed files
with
11 additions
and
8 deletions
@@ -249,7 +249,7 @@ class DeviceActorMessageProcessor extends AbstractContextAwareMsgProcessor { | @@ -249,7 +249,7 @@ class DeviceActorMessageProcessor extends AbstractContextAwareMsgProcessor { | ||
249 | 249 | ||
250 | //Thingskit function | 250 | //Thingskit function |
251 | JsonNode old = JacksonUtil.toJsonNode(request.getAdditionalInfo()); | 251 | JsonNode old = JacksonUtil.toJsonNode(request.getAdditionalInfo()); |
252 | - ObjectNode additional = old.isEmpty() ?mapper.createObjectNode():(ObjectNode)old; | 252 | + ObjectNode additional = (old == null || old.isEmpty()) ?mapper.createObjectNode():(ObjectNode)old; |
253 | if(!additional.has("cmdType")){ | 253 | if(!additional.has("cmdType")){ |
254 | additional.put("cmdType", DeviceTransportType.MQTT.name()); | 254 | additional.put("cmdType", DeviceTransportType.MQTT.name()); |
255 | } | 255 | } |
@@ -23,13 +23,13 @@ import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant. | @@ -23,13 +23,13 @@ import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant. | ||
23 | @RequestMapping("api/yt/opinion") | 23 | @RequestMapping("api/yt/opinion") |
24 | @Api(tags = {"意见反馈"}) | 24 | @Api(tags = {"意见反馈"}) |
25 | @RequiredArgsConstructor | 25 | @RequiredArgsConstructor |
26 | -@PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')") | ||
27 | public class YtOpinionController extends BaseController { | 26 | public class YtOpinionController extends BaseController { |
28 | 27 | ||
29 | private final YtOpinionService opinionService; | 28 | private final YtOpinionService opinionService; |
30 | 29 | ||
31 | @GetMapping(params = {PAGE_SIZE, PAGE}) | 30 | @GetMapping(params = {PAGE_SIZE, PAGE}) |
32 | @ApiOperation("分页") | 31 | @ApiOperation("分页") |
32 | + @PreAuthorize("hasAnyAuthority('PLATFORM_ADMIN','SYS_ADMIN')") | ||
33 | public YtPageData<YtOpinionDTO> pageAlarmProfile( | 33 | public YtPageData<YtOpinionDTO> pageAlarmProfile( |
34 | @RequestParam(PAGE_SIZE) int pageSize, | 34 | @RequestParam(PAGE_SIZE) int pageSize, |
35 | @RequestParam(PAGE) int page, | 35 | @RequestParam(PAGE) int page, |
@@ -58,6 +58,7 @@ public class YtOpinionController extends BaseController { | @@ -58,6 +58,7 @@ public class YtOpinionController extends BaseController { | ||
58 | } | 58 | } |
59 | 59 | ||
60 | @DeleteMapping | 60 | @DeleteMapping |
61 | + @PreAuthorize("hasAnyAuthority('PLATFORM_ADMIN','SYS_ADMIN')") | ||
61 | @ApiOperation("删除") | 62 | @ApiOperation("删除") |
62 | public boolean deleteAlarmProfile(@Validated(DeleteGroup.class) @RequestBody DeleteDTO deleteDTO) | 63 | public boolean deleteAlarmProfile(@Validated(DeleteGroup.class) @RequestBody DeleteDTO deleteDTO) |
63 | throws ThingsboardException { | 64 | throws ThingsboardException { |
@@ -66,6 +67,7 @@ public class YtOpinionController extends BaseController { | @@ -66,6 +67,7 @@ public class YtOpinionController extends BaseController { | ||
66 | } | 67 | } |
67 | 68 | ||
68 | @GetMapping("{entityId}") | 69 | @GetMapping("{entityId}") |
70 | + @PreAuthorize("hasAnyAuthority('PLATFORM_ADMIN','SYS_ADMIN')") | ||
69 | @ApiOperation("详情") | 71 | @ApiOperation("详情") |
70 | public YtOpinionDTO detail(@PathVariable("entityId") String entityId) | 72 | public YtOpinionDTO detail(@PathVariable("entityId") String entityId) |
71 | throws ThingsboardException { | 73 | throws ThingsboardException { |
@@ -45,7 +45,7 @@ public class YtOpinionServiceImpl extends AbstractBaseService<YtOpinionMapper, Y | @@ -45,7 +45,7 @@ public class YtOpinionServiceImpl extends AbstractBaseService<YtOpinionMapper, Y | ||
45 | @Override | 45 | @Override |
46 | public YtOpinionDTO detail(String tenantId, String entityId) { | 46 | public YtOpinionDTO detail(String tenantId, String entityId) { |
47 | Wrapper filter = new QueryWrapper<YtOpinionEntity>().lambda() | 47 | Wrapper filter = new QueryWrapper<YtOpinionEntity>().lambda() |
48 | - .eq(YtOpinionEntity::getTenantId,tenantId) | 48 | +// .eq(YtOpinionEntity::getTenantId,tenantId) |
49 | .eq(YtOpinionEntity::getId,entityId); | 49 | .eq(YtOpinionEntity::getId,entityId); |
50 | YtOpinionEntity self = baseMapper.selectOne(filter); | 50 | YtOpinionEntity self = baseMapper.selectOne(filter); |
51 | return self.getDTO(YtOpinionDTO.class); | 51 | return self.getDTO(YtOpinionDTO.class); |
@@ -76,7 +76,7 @@ public class YtOpinionServiceImpl extends AbstractBaseService<YtOpinionMapper, Y | @@ -76,7 +76,7 @@ public class YtOpinionServiceImpl extends AbstractBaseService<YtOpinionMapper, Y | ||
76 | @Transactional(rollbackFor=Exception.class) | 76 | @Transactional(rollbackFor=Exception.class) |
77 | public boolean deleteDataByIds(DeleteDTO deleteDTO) { | 77 | public boolean deleteDataByIds(DeleteDTO deleteDTO) { |
78 | Wrapper filter = new QueryWrapper<YtOpinionEntity>().lambda() | 78 | Wrapper filter = new QueryWrapper<YtOpinionEntity>().lambda() |
79 | - .eq(YtOpinionEntity::getTenantId,deleteDTO.getTenantId()) | 79 | +// .eq(YtOpinionEntity::getTenantId,deleteDTO.getTenantId()) |
80 | .in(YtOpinionEntity::getId,deleteDTO.getIds()); | 80 | .in(YtOpinionEntity::getId,deleteDTO.getIds()); |
81 | return baseMapper.delete(filter) > 0; | 81 | return baseMapper.delete(filter) > 0; |
82 | } | 82 | } |
@@ -117,18 +117,19 @@ class ReactState { | @@ -117,18 +117,19 @@ class ReactState { | ||
117 | ctx.tellSuccess(msg); | 117 | ctx.tellSuccess(msg); |
118 | } | 118 | } |
119 | 119 | ||
120 | - boolean matched; | 120 | + boolean matched = false; |
121 | if (triggers == null || triggers.isEmpty()) { | 121 | if (triggers == null || triggers.isEmpty()) { |
122 | matched = true; | 122 | matched = true; |
123 | } else { | 123 | } else { |
124 | - matched = false; | 124 | + boolean itemMatched = false; |
125 | for (TriggerDTO trigger : triggers) { | 125 | for (TriggerDTO trigger : triggers) { |
126 | TriggerState triggerState = getOrCreateTriggerState(trigger, deviceId); | 126 | TriggerState triggerState = getOrCreateTriggerState(trigger, deviceId); |
127 | if (triggerState == null) { | 127 | if (triggerState == null) { |
128 | continue; | 128 | continue; |
129 | } | 129 | } |
130 | - matched = triggerState.process(ctx, msg); | ||
131 | - if (matched) { | 130 | + itemMatched = triggerState.process(ctx, msg); |
131 | + if (itemMatched) { | ||
132 | + matched = true; | ||
132 | detail.append(triggerState.getAlarmDetails()); | 133 | detail.append(triggerState.getAlarmDetails()); |
133 | if (this.alarmAction != null) { | 134 | if (this.alarmAction != null) { |
134 | noticeMsg(ctx, msg, alarmAction, deviceId, triggerState.getAlarmDetails(), triggerState.getLatestValues().getTs()); | 135 | noticeMsg(ctx, msg, alarmAction, deviceId, triggerState.getAlarmDetails(), triggerState.getLatestValues().getTs()); |