com.bld.commons.controller.PerformanceSearchController Maven / Gradle / Ivy
The newest version!
package com.bld.commons.controller;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
import com.bld.commons.controller.mapper.PerformanceModelMapper;
import com.bld.commons.reflection.model.BaseParameter;
import com.bld.commons.reflection.model.QueryParameter;
import com.bld.commons.utils.data.BaseModel;
import com.bld.commons.utils.data.CollectionResponse;
import com.bld.commons.utils.data.ObjectResponse;
import jakarta.validation.Valid;
public abstract class PerformanceSearchController,PM extends BaseModel, P extends BaseParameter> extends BaseSearchController>{
@Autowired
private PerformanceModelMapper modelMapper;
@PostMapping(path = "/performance/search", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
@Valid
@Transactional
public CollectionResponse speedUpFindByFilter(@RequestBody P baseParameter) throws Exception {
QueryParameter queryFilter = new QueryParameter<>(baseParameter);
CollectionResponse response = new CollectionResponse<>();
List list = this.jpaService.findByFilter(queryFilter);
Long totalCount = this.jpaService.countByFilter(queryFilter);
List listModel = new ArrayList<>();
for(E entity:list) {
PM model=this.modelMapper().convertToPerformanceModel(entity);
listModel.add(model);
}
response.setData(listModel);
response.setTotalCount(totalCount != null ? totalCount : Long.valueOf(0));
if(queryFilter.getPageable()!=null) {
response.setPageNumber(queryFilter.getPageable().getPageNumber());
response.setPageSize(queryFilter.getPageable().getPageSize());
}
return response;
}
@Override
protected PerformanceModelMapper modelMapper() {
return this.modelMapper;
}
@PostMapping(path = "/search", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
@Valid
@Transactional
public CollectionResponse findByFilter(@RequestBody P baseParameter) throws Exception {
return super.findByFilter(baseParameter);
}
/**
* Count by filter.
*
* @param baseParameter the base parameter
* @return the object response
* @throws Exception the exception
*/
@PostMapping(path = "/count", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
@Valid
@Transactional
public ObjectResponse countByFilter(@RequestBody P baseParameter) throws Exception {
return super.countByFilter(baseParameter);
}
/**
* Single result find by filter.
*
* @param baseParameter the base parameter
* @return the object response
* @throws Exception the exception
*/
@PostMapping(path="/search/single-result", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
@Valid
@Transactional
public ObjectResponse singleResultFindByFilter(@RequestBody P baseParameter) throws Exception{
return super.singleResultFindByFilter(baseParameter);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy