JPA-Test/src/main/java/com/guwan/backend/jpaTest/EmployeeController.java

57 lines
1.9 KiB
Java
Raw Normal View History

2025-04-17 22:38:25 +08:00
package com.guwan.backend.jpaTest;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.sql.ResultSet;
import java.util.List;
@RestController
@RequestMapping("/api/employees")
public class EmployeeController {
@Autowired
private EmployeeService employeeService;
@Autowired
private JdbcTemplate jdbcTemplate;
@PersistenceContext
private EntityManager entityManager;
/**
* 获取员工详细信息包含部门和项目信息
* 使用Spring JdbcTemplate直接映射SQL结果
*
* @param departmentName 部门名称过滤条件
* @param projectDeleted 项目是否已删除的过滤条件
* @return 员工DTO列表
*/
@GetMapping("/details")
public List<EmployeeDTO> getEmployeeDetails(
@RequestParam(required = false) String departmentName,
@RequestParam(required = false, defaultValue = "false") boolean projectDeleted) {
return employeeService.getEmployeeDetails(departmentName, projectDeleted);
}
/**
* 根据条件查询员工信息
*
* @param employeeName 员工名称过滤条件可选
* @param departmentName 部门名称过滤条件可选
* @return 员工DTO列表
*/
@GetMapping("/search")
public List<EmployeeDTO> searchEmployees(
@RequestParam(required = false) String employeeName,
@RequestParam(required = false) String departmentName) {
return employeeService.findEmployees(employeeName, departmentName);
}
}