...
|
...
|
@@ -14,6 +14,7 @@ import org.thingsboard.server.common.data.yunteng.common.AddGroup; |
14
|
14
|
import org.thingsboard.server.common.data.yunteng.common.DeleteGroup;
|
15
|
15
|
import org.thingsboard.server.common.data.yunteng.common.UpdateGroup;
|
16
|
16
|
import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO;
|
|
17
|
+import org.thingsboard.server.common.data.yunteng.dto.DeviceDTO;
|
17
|
18
|
import org.thingsboard.server.common.data.yunteng.dto.SceneLinkageDTO;
|
18
|
19
|
import org.thingsboard.server.common.data.yunteng.dto.TriggerDTO;
|
19
|
20
|
import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData;
|
...
|
...
|
@@ -29,9 +30,7 @@ import java.util.Optional; |
29
|
30
|
import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.PAGE;
|
30
|
31
|
import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.PAGE_SIZE;
|
31
|
32
|
|
32
|
|
-/**
|
33
|
|
- * @Description 场景联动 @Author cxy @Date 2021/11/25 11:25
|
34
|
|
- */
|
|
33
|
+/** @Description 场景联动 @Author cxy @Date 2021/11/25 11:25 */
|
35
|
34
|
@RestController
|
36
|
35
|
@RequestMapping("/api/yt/sceneLinkage")
|
37
|
36
|
@RequiredArgsConstructor
|
...
|
...
|
@@ -39,84 +38,88 @@ import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant. |
39
|
38
|
@PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')")
|
40
|
39
|
public class YtSceneLinkageController extends BaseController {
|
41
|
40
|
|
42
|
|
- private final SceneLinkageService sceneLinkageService;
|
|
41
|
+ private final SceneLinkageService sceneLinkageService;
|
43
|
42
|
|
44
|
|
- @ApiOperation(value = "新增场景联动")
|
45
|
|
- @PostMapping
|
46
|
|
- public ResponseEntity<SceneLinkageDTO> saveSceneLinkage(
|
47
|
|
- @Validated(AddGroup.class) @RequestBody SceneLinkageDTO sceneLinkageDTO)
|
48
|
|
- throws ThingsboardException {
|
49
|
|
- SceneLinkageDTO newSceneLinkageDTO =
|
50
|
|
- sceneLinkageService.saveScenelinkage(
|
51
|
|
- sceneLinkageDTO, getCurrentUser().getCurrentTenantId());
|
52
|
|
- return Optional.ofNullable(newSceneLinkageDTO)
|
53
|
|
- .map(
|
54
|
|
- dto -> {
|
55
|
|
- URI location =
|
56
|
|
- ServletUriComponentsBuilder.fromCurrentRequest()
|
57
|
|
- .path("/{id}")
|
58
|
|
- .buildAndExpand(newSceneLinkageDTO.getId())
|
59
|
|
- .toUri();
|
60
|
|
- return ResponseEntity.created(location).body(newSceneLinkageDTO);
|
61
|
|
- })
|
62
|
|
- .orElse(ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build());
|
63
|
|
- }
|
|
43
|
+ @ApiOperation(value = "新增场景联动")
|
|
44
|
+ @PostMapping
|
|
45
|
+ public ResponseEntity<SceneLinkageDTO> saveSceneLinkage(
|
|
46
|
+ @Validated(AddGroup.class) @RequestBody SceneLinkageDTO sceneLinkageDTO)
|
|
47
|
+ throws ThingsboardException {
|
|
48
|
+ SceneLinkageDTO newSceneLinkageDTO =
|
|
49
|
+ sceneLinkageService.saveScenelinkage(
|
|
50
|
+ sceneLinkageDTO, getCurrentUser().getCurrentTenantId());
|
|
51
|
+ return Optional.ofNullable(newSceneLinkageDTO)
|
|
52
|
+ .map(
|
|
53
|
+ dto -> {
|
|
54
|
+ URI location =
|
|
55
|
+ ServletUriComponentsBuilder.fromCurrentRequest()
|
|
56
|
+ .path("/{id}")
|
|
57
|
+ .buildAndExpand(newSceneLinkageDTO.getId())
|
|
58
|
+ .toUri();
|
|
59
|
+ return ResponseEntity.created(location).body(newSceneLinkageDTO);
|
|
60
|
+ })
|
|
61
|
+ .orElse(ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build());
|
|
62
|
+ }
|
64
|
63
|
|
65
|
|
- @ApiOperation("编辑")
|
66
|
|
- @PostMapping("/update")
|
67
|
|
- public void updateSceneLinkage(
|
68
|
|
- @Validated(UpdateGroup.class) @RequestBody SceneLinkageDTO sceneLinkageDTO) throws ThingsboardException {
|
69
|
|
- sceneLinkageService.updateSceneLinkage(sceneLinkageDTO, getCurrentUser().getCurrentTenantId());
|
70
|
|
- }
|
|
64
|
+ @ApiOperation("编辑")
|
|
65
|
+ @PostMapping("/update")
|
|
66
|
+ public void updateSceneLinkage(
|
|
67
|
+ @Validated(UpdateGroup.class) @RequestBody SceneLinkageDTO sceneLinkageDTO)
|
|
68
|
+ throws ThingsboardException {
|
|
69
|
+ sceneLinkageService.updateSceneLinkage(sceneLinkageDTO, getCurrentUser().getCurrentTenantId());
|
|
70
|
+ }
|
71
|
71
|
|
72
|
|
- @ApiOperation("查询(分页列表)")
|
73
|
|
- @GetMapping(params = {PAGE_SIZE, PAGE})
|
74
|
|
- public YtPageData<SceneLinkageDTO> page(
|
75
|
|
- @RequestParam(PAGE_SIZE) int pageSize,
|
76
|
|
- @RequestParam(PAGE) int page,
|
77
|
|
- @RequestParam(value = "name", required = false) String name,
|
78
|
|
- @RequestParam(value = "status", required = false) Integer status,
|
79
|
|
- @RequestParam(value = "organizationId", required = false) String organizationId,
|
80
|
|
- @RequestParam(value = "triggers", required = false) List<TriggerDTO> triggers)
|
81
|
|
- throws ThingsboardException {
|
82
|
|
- HashMap<String, Object> queryMap = new HashMap<>();
|
83
|
|
- queryMap.put(PAGE_SIZE, pageSize);
|
84
|
|
- queryMap.put(PAGE, page);
|
85
|
|
- queryMap.put("name", name);
|
86
|
|
- queryMap.put("status", status);
|
87
|
|
- queryMap.put("organizationId", organizationId);
|
88
|
|
- queryMap.put("triggers", triggers);
|
89
|
|
- return sceneLinkageService.page(queryMap, getCurrentUser().getCurrentTenantId());
|
90
|
|
- }
|
|
72
|
+ @ApiOperation("查询(分页列表)")
|
|
73
|
+ @GetMapping(params = {PAGE_SIZE, PAGE})
|
|
74
|
+ public YtPageData<SceneLinkageDTO> page(
|
|
75
|
+ @RequestParam(PAGE_SIZE) int pageSize,
|
|
76
|
+ @RequestParam(PAGE) int page,
|
|
77
|
+ @RequestParam(value = "name", required = false) String name,
|
|
78
|
+ @RequestParam(value = "status", required = false) Integer status,
|
|
79
|
+ @RequestParam(value = "organizationId", required = false) String organizationId,
|
|
80
|
+ @RequestParam(value = "triggers", required = false) List<TriggerDTO> triggers)
|
|
81
|
+ throws ThingsboardException {
|
|
82
|
+ HashMap<String, Object> queryMap = new HashMap<>();
|
|
83
|
+ queryMap.put(PAGE_SIZE, pageSize);
|
|
84
|
+ queryMap.put(PAGE, page);
|
|
85
|
+ queryMap.put("name", name);
|
|
86
|
+ queryMap.put("status", status);
|
|
87
|
+ queryMap.put("organizationId", organizationId);
|
|
88
|
+ queryMap.put("triggers", triggers);
|
|
89
|
+ return sceneLinkageService.page(queryMap, getCurrentUser().getCurrentTenantId());
|
|
90
|
+ }
|
91
|
91
|
|
92
|
|
- @ApiOperation(value = "删除")
|
93
|
|
- @DeleteMapping
|
94
|
|
- public void delete(@Validated({DeleteGroup.class}) @RequestBody DeleteDTO deleteDTO)
|
95
|
|
- throws ThingsboardException {
|
96
|
|
- sceneLinkageService.deleteSceneLinkage(
|
97
|
|
- deleteDTO.getIds(), getCurrentUser().getCurrentTenantId());
|
98
|
|
- }
|
|
92
|
+ @ApiOperation(value = "删除")
|
|
93
|
+ @DeleteMapping
|
|
94
|
+ public void delete(@Validated({DeleteGroup.class}) @RequestBody DeleteDTO deleteDTO)
|
|
95
|
+ throws ThingsboardException {
|
|
96
|
+ sceneLinkageService.deleteSceneLinkage(
|
|
97
|
+ deleteDTO.getIds(), getCurrentUser().getCurrentTenantId());
|
|
98
|
+ }
|
99
|
99
|
|
100
|
|
- @ApiOperation(value = "启用/禁用")
|
101
|
|
- @PutMapping("/updateSceneStatus/{sceneLinkageId}/{status}")
|
102
|
|
- public void updateRoleStatus(
|
103
|
|
- @PathVariable String sceneLinkageId, @PathVariable("status") int status)
|
104
|
|
- throws ThingsboardException {
|
105
|
|
- //TODO: 启动时,验证必填的动作是否为空
|
|
100
|
+ @ApiOperation(value = "启用/禁用")
|
|
101
|
+ @PutMapping("/updateSceneStatus/{sceneLinkageId}/{status}")
|
|
102
|
+ public void updateRoleStatus(
|
|
103
|
+ @PathVariable String sceneLinkageId, @PathVariable("status") int status)
|
|
104
|
+ throws ThingsboardException {
|
|
105
|
+ // TODO: 启动时,验证必填的动作是否为空
|
106
|
106
|
|
107
|
|
- sceneLinkageService.updateSceneStatus(
|
108
|
|
- sceneLinkageId, status, getCurrentUser().getCurrentTenantId());
|
109
|
|
- }
|
|
107
|
+ sceneLinkageService.updateSceneStatus(
|
|
108
|
+ sceneLinkageId, status, getCurrentUser().getCurrentTenantId());
|
|
109
|
+ }
|
110
|
110
|
|
111
|
|
- @ApiOperation(value = "通过场景id获取所属组织的设备集合")
|
112
|
|
- @GetMapping("/device")
|
113
|
|
- public ResponseEntity<Map> findDeviceList(@RequestParam String organizationId) {
|
114
|
|
- HashMap<String, Object> map =
|
115
|
|
- new HashMap<>() {
|
116
|
|
- {
|
117
|
|
- put("items", sceneLinkageService.findDeviceList(organizationId));
|
118
|
|
- }
|
119
|
|
- };
|
120
|
|
- return ResponseEntity.ok(map);
|
121
|
|
- }
|
|
111
|
+ @ApiOperation(value = "通过场景id获取所属组织的设备集合")
|
|
112
|
+ @GetMapping("/device")
|
|
113
|
+ public ResponseEntity<Map> findDeviceList(@RequestParam String organizationId)
|
|
114
|
+ throws ThingsboardException {
|
|
115
|
+ List<DeviceDTO> dtoList =
|
|
116
|
+ sceneLinkageService.findDeviceList(
|
|
117
|
+ organizationId,
|
|
118
|
+ getCurrentUser().isPtTenantAdmin(),
|
|
119
|
+ getCurrentUser().getCurrentTenantId(),
|
|
120
|
+ getCurrentUser().getCurrentUserId());
|
|
121
|
+ Map<String, Object> map = new HashMap<>();
|
|
122
|
+ map.put("items", dtoList);
|
|
123
|
+ return ResponseEntity.ok(map);
|
|
124
|
+ }
|
122
|
125
|
} |
...
|
...
|
|