Allow cross-store staff selection

This commit is contained in:
2026-04-05 23:58:21 -06:00
parent 8d3430bd75
commit 706cd94d14
6 changed files with 60 additions and 7 deletions

View File

@@ -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())
);
}

View File

@@ -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();
}