Allow cross-store staff selection
This commit is contained in:
@@ -156,13 +156,20 @@ public class DropdownController {
|
||||
);
|
||||
}
|
||||
|
||||
@GetMapping("/stores/{storeId}/employees")
|
||||
@GetMapping({"/stores/{storeId}/employees", "/employees"})
|
||||
@PreAuthorize("hasAnyRole('CUSTOMER', 'STAFF', 'ADMIN')")
|
||||
public ResponseEntity<List<DropdownOption>> getStoreEmployees(@PathVariable Long storeId) {
|
||||
public ResponseEntity<List<DropdownOption>> getStoreEmployees(@PathVariable(required = false) Long storeId) {
|
||||
List<EmployeeStore> employees;
|
||||
if (storeId == null || storeId == 0) {
|
||||
employees = employeeStoreRepository.findActiveAllOrderByEmployeeEmployeeIdAsc();
|
||||
} else {
|
||||
employees = employeeStoreRepository.findActiveByStoreStoreIdOrderByEmployeeEmployeeIdAsc(storeId);
|
||||
}
|
||||
return ResponseEntity.ok(
|
||||
employeeStoreRepository.findActiveByStoreStoreIdOrderByEmployeeEmployeeIdAsc(storeId).stream()
|
||||
employees.stream()
|
||||
.filter(this::isAssignableEmployee)
|
||||
.map(this::toEmployeeOption)
|
||||
.distinct()
|
||||
.collect(Collectors.toList())
|
||||
);
|
||||
}
|
||||
|
||||
@@ -15,4 +15,7 @@ public interface EmployeeStoreRepository extends JpaRepository<EmployeeStore, Em
|
||||
|
||||
@Query("SELECT es FROM EmployeeStore es WHERE es.store.storeId = :storeId AND es.employee.isActive = true ORDER BY es.employee.employeeId ASC")
|
||||
List<EmployeeStore> findActiveByStoreStoreIdOrderByEmployeeEmployeeIdAsc(@Param("storeId") Long storeId);
|
||||
|
||||
@Query("SELECT es FROM EmployeeStore es WHERE es.employee.isActive = true ORDER BY es.employee.employeeId ASC")
|
||||
List<EmployeeStore> findActiveAllOrderByEmployeeEmployeeIdAsc();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user