StaffQueryServiceImpl.java
package com.deveagles.be15_deveagles_be.features.users.query.application.service;
import com.deveagles.be15_deveagles_be.common.dto.Pagination;
import com.deveagles.be15_deveagles_be.features.users.query.application.dto.response.StaffListInfo;
import com.deveagles.be15_deveagles_be.features.users.query.application.dto.response.StaffsListResponse;
import com.deveagles.be15_deveagles_be.features.users.query.infraStrucure.repository.StaffQueryRepository;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
@Slf4j
@Service
@RequiredArgsConstructor
public class StaffQueryServiceImpl implements StaffQueryService {
private final StaffQueryRepository staffQueryRepository;
@Override
public StaffsListResponse getStaff(
Long shopId, int size, int page, String keyword, Boolean isActive) {
Pageable pageable = PageRequest.of(page - 1, size, Sort.by("staffId").descending());
Page<StaffListInfo> staffPage =
staffQueryRepository.searchStaffs(shopId, keyword, isActive, pageable);
return StaffsListResponse.builder()
.staffList(staffPage.getContent())
.pagination(
Pagination.builder()
.currentPage(page)
.totalItems(staffPage.getTotalElements())
.totalPages(staffPage.getTotalPages())
.build())
.build();
}
}