You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

93 lines
3.4 KiB

5 months ago
  1. package com.qyft.ms.device.controller;
  2. import com.qyft.ms.device.model.bo.DeviceCtrlFuncCMD;
  3. import com.qyft.ms.device.model.entity.CtrlFunc;
  4. import com.qyft.ms.device.model.form.CtrlFuncForm;
  5. import com.qyft.ms.device.model.vo.DeviceCtrlFuncVO;
  6. import com.qyft.ms.device.service.ICtrlFuncService;
  7. import com.qyft.ms.system.common.result.Result;
  8. import com.qyft.ms.system.common.result.ResultCode;
  9. import io.swagger.v3.oas.annotations.Operation;
  10. import io.swagger.v3.oas.annotations.Parameter;
  11. import io.swagger.v3.oas.annotations.tags.Tag;
  12. import lombok.RequiredArgsConstructor;
  13. import lombok.extern.slf4j.Slf4j;
  14. import org.springframework.web.bind.annotation.*;
  15. import java.util.List;
  16. @Tag(name = "设备控制")
  17. @RestController
  18. @RequestMapping("/api/device")
  19. @RequiredArgsConstructor
  20. @Slf4j
  21. public class DeviceCtrlController {
  22. private final ICtrlFuncService ctrlFuncService;
  23. @Operation(summary = "获取所有设备控制方法步骤")
  24. @GetMapping("/ctrl/step")
  25. public Result<List<DeviceCtrlFuncCMD>> getAllCtrlFuncStep() {
  26. List<DeviceCtrlFuncCMD> ctrlFuncList = ctrlFuncService.findAllStepCMD();
  27. return Result.success(ctrlFuncList);
  28. }
  29. @Operation(summary = "获取所有设备控制方法")
  30. @GetMapping("/ctrl")
  31. public Result<List<CtrlFunc>> getAllCtrlFunc() {
  32. List<CtrlFunc> ctrlFuncList = ctrlFuncService.findAll();
  33. return Result.success(ctrlFuncList);
  34. }
  35. @Operation(summary = "根据id获取设备控制方法与步骤")
  36. @GetMapping("/ctrl/{id}")
  37. public Result<DeviceCtrlFuncVO> getById(@PathVariable Long id) {
  38. DeviceCtrlFuncVO ctrlFuncVO = ctrlFuncService.findVOById(id);
  39. return Result.success(ctrlFuncVO);
  40. }
  41. @Operation(summary = "添加设备控制方法与步骤")
  42. @PostMapping("/ctrl")
  43. public Result<String> addCtrlFunc(@RequestBody CtrlFuncForm ctrlFuncForm) {
  44. long count = ctrlFuncService.countFuncCmdByFuncCmd(ctrlFuncForm.getFuncCmd());
  45. if (count > 0) {
  46. return Result.failed(ResultCode.DATA_ALREADY_EXISTS);
  47. }
  48. boolean isSuccess = ctrlFuncService.addCtrlFunc(ctrlFuncForm);
  49. if (isSuccess) {
  50. return Result.success();
  51. }
  52. return Result.failed();
  53. }
  54. @Operation(summary = "更新设备控制方法与步骤")
  55. @PutMapping("/ctrl/{id}")
  56. public Result<String> updateCtrlFunc(@PathVariable Long id, @RequestBody CtrlFuncForm ctrlFuncForm) {
  57. CtrlFunc currentCtrlFunc = ctrlFuncService.getById(id);
  58. if (currentCtrlFunc != null && !currentCtrlFunc.getFuncCmd().equals(ctrlFuncForm.getFuncCmd())) {
  59. //改了指令需要判断指令是否重复
  60. long count = ctrlFuncService.countFuncCmdByFuncCmd(ctrlFuncForm.getFuncCmd());
  61. if (count > 0) {
  62. return Result.failed(ResultCode.DATA_ALREADY_EXISTS);
  63. }
  64. }
  65. boolean isSuccess = ctrlFuncService.updateCtrlFunc(id, ctrlFuncForm);
  66. if (isSuccess) {
  67. return Result.success();
  68. }
  69. return Result.failed();
  70. }
  71. @Operation(summary = "删除设备控制方法")
  72. @DeleteMapping("/ctrl/{ids}")
  73. public Result<String> deleteCtrlFunc(@Parameter(description = "设备控制方法ID,多个以英文逗号(,)分割") @PathVariable String ids) {
  74. boolean isSuccess = ctrlFuncService.deleteCtrlFunc(ids);
  75. if (isSuccess) {
  76. return Result.success();
  77. }
  78. return Result.failed();
  79. }
  80. }