let  AWSService = {}; 
 | 
AWSService = { 
 | 
    sfSessionId : '', 
 | 
    insertModule : 'Insert AWS ', 
 | 
    updateModule : 'Update AWS ', 
 | 
    queryModule : 'Query AWS ', 
 | 
    searchModule : 'Search AWS ', 
 | 
    confirmTrans : 'Confirm Transaction To AWS', 
 | 
    successStatus : 'success', 
 | 
    failStatus : 'fail', 
 | 
    insertCalloutLog:function(module,url,request,response,status){ 
 | 
       if(AWSService.sfSessionId){ 
 | 
           sforce.connection.sessionId = AWSService.sfSessionId; 
 | 
           let transLog = new sforce.SObject('Transaction_Log__c'); 
 | 
           transLog.AWS_Data_Id__c = ''; 
 | 
           transLog.Module__c = module; 
 | 
           transLog.Interface_URL__c = url; 
 | 
           transLog.Request__c = request; 
 | 
           transLog.Response__c = response; 
 | 
           transLog.Status__c = status; 
 | 
           let insertLogResult = sforce.connection.create([transLog]);      
 | 
           if(insertLogResult[0].getBoolean(AWSService.successStatus)) { 
 | 
               console.log('Insert Log Id: ' + insertLogResult[0].id); 
 | 
               return insertLogResult[0].id; 
 | 
           }else { 
 | 
               console.log('Faield to insert log'); 
 | 
               return ''; 
 | 
           } 
 | 
       }        
 | 
   }, 
 | 
   //Search Contact 
 | 
    search:function(searchUrl,requestSearchPayload,searchBack,token) { 
 | 
        let payloadstr= null; 
 | 
        if (requestSearchPayload) { 
 | 
            if (typeof requestSearchPayload == 'string') { 
 | 
                payloadstr = requestSearchPayload; 
 | 
            }else{ 
 | 
                payloadstr = JSON.stringify(requestSearchPayload); 
 | 
            } 
 | 
        } 
 | 
        let para = { 
 | 
            url:searchUrl, 
 | 
            headers: { 
 | 
                'Content-Type': 'application/json', 
 | 
                'pi-token': token 
 | 
            }, 
 | 
            type: "post", 
 | 
            success: function (result) { 
 | 
                AWSService.insertCalloutLog(AWSService.searchModule,searchUrl,JSON.stringify(requestSearchPayload),JSON.stringify(result),AWSService.successStatus); 
 | 
                searchBack(result);   
 | 
            }, 
 | 
            error: function (error){ 
 | 
             //错误相关处理 404属于该处理(经测试) 
 | 
             //还可能是"timeout", "error", "notmodified" 和 "parsererror"。 
 | 
             AWSService.insertCalloutLog(AWSService.searchModule,searchUrl,JSON.stringify(requestSearchPayload),JSON.stringify(error),AWSService.failStatus); 
 | 
             console.log('错误处理',error); 
 | 
            } 
 | 
        }; 
 | 
        if (payloadstr) { 
 | 
            para.data = payloadstr; 
 | 
        } 
 | 
        jQuery.ajax(para); 
 | 
  
 | 
   }, 
 | 
  
 | 
   //query 
 | 
    query:function(queryURL, awsDataId, queryback, token) { 
 | 
        if(awsDataId){ 
 | 
        let para = { 
 | 
            url:queryURL + '?dataId=' + awsDataId, 
 | 
            headers: { 
 | 
                'Content-Type': 'application/json', 
 | 
                'pi-token': token 
 | 
            }, 
 | 
            type: "get", 
 | 
            success: function (data) { 
 | 
                AWSService.insertCalloutLog(AWSService.queryModule,queryURL,queryURL + '?dataId=' + awsDataId,JSON.stringify(data),AWSService.successStatus); 
 | 
                queryback(data);  
 | 
            }, 
 | 
            error: function (error){ 
 | 
             //错误相关处理 404属于该处理(经测试) 
 | 
             //还可能是"timeout", "error", "notmodified" 和 "parsererror"。 
 | 
                AWSService.insertCalloutLog(AWSService.queryModule,queryURL,queryURL + '?dataId=' + awsDataId,JSON.stringify(error),AWSService.failStatus); 
 | 
                console.log(error); 
 | 
            } 
 | 
        }; 
 | 
        jQuery.ajax(para);}else{ 
 | 
            unblockUI(); 
 | 
        }   
 | 
   }, 
 | 
  
 | 
   //queryRepair 
 | 
    queryRepair:function(queryURL, awsDataId,Id,ContactId,queryback, token) { 
 | 
        if(awsDataId){ 
 | 
        let para = { 
 | 
            url:queryURL + '?dataId=' + awsDataId, 
 | 
            headers: { 
 | 
                'Content-Type': 'application/json', 
 | 
                'pi-token': token 
 | 
            }, 
 | 
            type: "get", 
 | 
            success: function (data) { 
 | 
                AWSService.insertCalloutLog(AWSService.queryModule,queryURL,queryURL + '?dataId=' + awsDataId,JSON.stringify(data),AWSService.successStatus); 
 | 
                queryback(data,Id,ContactId);  
 | 
            }, 
 | 
            error: function (error){ 
 | 
             //错误相关处理 404属于该处理(经测试) 
 | 
             //还可能是"timeout", "error", "notmodified" 和 "parsererror"。 
 | 
                AWSService.insertCalloutLog(AWSService.queryModule,queryURL,queryURL + '?dataId=' + awsDataId,JSON.stringify(error),AWSService.failStatus); 
 | 
                console.log(error); 
 | 
            } 
 | 
        }; 
 | 
        jQuery.ajax(para);}else{ 
 | 
            unblockUI(); 
 | 
        }  
 | 
        
 | 
   }, 
 | 
  
 | 
   //queryAddress 
 | 
    queryAddress:function(queryURL, addressName, queryback, token) { 
 | 
        if(addressName){ 
 | 
        let para = { 
 | 
            url:queryURL + '?detailedAddress=' + addressName, 
 | 
            headers: { 
 | 
                'Content-Type': 'application/json', 
 | 
                'pi-token': token 
 | 
            }, 
 | 
            type: "get", 
 | 
            success: function (data) { 
 | 
                AWSService.insertCalloutLog(AWSService.queryModule,queryURL,queryURL + '?detailedAddress=' + awsDataId,JSON.stringify(data),AWSService.successStatus); 
 | 
                queryback(data);  
 | 
            }, 
 | 
            error: function (error){ 
 | 
             //错误相关处理 404属于该处理(经测试) 
 | 
             //还可能是"timeout", "error", "notmodified" 和 "parsererror"。 
 | 
                AWSService.insertCalloutLog(AWSService.queryModule,queryURL,queryURL + '?detailedAddress=' + awsDataId,JSON.stringify(error),AWSService.failStatus); 
 | 
                console.log(error); 
 | 
            } 
 | 
        }; 
 | 
        jQuery.ajax(para);}else{ 
 | 
            unblockUI(); 
 | 
        }  
 | 
  
 | 
   }, 
 | 
  
 | 
   //insert 
 | 
    insert:function(newURL, payloadJson, payloadForNewPI, controllerSaveMethod, token, transactionURL,isNewMode,insertOrUpdateBack,redirectCallBack) { 
 | 
       console.log('Process New PI Data'); 
 | 
       console.log(JSON.stringify(payloadForNewPI)); 
 | 
  
 | 
  
 | 
       let payloadstr= null; 
 | 
       if (payloadForNewPI) { 
 | 
           if (typeof payloadForNewPI == 'string') { 
 | 
               payloadstr = payloadForNewPI; 
 | 
           }else{ 
 | 
               payloadstr = JSON.stringify(payloadForNewPI); 
 | 
           } 
 | 
       } 
 | 
       let para = { 
 | 
           url:newURL, 
 | 
           headers: { 
 | 
               'Content-Type': 'application/json', 
 | 
               'pi-token': token 
 | 
           }, 
 | 
           type: "post", 
 | 
           success: function (result) { 
 | 
                AWSService.insertCalloutLog(AWSService.insertModule,newURL,JSON.stringify(payloadForNewPI),JSON.stringify(result),AWSService.successStatus); 
 | 
                AWSService.back(result, payloadJson, transactionURL, token, controllerSaveMethod,isNewMode,insertOrUpdateBack,redirectCallBack); 
 | 
           }, 
 | 
           error: function (error){ 
 | 
            //错误相关处理 404属于该处理(经测试) 
 | 
            //还可能是"timeout", "error", "notmodified" 和 "parsererror"。 
 | 
            AWSService.insertCalloutLog(AWSService.insertModule,newURL,JSON.stringify(payloadForNewPI),JSON.stringify(error),AWSService.failStatus); 
 | 
           console.log(error); 
 | 
           } 
 | 
       }; 
 | 
       if (payloadstr) { 
 | 
           para.data = payloadstr; 
 | 
       } 
 | 
       jQuery.ajax(para); 
 | 
  
 | 
        
 | 
   }, 
 | 
  
 | 
   //update 
 | 
    update:function(updateURL, payloadJson, payloadForNewPI, controllerSaveMethod, token, transactionURL,isNewMode,insertOrUpdateBack,redirectCallBack) { 
 | 
       console.log('Process New PI Data'); 
 | 
       console.log(JSON.stringify(payloadForNewPI)); 
 | 
       if(payloadForNewPI && JSON.parse(payloadForNewPI)[0] && JSON.parse(payloadForNewPI)[0]['dataId']){ 
 | 
       let payloadstr= null; 
 | 
       if (payloadForNewPI) { 
 | 
           if (typeof payloadForNewPI == 'string') { 
 | 
               payloadstr = payloadForNewPI; 
 | 
           }else{ 
 | 
               payloadstr = JSON.stringify(payloadForNewPI); 
 | 
           } 
 | 
       } 
 | 
       let para = { 
 | 
           url:updateURL, 
 | 
           headers: { 
 | 
               'Content-Type': 'application/json', 
 | 
               'pi-token': token 
 | 
           }, 
 | 
           type: "post", 
 | 
           success: function (result) { 
 | 
                AWSService.insertCalloutLog(AWSService.updateModule,updateURL,JSON.stringify(payloadForNewPI),JSON.stringify(result),AWSService.successStatus); 
 | 
                AWSService.back(result, payloadJson, transactionURL, token, controllerSaveMethod,isNewMode,insertOrUpdateBack,redirectCallBack); 
 | 
           }, 
 | 
           error: function (error){ 
 | 
            //错误相关处理 404属于该处理(经测试) 
 | 
            //还可能是"timeout", "error", "notmodified" 和 "parsererror"。 
 | 
            AWSService.insertCalloutLog(AWSService.updateModule,updateURL,JSON.stringify(payloadForNewPI),JSON.stringify(error),AWSService.failStatus); 
 | 
           console.log(error); 
 | 
           } 
 | 
       }; 
 | 
       if (payloadstr) { 
 | 
           para.data = payloadstr; 
 | 
       } 
 | 
       jQuery.ajax(para); 
 | 
    }else{ 
 | 
        unblockUI(); 
 | 
    } 
 | 
        
 | 
   }, 
 | 
  
 | 
   get:function(queryURL, queryback, token) { 
 | 
        let para = { 
 | 
            url:queryURL, 
 | 
            headers: { 
 | 
                'Content-Type': 'application/json', 
 | 
                'pi-token': token 
 | 
            }, 
 | 
            type: "get", 
 | 
            success: function (data) { 
 | 
                AWSService.insertCalloutLog(AWSService.queryModule,queryURL,'',JSON.stringify(data),AWSService.successStatus); 
 | 
                queryback(data);  
 | 
            }, 
 | 
            error: function (error){ 
 | 
            //错误相关处理 404属于该处理(经测试) 
 | 
            //还可能是"timeout", "error", "notmodified" 和 "parsererror"。 
 | 
                AWSService.insertCalloutLog(AWSService.queryModule,queryURL,'',JSON.stringify(error),AWSService.failStatus); 
 | 
                console.log(error); 
 | 
            } 
 | 
        }; 
 | 
        jQuery.ajax(para); 
 | 
    }, 
 | 
  
 | 
   //update 
 | 
    post:function(postURL, payloadForNewPI, callback, token) { 
 | 
       console.log('Process New PI Data'); 
 | 
       console.log(JSON.stringify(payloadForNewPI)); 
 | 
  
 | 
       let payloadstr= null; 
 | 
       if (payloadForNewPI) { 
 | 
           if (typeof payloadForNewPI == 'string') { 
 | 
               payloadstr = payloadForNewPI; 
 | 
           }else{ 
 | 
               payloadstr = JSON.stringify(payloadForNewPI); 
 | 
           } 
 | 
       } 
 | 
       let para = { 
 | 
           url:postURL, 
 | 
           headers: { 
 | 
               'Content-Type': 'application/json', 
 | 
               'pi-token': token 
 | 
           }, 
 | 
           type: "post", 
 | 
           success: function (result) { 
 | 
                AWSService.insertCalloutLog(AWSService.insertModule,postURL,JSON.stringify(payloadForNewPI),JSON.stringify(result),AWSService.successStatus); 
 | 
                if(callback) callback(result); 
 | 
           }, 
 | 
           error: function (error){ 
 | 
                AWSService.insertCalloutLog(AWSService.insertModule,postURL,JSON.stringify(payloadForNewPI),JSON.stringify(error),AWSService.failStatus); 
 | 
                console.log(error); 
 | 
           } 
 | 
       }; 
 | 
       if (payloadstr) { 
 | 
           para.data = payloadstr; 
 | 
       } 
 | 
       jQuery.ajax(para); 
 | 
  
 | 
   }, 
 | 
  
 | 
   //update 
 | 
    postAWS:function(postURL,moduleName,payloadForNewPI, callback, token) { 
 | 
       console.log('Process New PI Data'); 
 | 
       console.log(JSON.stringify(payloadForNewPI)); 
 | 
  
 | 
       let payloadstr= null; 
 | 
       if (payloadForNewPI) { 
 | 
           if (typeof payloadForNewPI == 'string') { 
 | 
               payloadstr = payloadForNewPI; 
 | 
           }else{ 
 | 
               payloadstr = JSON.stringify(payloadForNewPI); 
 | 
           } 
 | 
       } 
 | 
       let para = { 
 | 
           url:postURL, 
 | 
           headers: { 
 | 
               'Content-Type': 'application/json', 
 | 
               'pi-token': token 
 | 
           }, 
 | 
           type: "post", 
 | 
           success: function (result) { 
 | 
                AWSService.insertCalloutLog(moduleName,postURL,JSON.stringify(payloadForNewPI),JSON.stringify(result),AWSService.successStatus); 
 | 
                if(callback)callback(result); 
 | 
           }, 
 | 
           error: function (error){ 
 | 
                AWSService.insertCalloutLog(moduleName,postURL,JSON.stringify(payloadForNewPI),JSON.stringify(error),AWSService.failStatus); 
 | 
                console.log(error); 
 | 
           } 
 | 
       }; 
 | 
       if (payloadstr) { 
 | 
           para.data = payloadstr; 
 | 
       } 
 | 
       jQuery.ajax(para); 
 | 
  
 | 
   }, 
 | 
  
 | 
  
 | 
    //update 
 | 
    postConsumTrial:function(postURL, indexNumber , payloadForNewPI, callback, token) { 
 | 
        console.log('Process New PI Data'); 
 | 
        console.log(JSON.stringify(payloadForNewPI)); 
 | 
  
 | 
        let payloadstr= null; 
 | 
        if (payloadForNewPI) { 
 | 
            if (typeof payloadForNewPI == 'string') { 
 | 
                payloadstr = payloadForNewPI; 
 | 
            }else{ 
 | 
                payloadstr = JSON.stringify(payloadForNewPI); 
 | 
            } 
 | 
        } 
 | 
        let para = { 
 | 
            url:postURL, 
 | 
            headers: { 
 | 
                'Content-Type': 'application/json', 
 | 
                'pi-token': token 
 | 
            }, 
 | 
            type: "post", 
 | 
            success: function (result) { 
 | 
                AWSService.insertCalloutLog(AWSService.insertModule,postURL,JSON.stringify(payloadForNewPI),JSON.stringify(result),AWSService.successStatus); 
 | 
                if(callback) callback(result,indexNumber); 
 | 
            }, 
 | 
            error: function (error){ 
 | 
                AWSService.insertCalloutLog(AWSService.insertModule,postURL,JSON.stringify(payloadForNewPI),JSON.stringify(error),AWSService.failStatus); 
 | 
                console.log(error); 
 | 
            } 
 | 
        }; 
 | 
        if (payloadstr) { 
 | 
            para.data = payloadstr; 
 | 
        } 
 | 
        jQuery.ajax(para); 
 | 
  
 | 
    }, 
 | 
  
 | 
    confirmTrans:function(transactionURL,transParameters,callback,token){ 
 | 
  
 | 
        let payloadstr= null; 
 | 
       if (transParameters) { 
 | 
           if (typeof transParameters == 'string') { 
 | 
               payloadstr = transParameters; 
 | 
           }else{ 
 | 
               payloadstr = JSON.stringify(transParameters); 
 | 
           } 
 | 
       } 
 | 
       let para = { 
 | 
           url:transactionURL, 
 | 
           headers: { 
 | 
               'Content-Type': 'application/json', 
 | 
               'pi-token': token 
 | 
           }, 
 | 
           type: "post", 
 | 
           success: function (result) { 
 | 
                AWSService.insertCalloutLog(AWSService.confirmTrans,transactionURL,JSON.stringify(transParameters),JSON.stringify(result),AWSService.successStatus); 
 | 
                if(callback)callback(result); 
 | 
           }, 
 | 
           error: function (error){ 
 | 
                AWSService.insertCalloutLog(AWSService.confirmTrans,transactionURL,JSON.stringify(transParameters),JSON.stringify(error),AWSService.failStatus); 
 | 
                console.log(error); 
 | 
           } 
 | 
       }; 
 | 
  
 | 
       if (payloadstr) { 
 | 
           para.data = payloadstr; 
 | 
       } 
 | 
       jQuery.ajax(para); 
 | 
  
 | 
   }, 
 | 
  
 | 
    sfdcBack : function(event, result, transId, token, transactionURL,redirectCallBack) { 
 | 
       let sfId = ''; 
 | 
       let errorMsg = ''; 
 | 
       if (event.status) { 
 | 
           console.log('sf Id from SF Backend:' + JSON.stringify(result)); 
 | 
           let transParameters = { 
 | 
                txId: transId 
 | 
            }; 
 | 
            if (result.status == 'success') { 
 | 
                transParameters.isSuccess = 1; 
 | 
                transParameters.sfRecordId = sfId = result.recordId;; 
 | 
            }else{ 
 | 
                transParameters.isSuccess = 0; 
 | 
                errorMsg = result.message; 
 | 
            } 
 | 
             
 | 
            let para = { 
 | 
                url:transactionURL, 
 | 
                headers: { 
 | 
                    'Content-Type': 'application/json', 
 | 
                    'pi-token': token 
 | 
                }, 
 | 
                data:JSON.stringify(transParameters), 
 | 
                type: "post", 
 | 
                success: function (result) { 
 | 
                    AWSService.insertCalloutLog(AWSService.confirmTrans,transactionURL,JSON.stringify(transParameters),JSON.stringify(result),AWSService.successStatus); 
 | 
                    redirectCallBack(sfId,errorMsg); 
 | 
                }, 
 | 
                error: function (error){ 
 | 
                    AWSService.insertCalloutLog(AWSService.confirmTrans,transactionURL,JSON.stringify(transParameters),JSON.stringify(error),AWSService.failStatus); 
 | 
                    console.log(error); 
 | 
                } 
 | 
            }; 
 | 
  
 | 
            jQuery.ajax(para); 
 | 
       } 
 | 
   }, 
 | 
  
 | 
   // AWSService.back(result, payloadJson, transactionURL, token, controllerSaveMethod); 
 | 
    back : function(result, payloadJson, transactionURL, token, controllerSaveMethod,isNewMode,insertOrUpdateBack,redirectCallBack) { 
 | 
       let payloadJsonStr = JSON.stringify(insertOrUpdateBack(payloadJson, result,isNewMode)); 
 | 
       let transId = result.txId + ''; 
 | 
       Visualforce.remoting.Manager.invokeAction( 
 | 
           controllerSaveMethod, // example '{!$RemoteAction.NewAndEditLeadController.saveLead}' 
 | 
           payloadJsonStr, transId, isNewMode, 
 | 
           function (result, event) { 
 | 
               AWSService.sfdcBack(event, result, transId, token, transactionURL,redirectCallBack); 
 | 
           }, 
 | 
           { escape: true } 
 | 
       ); 
 | 
   } 
 | 
}; 
 | 
window.AWSService = AWSService; 
 |