package com.aijiuyi.admin.controller; import com.aijiuyi.admin.common.annotation.Log; import com.aijiuyi.admin.common.entity.Result; import com.aijiuyi.admin.common.enums.OperationType; import com.aijiuyi.admin.controller.dto.UserDeviceQueryDTO; import com.aijiuyi.admin.entity.UserDevice; import com.aijiuyi.admin.service.UserDeviceService; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 用户设备管理 Controller(管理员后台) * 提供设备绑定记录的查询、新增、解绑、设为主设备、批量解绑接口 */ @RestController @RequestMapping("/user/device") public class UserDeviceController { @Autowired private UserDeviceService userDeviceService; /** * 分页查询设备列表 * * @param queryDTO 查询条件 * @return 分页结果 */ @GetMapping("/page") @Log(value = "查询设备列表", module = "设备管理", operationType = OperationType.QUERY) public Result> page(UserDeviceQueryDTO queryDTO) { return Result.success(userDeviceService.pageList(queryDTO)); } /** * 查询设备详情 * * @param id 设备记录ID * @return 设备详情 */ @GetMapping("/{id}") @Log(value = "查询设备详情", module = "设备管理", operationType = OperationType.QUERY) public Result getById(@PathVariable Long id) { return Result.success(userDeviceService.getById(id)); } /** * 绑定设备(新增绑定记录) * * @param device 设备信息(userId为子用户ID,deviceCode为设备编号) * @return 操作结果 */ @PostMapping @Log(value = "绑定设备", module = "设备管理", operationType = OperationType.INSERT) public Result bind(@RequestBody UserDevice device) { userDeviceService.bindDevice(device); return Result.success(); } /** * 解绑设备(设置状态为已解绑) * * @param id 设备记录ID * @return 操作结果 */ @PutMapping("/{id}/unbind") @Log(value = "解绑设备", module = "设备管理", operationType = OperationType.UPDATE) public Result unbind(@PathVariable Long id) { userDeviceService.unbindDevice(id); return Result.success(); } /** * 设置主设备(同一用户下只能有一个主设备) * * @param id 设备记录ID * @param userId 所属子用户ID * @return 操作结果 */ @PutMapping("/{id}/primary") @Log(value = "设置主设备", module = "设备管理", operationType = OperationType.UPDATE) public Result setPrimary(@PathVariable Long id, @RequestParam Long userId) { userDeviceService.setPrimaryDevice(id, userId); return Result.success(); } /** * 批量解绑设备 * * @param ids 设备记录ID列表 * @return 操作结果 */ @PutMapping("/batch-unbind") @Log(value = "批量解绑设备", module = "设备管理", operationType = OperationType.UPDATE) public Result batchUnbind(@RequestBody List ids) { userDeviceService.batchUnbindDevices(ids); return Result.success(); } /** * 删除设备记录 * * @param id 设备记录ID * @return 操作结果 */ @DeleteMapping("/{id}") @Log(value = "删除设备记录", module = "设备管理", operationType = OperationType.DELETE) public Result delete(@PathVariable Long id) { userDeviceService.deleteDevice(id); return Result.success(); } }