From fb04e7c01d119c60632b4298d18fd93f3ccb3d79 Mon Sep 17 00:00:00 2001
From: Li Jun <buli@deloitte.com.cn>
Date: 星期三, 06 四月 2022 10:32:05 +0800
Subject: [PATCH] 20220405DeployProduction

---
 force-app/main/default/pages/SearchContactPage.page |  129 +++++++++++++++++++++++++++++-------------
 1 files changed, 89 insertions(+), 40 deletions(-)

diff --git a/force-app/main/default/pages/SearchContactPage.page b/force-app/main/default/pages/SearchContactPage.page
index b88431b..3f5c24f 100644
--- a/force-app/main/default/pages/SearchContactPage.page
+++ b/force-app/main/default/pages/SearchContactPage.page
@@ -1,5 +1,9 @@
 <apex:page controller="SearchContactController" showHeader="false" id="page">
+    <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}" />
     <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }" />
+    <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}" />
+    <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}" />
+    <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}" />
 
     <head>
     </head>
@@ -19,16 +23,16 @@
             var staticResources = JSON.parse('{!staticResource}');
             var contactAWSIds = JSON.parse('{!contactAWSIds}');
             var contactsInfo = JSON.parse('{!contactsInfo}');
-            var searchContactName = '';
+            var searchKeyWord = '{!searchKeyWord}';
+            var searchContactName = searchKeyWord;
             queryLeadFromAWS();
             function searchAWSContact(){
-                console.log('Search process!');
-                //1. reset table;             
+                //1. reset table;
+                blockme();             
                 resetTable();
                 //2. get contact name value 
                 searchContactName = document.getElementById('page:form:lksrch').value;
                 queryLeadFromAWS();
-
             }
             function resetTable(){
                 let queryResult = document.getElementById('QueryResult');
@@ -46,22 +50,28 @@
             function queryLeadFromAWS() {
                 //1. Prepare the payload for contact search
                 let requestSearchPayload = preparePayloadForSearchContact();
-                console.log('request payload body:'+requestSearchPayload);
                 //2. Invoke AWS Service
-                fetch(staticResources.searchUrl, {
-                    method: 'POST',
-                    body: requestSearchPayload,
-                    headers: {
-                        'Content-Type': 'application/json',
-                        'pi-token': staticResources.token
-                    }
-                }).then((data) => {
-                    return data.json();
-                }).then((result) => {
-                    if(result.object&&result.object.length>0){
-                        initContactTable(result);
-                    }                   
-                })
+                // fetch(staticResources.searchUrl, {
+                //     method: 'POST',
+                //     body: requestSearchPayload,
+                //     headers: {
+                //         'Content-Type': 'application/json',
+                //         'pi-token': staticResources.token
+                //     }
+                // }).then((data) => {
+                //     return data.json();
+                // }).then((result) => {
+                //     if(result.object&&result.object.length>0){
+                //         initContactTable(result);
+                //     }                   
+                // })
+                let queryBackContactName = function queryBackContactName(result){
+                    // if(result.object){
+                    //     initContactTable(result);
+                    // } 
+                    initContactTable(result);
+                };
+                AWSService.search(staticResources.searchUrl,requestSearchPayload,queryBackContactName,staticResources.token)
             }
             
             function redirectToParentPage(obj) {
@@ -94,11 +104,12 @@
                 let tableBody = document.createElement('TBODY');
                 table.appendChild(tableBody);
                 let headerTR = document.createElement('TR');
+                let colsHeader = ['濮撳悕','瀹㈡埛鍚嶇О','閭', '鐢佃瘽','鎵嬫満鍙�'];
                 tableBody.appendChild(headerTR);
-                for (let i = 0; i < cols.length; i++) {
+                for (let i = 0; i < colsHeader.length; i++) {
                     let td = document.createElement('TH');
                     td.width = '75';
-                    td.appendChild(document.createTextNode(cols[i]));
+                    td.appendChild(document.createTextNode(colsHeader[i]));
                     headerTR.appendChild(td);
                 }
                 //3. Init the AWS data
@@ -109,10 +120,17 @@
                     for (let j = 0; j < cols.length; j++) {
                         let td = document.createElement('TD');
                         td.width = '75';
-                        if(j == 0){
-                            td.id = contactsInfo[contactInfoTemp.AWSDataId].Id;
-                        }                        
-                        td.appendChild(document.createTextNode(contactInfoTemp[cols[j]]));
+                        if(contactInfoTemp.pi){
+                            if (!contactsInfo.hasOwnProperty(contactInfoTemp.AWSDataId)) {
+                                continue;
+                            }
+                            if(j == 0 && contactsInfo[contactInfoTemp.AWSDataId] ){
+                                td.id = contactsInfo[contactInfoTemp.AWSDataId].Id;
+                            }      
+                        }else{
+                            td.id = contactInfoTemp.sfRecordId;
+                        }              
+                        td.appendChild(document.createTextNode(contactInfoTemp[cols[j]]!=null?contactInfoTemp[cols[j]]:''));
                         if (cols[j] == 'Name') {
                             td.addEventListener("click", function (obj) {
                                 redirectToParentPage(obj);
@@ -122,33 +140,64 @@
                     }
                 }
                 myTableDiv.appendChild(table);
+                unblockUI();
             }
             function initContactTable(data) {            
-                let cols = ['Name', 'Email', 'Phone'];
+                let cols = ['Name','AccountName', 'Email', 'Phone','MobilePhone'];
                 let contactInfoList = [];
                 let awsDataIds = [];
-                for(var i=0;i<data.object.length;i++){
-                    if(data.object[i].dataId){
-                        let contactInfo = new Object();
-                        contactInfo.Name = data.object[i].lastName;
-                        contactInfo.Email = data.object[i].email;
-                        contactInfo.Phone = data.object[i].phone;
-                        contactInfo.AWSDataId = data.object[i].dataId;
-                        awsDataIds.push(contactInfo.AWSDataId);
-                        contactInfo.sfRecordId = '';
-                        contactInfoList.push(contactInfo);
-                    }                    
+                if(data.object){
+                    for(var i=0;i<data.object.length;i++){
+                        if(data.object[i].dataId){
+                            let contactInfo = new Object();
+                            contactInfo.Name = data.object[i].lastName;
+                            contactInfo.Email = data.object[i].email;
+                            contactInfo.MobilePhone = data.object[i].mobilePhone;
+                            contactInfo.Phone = data.object[i].phone;
+                            contactInfo.AWSDataId = data.object[i].dataId;
+                            contactInfo.pi = true;
+                            awsDataIds.push(contactInfo.AWSDataId);
+                            contactInfo.sfRecordId = '';
+                            contactInfoList.push(contactInfo);
+                        }                    
+                    }
                 }
                 let AWSIdToSFIdMapValue = {};
-                console.log(awsDataIds);
                 //Invoke SF BackEnd
                 Visualforce.remoting.Manager.invokeAction(
                     '{!$RemoteAction.SearchContactController.searchContacts}',
-                    JSON.stringify(awsDataIds),
+                    JSON.stringify(awsDataIds),searchContactName,'{!aId}',
                     function (result, event) {
                         if(event.status){
                             if(result.status = 'success'){
-                                contactsInfo = JSON.parse(result.message.replace(/(&quot\;)/g,"\""));
+                                if(result.message){
+                                    contactsInfo = JSON.parse(result.message.replace(/(&quot\;)/g,"\""));
+                                    if(Object.keys(contactsInfo).length>0){
+                                        for(let i=0;i<contactInfoList.length;i++){
+                                            let contactFromSF = contactsInfo[contactInfoList[i]['AWSDataId']];
+                                            if(contactFromSF){
+                                                contactInfoList[i].sfRecordId = contactFromSF['Id'];
+                                                contactInfoList[i].AccountName = contactFromSF['Account']['Name'];
+                                            }
+                                        }
+                                    }
+                                }
+                                //1. get SF 闈炴晱鎰熺殑鑱旂郴浜轰俊鎭�
+                                if(result.noPIContactList){
+                                    var noPIInfo = JSON.parse(result.noPIContactList.replace(/(&quot\;)/g,"\""));
+                                    for(let f in noPIInfo){
+                                        let contactInfo = new Object();
+                                        contactInfo.Name = noPIInfo[f].Name!=null?noPIInfo[f].Name:'';
+                                        contactInfo.Email = noPIInfo[f].Email!=null?noPIInfo[f].Email:'';
+                                        contactInfo.Phone = noPIInfo[f].Phone!=null?noPIInfo[f].Phone:'';
+                                        contactInfo.MobilePhone = noPIInfo[f].MobilePhone!=null?noPIInfo[f].MobilePhone:'';
+                                        contactInfo.AWSDataId = '';
+                                        contactInfo.sfRecordId = noPIInfo[f].Id!=null?noPIInfo[f].Id:'';
+                                        contactInfo.AccountName = noPIInfo[f]['Account']['Name'];
+                                        contactInfo.pi = false;
+                                        contactInfoList.push(contactInfo);
+                                    }
+                                }
                                 refreshTable(cols,contactInfoList);
                             }else{
                                 console.log('No result');

--
Gitblit v1.9.1