DeviceManageController.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. package com.supervision.web.peopleGateManage.controller;
  2. import com.github.pagehelper.PageInfo;
  3. import com.supervision.web.peopleGateManage.service.DeviceService;
  4. import com.supervision.web.peopleGateManage.service.PeopleDeviceService;
  5. import com.supervision.web.peopleGateManage.service.PeopleInfoService;
  6. import com.supervision.web.peopleGateManage.entity.Device;
  7. import com.supervision.web.peopleGateManage.entity.DeviceAddRequest;
  8. import com.supervision.web.peopleGateManage.entity.PeopleInfo;
  9. import org.slf4j.Logger;
  10. import org.slf4j.LoggerFactory;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.web.bind.annotation.*;
  13. import java.util.HashMap;
  14. import java.util.List;
  15. import java.util.Map;
  16. @RestController
  17. @RequestMapping("/device")
  18. public class DeviceManageController {
  19. private static final Logger logger = LoggerFactory.getLogger(DeviceManageController.class);
  20. @Autowired
  21. private DeviceService deviceService;
  22. @Autowired
  23. private PeopleInfoService peopleInfoService;
  24. @Autowired
  25. private PeopleDeviceService peopleDeviceService;
  26. /**
  27. * 获取所有设备列表
  28. */
  29. @PostMapping("/list")
  30. public Map<String, Object> listDevices(@RequestBody Map<String, Object> params) {
  31. PageInfo<Device> pageInfo = deviceService.searchByCondition(params);
  32. Map<String, Object> result = new HashMap<>();
  33. result.put("total", pageInfo.getTotal());
  34. result.put("list", pageInfo.getList());
  35. result.put("pageNum", pageInfo.getPageNum());
  36. result.put("pageSize", pageInfo.getPageSize());
  37. return result;
  38. }
  39. /**
  40. * 获取所有设备列表
  41. */
  42. @GetMapping("/listDeviceName")
  43. public Map<String, Object> listDeviceName() {
  44. List<Device> pageInfo = deviceService.searchAllDeviceNames();
  45. Map<String, Object> result = new HashMap<>();
  46. result.put("total", pageInfo.size());
  47. result.put("list", pageInfo);
  48. return result;
  49. }
  50. /**
  51. * 新增设备(支持从指定设备或所有设备同步人员信息)
  52. */
  53. @PostMapping("/add")
  54. public String addDevice(@RequestBody DeviceAddRequest request) {
  55. // 1. 保存新设备
  56. Device device = new Device();
  57. device.setType(request.getModel());
  58. device.setLocation(request.getLocation());
  59. device.setIp(request.getIp());
  60. device.setPort(request.getPort());
  61. device.setAccount(request.getAccount());
  62. device.setPassword(request.getPassword());
  63. deviceService.add(device);
  64. // 2. 同步逻辑
  65. if (request.getSyncMode() != null) {
  66. if (request.getSyncMode() == 1) {
  67. // 同步所有人员
  68. List<PeopleInfo> allPeople = peopleInfoService.getAll();
  69. for (PeopleInfo p : allPeople) {
  70. peopleDeviceService.bindPersonToDevice(p.getPersonId(), device.getId());
  71. }
  72. } else if (request.getSyncMode() == 2 && request.getSyncFromDeviceId() != null) {
  73. // 从指定设备同步
  74. List<String> personIds = peopleDeviceService.getPersonsByDevice(request.getSyncFromDeviceId());
  75. for (String personId : personIds) {
  76. peopleDeviceService.bindPersonToDevice(personId, device.getId());
  77. }
  78. }
  79. }
  80. return "success";
  81. }
  82. /**
  83. * 修改设备
  84. */
  85. @PutMapping("/update")
  86. public String updateDevice(@RequestBody Device device) {
  87. deviceService.update(device);
  88. return "success";
  89. }
  90. /**
  91. * 删除设备
  92. */
  93. @DeleteMapping("/delete/{id}")
  94. public String deleteDevice(@PathVariable Long id) {
  95. deviceService.delete(id);
  96. return "success";
  97. }
  98. /**
  99. * 查看单个设备详情
  100. */
  101. @GetMapping("/get/{id}")
  102. public Device getDevice(@PathVariable Long id) {
  103. return deviceService.getById(id);
  104. }
  105. }