修改维修人员相关代码 #85

Merged
hnu202326010106 merged 1 commits from wanglei_branch into develop 4 weeks ago

@ -1,6 +1,8 @@
package com.campus.water.controller.web;
import com.campus.water.entity.Device;
import com.campus.water.entity.RepairerAuth;
import com.campus.water.mapper.RepairerAuthRepository;
import com.campus.water.service.DeviceService;
import com.campus.water.entity.Repairman;
import com.campus.water.mapper.RepairmanRepository;
@ -24,6 +26,8 @@ public class DeviceController {
private final DeviceService deviceService;
private final RepairmanRepository repairmanRepository;
private final RepairerAuthRepository repairerAuthRepository;
/**
*
*/
@ -83,17 +87,23 @@ public class DeviceController {
/**
*
*/
// 在DeviceController.java中修改getAreaDevicesByTypeForRepairman方法
@GetMapping("/repairman/area-devices-by-type")
@PreAuthorize("hasRole('REPAIRMAN')") // 仅维修人员角色可访问
@PreAuthorize("hasRole('REPAIRMAN')")
@Operation(summary = "维修人员查询辖区设备(按类型)", description = "维修人员查看本辖区内指定类型的设备列表")
public ResponseEntity<ResultVO<List<Device>>> getAreaDevicesByTypeForRepairman(
@RequestParam String deviceType, // 必选参数设备类型water_maker/water_supply
@RequestParam String deviceType,
Authentication authentication) {
try {
// 1. 获取当前登录维修人员ID从Spring Security上下文
String repairmanId = authentication.getName();
// 1. 获取当前登录用户名username
String username = authentication.getName();
// 2. 通过用户名查询RepairerAuth获取维修人员ID
RepairerAuth repairerAuth = repairerAuthRepository.findByUsername(username)
.orElseThrow(() -> new RuntimeException("维修人员认证信息不存在"));
String repairmanId = repairerAuth.getRepairmanId();
// 2. 查询维修人员所属区域ID
// 3. 通过维修人员ID查询所属区域
Repairman repairman = repairmanRepository.findById(repairmanId)
.orElseThrow(() -> new RuntimeException("维修人员信息不存在"));
String areaId = repairman.getAreaId();
@ -101,10 +111,8 @@ public class DeviceController {
return ResponseEntity.ok(ResultVO.error(400, "维修人员未分配辖区"));
}
// 3. 转换设备类型参数为枚举
// 4. 转换设备类型并查询
Device.DeviceType type = Device.DeviceType.valueOf(deviceType);
// 4. 调用现有Service方法查询仅传areaId和deviceTypestatus传null
List<Device> devices = deviceService.queryDevices(areaId, type, null);
return ResponseEntity.ok(ResultVO.success(devices));

Loading…
Cancel
Save