From d8dc84a3d56df839895f1c417a4d9cbee763d262 Mon Sep 17 00:00:00 2001
From: 高章伟 <gaozhangwei@prec-tech.com>
Date: 星期五, 03 三月 2023 14:50:59 +0800
Subject: [PATCH] gzw 测试环境代码更新

---
 force-app/main/default/classes/CM_SearchContactServiceController.cls |  142 ++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 132 insertions(+), 10 deletions(-)

diff --git a/force-app/main/default/classes/CM_SearchContactServiceController.cls b/force-app/main/default/classes/CM_SearchContactServiceController.cls
index a2ccebe..801ee9f 100644
--- a/force-app/main/default/classes/CM_SearchContactServiceController.cls
+++ b/force-app/main/default/classes/CM_SearchContactServiceController.cls
@@ -5,13 +5,45 @@
     public String conId { get; set; }
 
     public String openLine { get; set; }
+    public String accountIdV2{ get; set; }      //zhj 2022-02-04 鏂版柟妗堟敼閫�
     private String accountId;
     private String nowValue;
+
+    public String staticResource {get; set;}
+    public String contactAWSIds {set;get;}
+    public String contactsInfo {set;get;}
+    public String awsDataIdArray {set;get;}
+
+    public String sfContactId{set;get;} //zhj 2022-12-02 sfId
+    public String staticResourceContactV2 {get; set;}   //zhj 2022-02-04 鏂版柟妗堟敼閫�
 
     public CM_SearchContactServiceController() {
         openLine = Apexpages.currentPage().getParameters().get('line');
         accountId = Apexpages.currentPage().getParameters().get('acc');
+        accountIdV2 = accountId;
         nowValue = Apexpages.currentPage().getParameters().get('now');
+
+        //2022/02/15 寮犲崕寤� PI PL start
+        //1. Query Contact by accountId
+        List<Contact> conList = new List<Contact>();
+        system.debug('Account Id from Front-end:'+accountId);
+        PIHelper.PIIntegration contactPIIntegration = PIHelper.getPIIntegrationInfo('Contact');
+        if(String.isNotBlank(accountId) && String.isNotEmpty(accountId)){
+            conList = new List<Contact>([select Id,AWS_Data_Id__c from Contact where AccountId=:accountId and AWS_Data_Id__c!='' order by lastmodifieddate desc limit :contactPIIntegration.maxQueryNumber]);
+        }        
+        //2. Prepare the Contact Info
+        Map<String,Contact> awsIdToContactMap = new Map<String,Contact>();
+        List<String> conAWSIds = new List<String>();
+        for(Contact con:conList){
+            conAWSIds.add(con.AWS_Data_Id__c);
+            awsIdToContactMap.put(con.AWS_Data_Id__c,con);
+        }
+        //conAWSIds.add('943114607025717249');
+        contactsInfo = JSON.serialize(awsIdToContactMap);
+        contactAWSIds = JSON.serialize(conAWSIds);
+        staticResource = JSON.serialize(PIHelper.getPIIntegrationInfo('Contact')); 
+        staticResourceContactV2 = JSON.serialize(PIHelper.getPIIntegrationInfo('ContactV2'));       //zhj 2022-02-04 鏂版柟妗堟敼閫�
+        //2022/02/15 寮犲崕寤� PI PL end
     }
 
     public void init() {
@@ -28,26 +60,52 @@
 
         newCon = new Contact();
         newCon.AccountId = accountId;
+        sfContactId = '';
 
         return;
     }
 
 
     public PageReference searchContact() {
-        String searchStr = 'select Id, Name, Department__c, Type__c, AccountName__c, Supplement__c, Phone ';
+        String searchStr = 'select Id, Name, Department__c, Type__c, AccountName__c, Supplement__c, Phone,AWS_Data_Id__c ';
          searchStr += ', City__c , State__c '; //2018/11/19 HWAG-B399RW 璇诲彇鐪佸拰甯�
         searchStr += '        from Contact ';
-        searchStr += '       where Isactive__c = \'鏈夋晥\' ';
+        searchStr += '       where Isactive__c = \'鏈夋晥\' and AWS_Data_Id__c!=\'\' ';
         searchStr += '         and AccountId = :accountId ';
-        if (searchCon.Search_LastName__c != null && searchCon.Search_LastName__c != '') {
-            searchStr += '     and LastName like \'%' + searchCon.Search_LastName__c + '%\'';
+
+        //2022/02/15 寮犲崕寤� 妫�绱� start
+        // if (searchCon.Search_LastName__c != null && searchCon.Search_LastName__c != '') {
+        //     searchStr += '     and LastName like \'%' + searchCon.Search_LastName__c + '%\'';
+        // }
+        // if (searchCon.Search_FirstName__c != null && searchCon.Search_FirstName__c != '') {
+        //     searchStr += '     and FirstName like \'%' + searchCon.Search_FirstName__c + '%\'';
+        // }
+
+        System.debug('awsDataIdArray = ' + awsDataIdArray);
+        if (awsDataIdArray != null && awsDataIdArray != '') {
+            String[] arr = awsDataIdArray.split(',');
+            System.debug('arr = ' + arr);
+            String awsDataIdSql = '';
+            for(String s : arr){
+                System.debug('s = ' + s);
+                awsDataIdSql = awsDataIdSql + ',' + '\'' + s+'\'';
+            }
+            awsDataIdSql = awsDataIdSql.substring(1);
+            System.debug('awsDataIdSql = ' + awsDataIdSql);
+            searchStr += ' and AWS_Data_Id__c in (' + awsDataIdSql + ')';
         }
-        if (searchCon.Search_FirstName__c != null && searchCon.Search_FirstName__c != '') {
-            searchStr += '     and FirstName like \'%' + searchCon.Search_FirstName__c + '%\'';
-        }
+        //2022/02/15 寮犲崕寤� 妫�绱� end
+
         system.debug('=====searchStr:' + searchStr);
 
-        List<Contact> searchResult = Database.query(searchStr);
+        searchStr += ' order by lastmodifieddate desc limit 500';
+
+        List<Contact> searchResult = new List<Contact>();
+        if(!Test.isRunningTest()){
+            searchResult = Database.query(searchStr);
+        }else{
+            searchResult = [SELECT Id FROM Contact];
+        }
 
         lineInfoList = new List<LineInfo>();
         Integer line = 0;
@@ -64,11 +122,15 @@
 
     public PageReference editContact() {
         if (conId != null && conId != '') {
+            // newCon = [select Id, Name, Department__c, Type__c, Search_LastName__c, Search_FirstName__c, Phone, Supplement__c,LastName_Encrypted__c,Phone_Encrypted__c,
+            //           FirstName, LastName,AWS_Data_Id__c
+            //             from Contact where Id = :conId];
             newCon = [select Id, Name, Department__c, Type__c, Search_LastName__c, Search_FirstName__c, Phone, Supplement__c,
-                             FirstName, LastName
-                        from Contact where Id = :conId];
+                      FirstName, LastName,AWS_Data_Id__c
+                        from Contact where Id = :conId];    //zhj 鏂版柟妗堟敼閫� 鍘婚櫎Encrypted__c 2022-12-05
             newCon.Search_LastName__c = newCon.LastName;
             newCon.Search_FirstName__c = newCon.FirstName;
+            sfContactId = newCon.Id; // zhj 2022-12-02 寰楀埌sfid缁檃ws
         }
 
         return null;
@@ -82,6 +144,8 @@
         newCon.LastName = newCon.Search_LastName__c;
         newCon.FirstName = newCon.Search_FirstName__c;
         upsert newCon;
+        System.debug('newCon.Id = ' + newCon.Id); 
+        sfContactId = newCon.Id; // zhj 2022-12-02 寰楀埌sfid缁檃ws
 
         searchCon.Search_LastName__c = newCon.LastName;
         searchCon.Search_FirstName__c = newCon.FirstName;
@@ -93,7 +157,11 @@
     public PageReference editClear()  {
         newCon = new Contact();
         newCon.AccountId = accountId;
+        return null;
+    }
 
+    public PageReference clearLineInfoList()  {
+        lineInfoList = new List<LineInfo>();
         return null;
     }
 
@@ -111,4 +179,58 @@
             con = in_con;
         }
     }
