public with sharing class CM_SearchContactServiceController {
|
public Contact newCon { get; set; }
|
public Contact searchCon { get; set; }
|
public List<LineInfo> lineInfoList { get; set; }
|
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() {
|
searchCon = new Contact();
|
if (nowValue != null && nowValue != '') {
|
searchCon = [select Id, Name, Department__c, Type__c, Search_LastName__c, Search_FirstName__c, Phone, Supplement__c,
|
FirstName, LastName
|
from Contact where Id = :nowValue];
|
searchCon.Search_LastName__c = searchCon.LastName;
|
searchCon.Search_FirstName__c = searchCon.FirstName;
|
}
|
|
searchContact();
|
|
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,AWS_Data_Id__c ';
|
searchStr += ', City__c , State__c '; //2018/11/19 HWAG-B399RW 读取省和市
|
searchStr += ' from Contact ';
|
searchStr += ' where Isactive__c = \'有效\' and AWS_Data_Id__c!=\'\' ';
|
searchStr += ' and AccountId = :accountId ';
|
|
//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 + ')';
|
}
|
//2022/02/15 张华建 检索 end
|
|
system.debug('=====searchStr:' + 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;
|
for (Contact con : searchResult) {
|
line += 1;
|
LineInfo li = new LineInfo(line, con);
|
lineInfoList.add(li);
|
}
|
|
editClear();
|
|
return null;
|
}
|
|
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,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给aws
|
}
|
|
return null;
|
}
|
|
public PageReference saveNew() {
|
if (newCon.Search_LastName__c == null || newCon.Search_LastName__c == '') {
|
newCon.Search_LastName__c.addError('必须填写。');
|
return null;
|
}
|
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给aws
|
|
searchCon.Search_LastName__c = newCon.LastName;
|
searchCon.Search_FirstName__c = newCon.FirstName;
|
searchContact();
|
|
return null;
|
}
|
|
public PageReference editClear() {
|
newCon = new Contact();
|
newCon.AccountId = accountId;
|
return null;
|
}
|
|
public PageReference clearLineInfoList() {
|
lineInfoList = new List<LineInfo>();
|
return null;
|
}
|
|
class LineInfo {
|
public Integer lineNo { get; set; }
|
public Contact con { get; set; }
|
|
public LineInfo(Integer in_line) {
|
lineNo = in_line;
|
con = new Contact();
|
}
|
|
public LineInfo(Integer in_line, Contact in_con) {
|
lineNo = in_line;
|
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
|
}
|