From 08a21f49f2eaf9cfc19ceb67b196cc36ba689305 Mon Sep 17 00:00:00 2001
From: buli <137736985@qq.com>
Date: 星期五, 13 五月 2022 20:52:25 +0800
Subject: [PATCH] FIxSWOPageIssue

---
 force-app/main/default/classes/SearchContactController.cls |   84 ++++++++++++++++++++++++++++++++++++------
 1 files changed, 72 insertions(+), 12 deletions(-)

diff --git a/force-app/main/default/classes/SearchContactController.cls b/force-app/main/default/classes/SearchContactController.cls
index f657e3b..c934058 100644
--- a/force-app/main/default/classes/SearchContactController.cls
+++ b/force-app/main/default/classes/SearchContactController.cls
@@ -7,18 +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(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!='']); 
+        //     }
+            
+        // } 
         if(String.isNotBlank(accountId) && String.isNotEmpty(accountId)){
             String accountIdStr = '';
             String[] accountIds = accountId.split(',');
@@ -28,7 +52,9 @@
             }
             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);
-        }        
+        } else{
+            conList = new List<Contact>();
+        }
         //2. Prepare the Contact Info
         Map<String,Contact> awsIdToContactMap = new Map<String,Contact>();
         List<String> conAWSIds = new List<String>();
@@ -42,21 +68,54 @@
     }
 
     @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)){
+                String accountIdStr = '';
+                String[] accountIds = accountId.split(',');
+                List<String> accountIdList = new List<String>();
+                for(String s : accountIds){
+                    accountIdList.add(s);
+                }
+                conListTemp = new List<Contact>([select Id,AWS_Data_Id__c,Account.Name from Contact where AccountId in:accountIdList 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 +123,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