[update] #todo 129741 快速與嚴選改post method,並將快速篩選的溝通方式改多選
| | |
| | | http get: http://localhost:8080/api/consultant/strictQuery |
| | | http post: http://localhost:8080/api/consultant/strictQuery |
| | | |
| | | request body: |
| | | { |
| | | { |
| | | "gender":"female", |
| | | "avgScore":5, |
| | | "status": "online", // phase 1 disalbed |
| | |
| | | http get: http://localhost:8080/api/consultant/fastQuery |
| | | http post: http://localhost:8080/api/consultant/fastQuery |
| | | |
| | | request body: |
| | | { |
| | |
| | | public Predicate toPredicate(Root<Consultant> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) { |
| | | Set<Predicate> set = new HashSet<>(); |
| | | |
| | | if(StringUtils.isNotEmpty(param.getCommunicationStyle())) { |
| | | set.add(criteriaBuilder.like(root.get("concept"), "%" + param.getCommunicationStyle())); |
| | | } |
| | | param.getCommunicationStyles().forEach((communicationStyle) -> { |
| | | set.add(criteriaBuilder.like(root.get("concept"), "%" + param.getCommunicationStyles())); |
| | | }); |
| | | |
| | | if(Objects.nonNull(param.getGender())) { |
| | | set.add(criteriaBuilder.equal(root.get("gender"), param.getGender())); |
| | |
| | | |
| | | Predicate[] predicates = new Predicate[set.size()]; |
| | | predicates = set.toArray(predicates); |
| | | return criteriaBuilder.and(predicates); |
| | | return criteriaBuilder.or(predicates); |
| | | } |
| | | }; |
| | | } |
| | |
| | | |
| | | import com.pollex.pam.enums.GenderEnum; |
| | | |
| | | import java.util.List; |
| | | |
| | | public class FastQueryConsultantParam { |
| | | private GenderEnum gender; |
| | | private String communicationStyle; |
| | | private List<String> communicationStyles; |
| | | private Number avgScore; |
| | | private String status; |
| | | |
| | |
| | | this.gender = gender; |
| | | } |
| | | |
| | | public String getCommunicationStyle() { |
| | | return communicationStyle; |
| | | public List<String> getCommunicationStyles() { |
| | | return communicationStyles; |
| | | } |
| | | |
| | | public void setCommunicationStyle(String communicationStyle) { |
| | | this.communicationStyle = communicationStyle; |
| | | public void setCommunicationStyles(List<String> communicationStyles) { |
| | | this.communicationStyles = communicationStyles; |
| | | } |
| | | |
| | | public Number getAvgScore() { |
| | |
| | | return new ResponseEntity<>(HttpStatus.ACCEPTED); |
| | | } |
| | | |
| | | @GetMapping("/strictQuery") |
| | | @PostMapping("/strictQuery") |
| | | public ResponseEntity<List<ConsultantDTO>> strictQueryConsultant(@RequestBody StrictQueryConsultantParam param) { |
| | | List<ConsultantDTO> queryResult = consultantService.strictQueryConsultant(param); |
| | | return new ResponseEntity<>(queryResult, HttpStatus.OK); |
| | | } |
| | | |
| | | @GetMapping("/fastQuery") |
| | | @PostMapping("/fastQuery") |
| | | public ResponseEntity<List<ConsultantDTO>> fastQueryConsultant(@RequestBody FastQueryConsultantParam param) { |
| | | List<ConsultantDTO> queryResult = consultantService.fastQueryConsultant(param); |
| | | return new ResponseEntity<>(queryResult, HttpStatus.OK); |