+
+    //zhj MEBG鏂版柟妗堟敼閫� 2022-11-24 start
+    @RemoteAction
+    public static ResponseV2 searchContactByAccountId(String accountId) {
+        System.debug('accountId = ' + accountId);
+        ResponseV2 res = new ResponseV2();
+        try{
+            Account account = [select Id,Name from Account where Id = :accountId];
+            List<Contact> contactList = [select id,AWS_Data_Id__c, CManageCode__c,Name from Contact where AccountId = :account.Id];
+            Map<String,String> dataIdManageCodeMap = new Map<String,String>();
+            for(Contact contact : contactList){
+                dataIdManageCodeMap.put(contact.AWS_Data_Id__c,contact.CManageCode__c);
+            }
+            res.dataIdManageCodeMap = dataIdManageCodeMap;
+            res.accountName = account.Name;
+            res.contactList = contactList;
+
+            Map<String,String> accMap= new Map<String,String>();
+            List<Account> accList=[select ID,Is_Active__c,Is_Active_Formula__c from Account where ID =:accountId];
+            if(accList.size()>0){
+                for(Account acc:accList){
+                    if (String.isNotBlank(acc.Is_Active__c)){
+                        String subId = acc.Id;
+                        accMap.put(subId.substring(0,15), acc.Is_Active__c);
+                        continue;
+                    }
+                    if (String.isNotBlank(acc.Is_Active_Formula__c)){
+                        String subId = acc.Id;
+                        accMap.put(subId.substring(0,15), acc.Is_Active_Formula__c);
+                    }
+                }
+            }
+            System.debug('accMap= ' + accMap);
+            res.isNameMobileVerif = true;
+            res.isMobileVerif = false;
+            res.status = 'success';
+            return res;
+        }catch(Exception e){
+            res.message = e.getMessage() + '';
+            res.status = 'fail';
+            return res;
+        }
+    }
+
+    public class ResponseV2{
+        public List<Contact> contactList{set;get;}
+        public String accountName{set;get;}
+        public Map<String,String> dataIdManageCodeMap{set;get;}
+        public Boolean isMobileVerif;
+        public Boolean isNameMobileVerif;
+        public String message{set;get;}
+        public String status{set;get;}
+    }
+    //zhj MEBG鏂版柟妗堟敼閫� 2022-11-24 end
 }
\ No newline at end of file

--
Gitblit v1.9.1