|  | @@ -1,19 +1,17 @@
 | 
	
		
			
				|  |  | -package com.supervision.web.peopleGateManage.Controller;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -import com.supervision.web.peopleGateManage.Service.DeviceService;
 | 
	
		
			
				|  |  | -import com.supervision.web.peopleGateManage.Service.PeopleDeviceService;
 | 
	
		
			
				|  |  | -import com.supervision.web.peopleGateManage.Service.PeopleFaceService;
 | 
	
		
			
				|  |  | -import com.supervision.web.peopleGateManage.Service.PeopleInfoService;
 | 
	
		
			
				|  |  | -import com.supervision.web.peopleGateManage.enity.PeopleFace;
 | 
	
		
			
				|  |  | -import com.supervision.web.peopleGateManage.enity.PeopleInfo;
 | 
	
		
			
				|  |  | +package com.supervision.web.peopleGateManage.controller;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import com.github.pagehelper.PageInfo;
 | 
	
		
			
				|  |  | +import com.supervision.web.peopleGateManage.service.DeviceService;
 | 
	
		
			
				|  |  | +import com.supervision.web.peopleGateManage.service.PeopleDeviceService;
 | 
	
		
			
				|  |  | +import com.supervision.web.peopleGateManage.service.PeopleFaceService;
 | 
	
		
			
				|  |  | +import com.supervision.web.peopleGateManage.service.PeopleInfoService;
 | 
	
		
			
				|  |  | +import com.supervision.web.peopleGateManage.entity.PeopleFace;
 | 
	
		
			
				|  |  | +import com.supervision.web.peopleGateManage.entity.PeopleInfo;
 | 
	
		
			
				|  |  |  import com.supervision.web.peopleGateManage.mapper.PeopleFaceMapper;
 | 
	
		
			
				|  |  |  import org.slf4j.Logger;
 | 
	
		
			
				|  |  |  import org.slf4j.LoggerFactory;
 | 
	
		
			
				|  |  |  import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  |  import org.springframework.beans.factory.annotation.Value;
 | 
	
		
			
				|  |  | -import org.springframework.http.HttpHeaders;
 | 
	
		
			
				|  |  | -import org.springframework.http.HttpStatus;
 | 
	
		
			
				|  |  | -import org.springframework.http.MediaType;
 | 
	
		
			
				|  |  |  import org.springframework.http.ResponseEntity;
 | 
	
		
			
				|  |  |  import org.springframework.util.StringUtils;
 | 
	
		
			
				|  |  |  import org.springframework.web.bind.annotation.*;
 | 
	
	
		
			
				|  | @@ -23,9 +21,10 @@ import java.io.File;
 | 
	
		
			
				|  |  |  import java.io.IOException;
 | 
	
		
			
				|  |  |  import java.nio.file.Files;
 | 
	
		
			
				|  |  |  import java.util.*;
 | 
	
		
			
				|  |  | +import java.util.function.Function;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  @RestController
 | 
	
		
			
				|  |  | -@RequestMapping("/person")
 | 
	
		
			
				|  |  | +@RequestMapping("/peopleDoor")
 | 
	
		
			
				|  |  |  public class PeopleManageController {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      public static final Logger logger = LoggerFactory.getLogger(PeopleManageController.class);
 | 
	
	
		
			
				|  | @@ -42,7 +41,88 @@ public class PeopleManageController {
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private PeopleDeviceService peopleDeviceService;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    // ------------------- 人员管理 -------------------
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @PostMapping("/listPeopleInfo")
 | 
	
		
			
				|  |  | +    public Map<String, Object> listPeopleInfo(@RequestBody Map<String, Object> request) {
 | 
	
		
			
				|  |  | +        return handleDevicePeople(request, "listPeopleInfo");
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @PostMapping("/addPeopleInfo")
 | 
	
		
			
				|  |  | +    public Map<String, Object> addPeopleInfo(@RequestBody Map<String, Object> request) {
 | 
	
		
			
				|  |  | +        return handleDevicePeople(request, "addPeopleInfo");
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @PostMapping("/updatePeopleInfo")
 | 
	
		
			
				|  |  | +    public Map<String, Object> updatePeopleInfo(@RequestBody Map<String, Object> request) {
 | 
	
		
			
				|  |  | +        return handleDevicePeople(request, "updatePeopleInfo");
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @PostMapping("/deletePeopleInfo")
 | 
	
		
			
				|  |  | +    public Map<String, Object> deletePeopleInfo(@RequestBody Map<String, Object> request) {
 | 
	
		
			
				|  |  | +        return handleDevicePeople(request, "deletePeopleInfo");
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 通用方法,处理设备下人员信息的增删改查
 | 
	
		
			
				|  |  | +     *
 | 
	
		
			
				|  |  | +     * @param request 请求参数,必须包含 deviceId
 | 
	
		
			
				|  |  | +     * @param action  功能类型:"list", "add", "update", "delete"
 | 
	
		
			
				|  |  | +     * @return 返回封装后的结果
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private Map<String, Object> handleDevicePeople(Map<String, Object> request, String action) {
 | 
	
		
			
				|  |  | +        Map<String, Object> result = new HashMap<>();
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +            // 解析 deviceId
 | 
	
		
			
				|  |  | +            Object deviceIdObj = request.get("deviceId");
 | 
	
		
			
				|  |  | +            Long deviceId = null;
 | 
	
		
			
				|  |  | +            if (deviceIdObj != null) {
 | 
	
		
			
				|  |  | +                if (deviceIdObj instanceof Number) {
 | 
	
		
			
				|  |  | +                    deviceId = ((Number) deviceIdObj).longValue();
 | 
	
		
			
				|  |  | +                } else {
 | 
	
		
			
				|  |  | +                    deviceId = Long.parseLong(deviceIdObj.toString());
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            if (deviceId == null) {
 | 
	
		
			
				|  |  | +                result.put("message", "获取设备下的人员信息失败,deviceId 为空");
 | 
	
		
			
				|  |  | +                result.put("total", 0);
 | 
	
		
			
				|  |  | +                result.put("list", Collections.emptyList());
 | 
	
		
			
				|  |  | +                result.put("pageNum", 0);
 | 
	
		
			
				|  |  | +                result.put("pageSize", 0);
 | 
	
		
			
				|  |  | +                return result;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            // 根据 action 调用不同 Service 方法
 | 
	
		
			
				|  |  | +            PageInfo<Map<String, Object>> pageInfo = null;
 | 
	
		
			
				|  |  | +            if ("list".equals(action)) {
 | 
	
		
			
				|  |  | +                pageInfo = peopleDeviceService.searchByCondition(request);
 | 
	
		
			
				|  |  | +            } else if ("add".equals(action)) {
 | 
	
		
			
				|  |  | +                pageInfo = peopleDeviceService.addByCondition(request);
 | 
	
		
			
				|  |  | +            } else if ("update".equals(action)) {
 | 
	
		
			
				|  |  | +                pageInfo = peopleDeviceService.updateByCondition(request);
 | 
	
		
			
				|  |  | +            } else if ("delete".equals(action)) {
 | 
	
		
			
				|  |  | +                pageInfo = peopleDeviceService.deleteByCondition(request);
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                throw new IllegalArgumentException("不支持的操作类型: " + action);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            // 封装返回结果
 | 
	
		
			
				|  |  | +            result.put("total", pageInfo != null ? pageInfo.getTotal() : 0);
 | 
	
		
			
				|  |  | +            result.put("list", pageInfo != null ? pageInfo.getList() : Collections.emptyList());
 | 
	
		
			
				|  |  | +            result.put("pageNum", pageInfo != null ? pageInfo.getPageNum() : 0);
 | 
	
		
			
				|  |  | +            result.put("pageSize", pageInfo != null ? pageInfo.getPageSize() : 0);
 | 
	
		
			
				|  |  | +            result.put("message", "操作成功:" + action);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        } catch (Exception e) {
 | 
	
		
			
				|  |  | +            result.put("message", "操作异常:" + e.getMessage());
 | 
	
		
			
				|  |  | +            result.put("total", 0);
 | 
	
		
			
				|  |  | +            result.put("list", Collections.emptyList());
 | 
	
		
			
				|  |  | +            result.put("pageNum", 0);
 | 
	
		
			
				|  |  | +            result.put("pageSize", 0);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return result;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /** 获取设备下的人员 */
 | 
	
		
			
				|  |  |      @GetMapping("/info/list/{deviceId}")
 |