62 lines
2.9 KiB
Java
62 lines
2.9 KiB
Java
package com.iconplus.smartproc.service.metodepenyampaian;
|
|
|
|
import com.iconplus.smartproc.helper.model.Pagination;
|
|
import com.iconplus.smartproc.helper.service.BaseService;
|
|
import com.iconplus.smartproc.model.projection.MetodePenyampaianView;
|
|
import com.iconplus.smartproc.model.request.MetodePenyampaianRequest;
|
|
import com.iconplus.smartproc.model.response.GetListMetodePenyampaianResponse;
|
|
import com.iconplus.smartproc.model.response.MetodePenyampaianResponse;
|
|
import com.iconplus.smartproc.repository.MetodePenyampaianRepository;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.data.domain.Page;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
@Service
|
|
public class GetListMetodePenyampaianService implements BaseService<MetodePenyampaianRequest, GetListMetodePenyampaianResponse> {
|
|
|
|
private MetodePenyampaianRepository metodePenyampaianRepository;
|
|
|
|
public GetListMetodePenyampaianService(MetodePenyampaianRepository metodePenyampaianRepository) {
|
|
this.metodePenyampaianRepository = metodePenyampaianRepository;
|
|
}
|
|
|
|
@Override
|
|
public GetListMetodePenyampaianResponse execute(MetodePenyampaianRequest input) {
|
|
validateRequest(input);
|
|
List<MetodePenyampaianResponse> metodePenyampaianResponseList = new ArrayList<>();
|
|
Page<MetodePenyampaianView> metodePenyampaianViews = metodePenyampaianRepository.getAllMetodePenyampaian(input.getSearch(), input.getPageable());
|
|
|
|
for (MetodePenyampaianView metodePenyampaianView : metodePenyampaianViews) {
|
|
MetodePenyampaianResponse metodePenyampaianResponse = MetodePenyampaianResponse.builder()
|
|
.id(metodePenyampaianView.getId())
|
|
.metodePenyampaian(metodePenyampaianView.getMetodePenyampaian())
|
|
.keterangan(metodePenyampaianView.getKeterangan())
|
|
.isActive(metodePenyampaianView.getIsActive())
|
|
.isDelete(metodePenyampaianView.getIsDelete())
|
|
.build();
|
|
metodePenyampaianResponseList.add(metodePenyampaianResponse);
|
|
}
|
|
|
|
return GetListMetodePenyampaianResponse.builder()
|
|
.data(metodePenyampaianResponseList)
|
|
.pagination(Pagination.builder()
|
|
.pageSize(input.getPageable().getPageSize())
|
|
.currentPage(input.getPageable().getPageNumber())
|
|
.totalPages(metodePenyampaianViews.getTotalPages())
|
|
.totalRecords(metodePenyampaianViews.getTotalElements())
|
|
.isFirstPage(metodePenyampaianViews.isFirst())
|
|
.isLastPage(metodePenyampaianViews.isLast())
|
|
.build())
|
|
.build();
|
|
}
|
|
|
|
private void validateRequest(MetodePenyampaianRequest input) {
|
|
if (StringUtils.isNotBlank(input.getSearch())) {
|
|
input.setSearch('%'+ input.getSearch().toUpperCase()+'%');
|
|
}
|
|
}
|
|
}
|