Commit c978ac1689a3719f5496f37e7158cb654bbe558a

Authored by xp.Huang
2 parents 0246ee68 8c8c20d8

Merge branch '20220505' into 'master'

refactor: 意见反馈业务逻辑调整

See merge request huang/thingsboard3.3.2!93
@@ -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());