From b823c7f3569cf9368e2245846e918f78f32e903a Mon Sep 17 00:00:00 2001
From: GWY <guweiyiscp096@foxmail.com>
Date: 星期五, 15 四月 2022 11:38:47 +0800
Subject: [PATCH] Merge branch 'master' of http://47.92.229.245:8089/r/OlympusSSBG

---
 force-app/main/default/classes/SearchContactController.cls |   82 +++++++++++++++++++++++++++++++----------
 1 files changed, 62 insertions(+), 20 deletions(-)

diff --git a/force-app/main/default/classes/SearchContactController.cls b/force-app/main/default/classes/SearchContactController.cls
index f657e3b..c2f9efa 100644
--- a/force-app/main/default/classes/SearchContactController.cls
+++ b/force-app/main/default/classes/SearchContactController.cls
@@ -7,28 +7,42 @@
  *      02/08/2022 - Bubba Li - Initial Code.
  * 
  * */
-public without sharing class SearchContactController {
+public with sharing class SearchContactController {
     public String searchKeyWord{set;get;}
     public String staticResource {get; set;}
     public String contactAWSIds {set;get;}
     public String contactsInfo {set;get;}
     public String PIPL_Search_Contact_Label{set;get;}
+    public String aId{set;get;}
+    public Boolean showHeader{set;get;}
+    public static Boolean checkNullString(String inputString){
+        if(String.isEmpty(inputString)||String.isBlank(inputString)){
+            return true;
+        }
+        return false;
+    }
     public SearchContactController() {
         String accountId = ApexPages.currentPage().getParameters().get('accountId');
+        searchKeyWord = ApexPages.currentPage().getParameters().get('searchContactKeyWord');
+        aId = accountId;
         PIPL_Search_Contact_Label = Label.PIPL_Search_Contact_Label;
+        showHeader = false;
+        if(ApexPages.currentPage().getParameters().containskey('showheader')){
+            showHeader = Boolean.valueof(ApexPages.currentPage().getParameters().get('showheader'));
+        }
         //1. Query Contact by accountId
         List<Contact> conList = new List<Contact>();
         system.debug('Account Id from Front-end:'+accountId);
-        if(String.isNotBlank(accountId) && String.isNotEmpty(accountId)){
-            String accountIdStr = '';
-            String[] accountIds = accountId.split(',');
-            List<String> accountIdList = new List<String>();
-            for(String s : accountIds){
-                accountIdList.add(s);
+        if(checkNullString(accountId)&&checkNullString(searchKeyWord)){
+            conList = new List<Contact>();
+        }else{
+            if(checkNullString(accountId)){
+                conList = new List<Contact>(); 
+            }else {
+                conList = new List<Contact>([select Id,AWS_Data_Id__c,Account.Name from Contact  where AccountId=:accountId and AWS_Data_Id__c!='']); 
             }
-            conList = new List<Contact>([select Id,AWS_Data_Id__c from Contact where AccountId in:accountIdList and AWS_Data_Id__c!='']);
-            System.debug('conList:'+conList);
-        }        
+            
+        }    
         //2. Prepare the Contact Info
         Map<String,Contact> awsIdToContactMap = new Map<String,Contact>();
         List<String> conAWSIds = new List<String>();
@@ -42,21 +56,48 @@
     }
 
     @RemoteAction
-    public static Response searchContacts(String awsContactIds) {
+    public static Response searchContacts(String awsContactIds,String searchContactName,String accountId) {
+        system.debug('awsContactIds = ' + awsContactIds);
         Response resp = new Response();
         resp.status = 'fail';
-        if(String.isBlank(awsContactIds)||String.isEmpty(awsContactIds)){
-            return resp;
-        }
-        List<String> awsDataIds = (List<String>) JSON.deserialize(awsContactIds, List<String>.class);
         Map<String,Contact> awsIdToContactMapTemp = new Map<String,Contact>();
-        List<Contact> conListTemp = new List<Contact>([select Id,AWS_Data_Id__c from Contact where AWS_Data_Id__c in:awsDataIds]);
-        for(Contact con:conListTemp){
-            awsIdToContactMapTemp.put(con.AWS_Data_Id__c,con);
+        if(!checkNullString(awsContactIds)){
+            List<String> awsDataIds = (List<String>) JSON.deserialize(awsContactIds, List<String>.class);
+            List<Contact> conListTemp = new List<Contact>();
+            if(!checkNullString(accountId)){
+                conListTemp = new List<Contact>([select Id,AWS_Data_Id__c,Account.Name from Contact where AccountId=:accountId and AWS_Data_Id__c in:awsDataIds]);
+            }else {
+                conListTemp = new List<Contact>([select Id,AWS_Data_Id__c,Account.Name from Contact where AWS_Data_Id__c in:awsDataIds]);
+            }
+            for(Contact con:conListTemp){
+                awsIdToContactMapTemp.put(con.AWS_Data_Id__c,con);
+            }
         }
-        if(awsIdToContactMapTemp.keySet().size()>0){
+        System.debug('awsIdToContactMapTemp = ' + awsIdToContactMapTemp);
+        Map<String,Contact> noPIContactMapTemp = new Map<String,Contact>();
+        List<Contact> partnerContactList = AWSServiceTool.getNoPIContact(searchContactName,accountId);
+        System.debug('partnerContactList = ' + partnerContactList);            
+        if(partnerContactList.size()>0){
+            for(Contact con:partnerContactList){
+                noPIContactMapTemp.put(con.Id,con);
+            }               
+        }
+        if(awsIdToContactMapTemp.keySet().size()>0 ||noPIContactMapTemp.keySet().size()>0){
             resp.status = 'success';
-            resp.message = JSON.serialize(awsIdToContactMapTemp);
+            resp.message = JSON.serialize(awsIdToContactMapTemp);// PI contact info
+            resp.noPIContactList = JSON.serialize(noPIContactMapTemp);//NoPI contact info
+        }
+        return resp;
+    }
+
+    @RemoteAction
+    public static Response searchContactsNoPI(String contactName) {
+        Response resp = new Response();
+        resp.status = 'fail';
+        List<Contact> conListTemp = new List<Contact>([select Id,Name,Account.Name,Phone,Email,MobilePhone from Contact where Name like :contactName]);
+        if(conListTemp.size() > 0){
+            resp.status = 'success';
+            resp.message = JSON.serialize(conListTemp);
         }
         return resp;
     }
@@ -64,5 +105,6 @@
     public class Response{
         public String message{set;get;}
         public String status{set;get;}
+        public String noPIContactList{set;get;}
     }
 }
\ No newline at end of file

--
Gitblit v1.9.1