UserDeviceController.java 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. package com.aijiuyi.admin.controller;
  2. import com.aijiuyi.admin.common.annotation.Log;
  3. import com.aijiuyi.admin.common.entity.Result;
  4. import com.aijiuyi.admin.common.enums.OperationType;
  5. import com.aijiuyi.admin.controller.dto.UserDeviceQueryDTO;
  6. import com.aijiuyi.admin.entity.UserDevice;
  7. import com.aijiuyi.admin.service.UserDeviceService;
  8. import com.baomidou.mybatisplus.core.metadata.IPage;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.web.bind.annotation.*;
  11. import java.util.List;
  12. /**
  13. * 用户设备管理 Controller(管理员后台)
  14. * 提供设备绑定记录的查询、新增、解绑、设为主设备、批量解绑接口
  15. */
  16. @RestController
  17. @RequestMapping("/user/device")
  18. public class UserDeviceController {
  19. @Autowired
  20. private UserDeviceService userDeviceService;
  21. /**
  22. * 分页查询设备列表
  23. *
  24. * @param queryDTO 查询条件
  25. * @return 分页结果
  26. */
  27. @GetMapping("/page")
  28. @Log(value = "查询设备列表", module = "设备管理", operationType = OperationType.QUERY)
  29. public Result<IPage<UserDevice>> page(UserDeviceQueryDTO queryDTO) {
  30. return Result.success(userDeviceService.pageList(queryDTO));
  31. }
  32. /**
  33. * 查询设备详情
  34. *
  35. * @param id 设备记录ID
  36. * @return 设备详情
  37. */
  38. @GetMapping("/{id}")
  39. @Log(value = "查询设备详情", module = "设备管理", operationType = OperationType.QUERY)
  40. public Result<UserDevice> getById(@PathVariable Long id) {
  41. return Result.success(userDeviceService.getById(id));
  42. }
  43. /**
  44. * 绑定设备(新增绑定记录)
  45. *
  46. * @param device 设备信息(userId为子用户ID,deviceCode为设备编号)
  47. * @return 操作结果
  48. */
  49. @PostMapping
  50. @Log(value = "绑定设备", module = "设备管理", operationType = OperationType.INSERT)
  51. public Result<Void> bind(@RequestBody UserDevice device) {
  52. userDeviceService.bindDevice(device);
  53. return Result.success();
  54. }
  55. /**
  56. * 解绑设备(设置状态为已解绑)
  57. *
  58. * @param id 设备记录ID
  59. * @return 操作结果
  60. */
  61. @PutMapping("/{id}/unbind")
  62. @Log(value = "解绑设备", module = "设备管理", operationType = OperationType.UPDATE)
  63. public Result<Void> unbind(@PathVariable Long id) {
  64. userDeviceService.unbindDevice(id);
  65. return Result.success();
  66. }
  67. /**
  68. * 设置主设备(同一用户下只能有一个主设备)
  69. *
  70. * @param id 设备记录ID
  71. * @param userId 所属子用户ID
  72. * @return 操作结果
  73. */
  74. @PutMapping("/{id}/primary")
  75. @Log(value = "设置主设备", module = "设备管理", operationType = OperationType.UPDATE)
  76. public Result<Void> setPrimary(@PathVariable Long id, @RequestParam Long userId) {
  77. userDeviceService.setPrimaryDevice(id, userId);
  78. return Result.success();
  79. }
  80. /**
  81. * 批量解绑设备
  82. *
  83. * @param ids 设备记录ID列表
  84. * @return 操作结果
  85. */
  86. @PutMapping("/batch-unbind")
  87. @Log(value = "批量解绑设备", module = "设备管理", operationType = OperationType.UPDATE)
  88. public Result<Void> batchUnbind(@RequestBody List<Long> ids) {
  89. userDeviceService.batchUnbindDevices(ids);
  90. return Result.success();
  91. }
  92. /**
  93. * 删除设备记录
  94. *
  95. * @param id 设备记录ID
  96. * @return 操作结果
  97. */
  98. @DeleteMapping("/{id}")
  99. @Log(value = "删除设备记录", module = "设备管理", operationType = OperationType.DELETE)
  100. public Result<Void> delete(@PathVariable Long id) {
  101. userDeviceService.deleteDevice(id);
  102. return Result.success();
  103. }
  104. }