逻辑:
当企业内有部门时,选择部门后可查看在该部门内的用户信息,当企业内部没有部门时,查看的是企业内部全部用户的信息。
Controller层:
@GetMapping("/find_employee")
public Result<List<UserVo>> findEmployee(@RequestParam Integer departmentId,@RequestParam Integer companyId) {
if (companyId != null) {
if (departmentId == null){
List<User> lu = companyService.getCompanyEmployeeList(companyId);
List<UserVo> luo = new LinkedList<>();
for (User user : lu) {
if (user.getDepartmentId() == null) {
UserVo uv = new UserVo();
uv.setUserVo(user, companyService.getCompany(user.getCompanyId()));
luo.add(uv);
}
}
return Result.success(luo);
} else {
List<User> lu = userService.getUsersByDepartment(departmentId);
List<UserVo> luo = new LinkedList<>();
for (User user : lu) {
UserVo uv = new UserVo();
uv.setUserVo(user,companyService.getCompany(companyId),departmentService.getDepartment(departmentId));
luo.add(uv);
}
return Result.success(luo);
}
} else {
return Result.error(ErrorEnum.UserNotExistError);
}
}
Service层:
@Override
public Department getDepartment(Integer departmentId) {
return departmentRepository.findDepartmentById(departmentId);
}
@Override
public List<User> getUsersByDepartment(Integer departmentId) {
return userRepository.findByDepartmentId(departmentId);
}