From aa0f9381d424b98e86845c6da21e2fd8640fe056 Mon Sep 17 00:00:00 2001
From: wayne <wayne8692wayne8692@gmail.com>
Date: 星期一, 21 二月 2022 18:32:45 +0800
Subject: [PATCH] [update] 若顧問狀態非啟用時,則搜尋及推薦會找不到該顧問

---
 pamapi/src/main/java/com/pollex/pam/service/ConsultantQuerySpec.java |    5 +++++
 pamapi/src/main/java/com/pollex/pam/service/ConsultantService.java   |    2 ++
 2 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/pamapi/src/main/java/com/pollex/pam/service/ConsultantQuerySpec.java b/pamapi/src/main/java/com/pollex/pam/service/ConsultantQuerySpec.java
index 8e14d66..cc9d20d 100644
--- a/pamapi/src/main/java/com/pollex/pam/service/ConsultantQuerySpec.java
+++ b/pamapi/src/main/java/com/pollex/pam/service/ConsultantQuerySpec.java
@@ -1,6 +1,7 @@
 package com.pollex.pam.service;
 
 import com.pollex.pam.domain.Consultant;
+import com.pollex.pam.enums.ConsultantStatusEnum;
 import com.pollex.pam.service.dto.FastQueryConsultantParam;
 import com.pollex.pam.service.dto.StrictQueryConsultantParam;
 import org.apache.commons.lang3.StringUtils;
@@ -23,6 +24,8 @@
             @Override
             public Predicate toPredicate(Root<Consultant> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) {
                 Set<Predicate> set = new HashSet<>();
+
+                set.add(criteriaBuilder.equal(root.get("status"), ConsultantStatusEnum.AVAILABLE));
 
                 param.getCommunicationStyles().forEach((communicationStyle) -> {
                     set.add(criteriaBuilder.like(root.get("communicationStyle"), "%" + communicationStyle + "%"));
@@ -61,6 +64,8 @@
             public Predicate toPredicate(Root<Consultant> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) {
                 Set<Predicate> set = new HashSet<>();
 
+                set.add(criteriaBuilder.equal(root.get("status"), ConsultantStatusEnum.AVAILABLE));
+
                 if(Objects.nonNull(param.getGender())) {
                     set.add(criteriaBuilder.equal(root.get("gender"), param.getGender()));
                 }
diff --git a/pamapi/src/main/java/com/pollex/pam/service/ConsultantService.java b/pamapi/src/main/java/com/pollex/pam/service/ConsultantService.java
index 246eef7..e8d7f82 100644
--- a/pamapi/src/main/java/com/pollex/pam/service/ConsultantService.java
+++ b/pamapi/src/main/java/com/pollex/pam/service/ConsultantService.java
@@ -6,6 +6,7 @@
 import com.pollex.pam.domain.Consultant;
 import com.pollex.pam.domain.CustomerFavoriteConsultant;
 import com.pollex.pam.domain.Satisfaction;
+import com.pollex.pam.enums.ConsultantStatusEnum;
 import com.pollex.pam.enums.ContactStatusEnum;
 import com.pollex.pam.enums.LoginResult;
 import com.pollex.pam.repository.ConsultantRepository;
@@ -150,6 +151,7 @@
     public List<ConsultantDTO> getRecommendConsultantList() {
         return consultantRepository.findAllByRecommendIsTrue()
             .stream()
+            .filter(consultant -> consultant.getStatus() == ConsultantStatusEnum.AVAILABLE)
             .map(consultantMapper::toDto)
             .collect(Collectors.toList());
     }

--
Gitblit v1.8.0