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