4.14
已经花费的时间2天,还剩余的时间8天
实现了员工管理功能,查看员工选课情况
// 员工管理
@GetMapping("/employees")
public String employeeManage(Model model) {
// 获取员工列表
List
// 获取员工课程映射表
Map<Integer, List<Course>> coursesMap = adminService.getEmployeeCoursesMap();
model.addAttribute("employees", employees);
model.addAttribute("coursesMap", coursesMap);
return "admin/employee";
}
// 员工删除
@PostMapping("/employees/delete/{id}")
public String deleteEmployee(@PathVariable Integer id,
HttpSession session,
RedirectAttributes ra) {
if (!checkAdmin(session)) return "redirect:/login";
try {
adminService.deleteEmployee(id);
ra.addFlashAttribute("success", "员工删除成功");
} catch (AdminService.ServiceException e) {
ra.addFlashAttribute("error", e.getMessage());
} catch (Exception e) {
ra.addFlashAttribute("error", "系统错误:" + e.getMessage());
}
return "redirect:/admin/employees";
}
package com.example.training.repository;
import com.example.training.entity.EmployeeCourse;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Optional;
public interface EmployeeCourseRepository extends JpaRepository<EmployeeCourse, Integer> {
@Query("SELECT ec FROM EmployeeCourse ec " +
"WHERE ec.employee.id = :employeeId " +
"AND ec.active = true")
List<EmployeeCourse> findActiveCoursesByEmployee(@Param("employeeId") Integer employeeId);
@Query("SELECT COUNT(ec) > 0 FROM EmployeeCourse ec " +
"WHERE ec.employee.id = :employeeId " +
"AND ec.course.id = :courseId " +
"AND ec.active = true")
boolean existsActiveSelection(@Param("employeeId") Integer employeeId,
@Param("courseId") Integer courseId);
@Query("UPDATE EmployeeCourse ec SET ec.active = false " +
"WHERE ec.employee.id = :employeeId " +
"AND ec.course.id = :courseId")
void cancelCourseSelection(@Param("employeeId") Integer employeeId,
@Param("courseId") Integer courseId);
@Query("SELECT COUNT(ec) > 0 FROM EmployeeCourse ec WHERE ec.course.id = :courseId")
boolean existsByCourseId(@Param("courseId") Integer courseId);
@Query("SELECT COUNT(ec) > 0 FROM EmployeeCourse ec WHERE ec.employee.id = :employeeId")
boolean existsByEmployeeId(@Param("employeeId") Integer employeeId);
@Query("SELECT ec FROM EmployeeCourse ec WHERE ec.employee.id = :employeeId AND ec.course.id = :courseId")
Optional<EmployeeCourse> findByEmployeeIdAndCourseId(
@Param("employeeId") Integer employeeId,
@Param("courseId") Integer courseId);
@Query("SELECT ec FROM EmployeeCourse ec JOIN FETCH ec.course WHERE ec.employee.id IN :employeeIds")
List<EmployeeCourse> findWithCoursesByEmployeeIds(@Param("employeeIds") List<Integer> employeeIds);
}
posted on 2025-04-14 21:57 我爱玩原神(原神大王) 阅读(6) 评论(0) 收藏 举报
浙公网安备 33010602011771号