global without sharing class BatchFileUploadController {
|
public String newUrl {get; set;}
|
public String staticResource {get; set;}
|
|
public BatchFileUploadController(){
|
//deloitte-zhj 20231208 PIPL还原
|
// AWS_Integration_Info__mdt awsConfiguration = [SELECT App_Id__c,Token_URL__c,App_Secret__c,Host_URL__c FROM AWS_Integration_Info__mdt WHERE DeveloperName = 'AWS_Default_Configuration'];
|
// if (awsConfiguration == null) {
|
// System.debug('AWS_Integration_Info__mdt没配置');
|
// }else {
|
// newUrl = awsConfiguration.Host_URL__c + '/api/file/batchupload';
|
// staticResource = JSON.serialize(PIHelper.getPIIntegrationInfo('Document'));
|
// }
|
}
|
|
global class Response{
|
public String recordId{set;get;}
|
public String message{set;get;}
|
public String status{set;get;}
|
}
|
|
global class ResponseDeleteFile{
|
public List<String> keyList{set;get;}
|
public String message{set;get;}
|
public String status{set;get;}
|
}
|
|
//deloitte-zhj 202312085 PIPL还原 start
|
@RemoteAction
|
global static Response saveFile(String fileName,String base64Data, String contentType,String parentId,String bool){
|
Response response =new Response();
|
Savepoint sp = Database.setSavepoint();
|
try {
|
FileAddress__c file = new FileAddress__c();
|
// 去除filename里得“&” zhj 2022-11-17
|
fileName = fileName.remove('&');
|
file.FileName__c =fileName;
|
file.ParentRecordId__c =parentId;
|
|
|
ContentVersion version = new ContentVersion();
|
version.Title = fileName;
|
version.VersionData = EncodingUtil.base64Decode(base64Data);
|
version.ContentLocation = 's';
|
version.PathOnClient = fileName;
|
version.Origin = 'C';
|
insert version;
|
version = [select ContentDocumentId from ContentVersion where Id =: version.Id limit 1];
|
|
file.DownloadLink__c = '/sfc/servlet.shepherd/version/download/' + version.Id;
|
file.ViewLink__c = '/lightning/page/filePreview?selectedRecordId=' + version.ContentDocumentId;
|
file.View_Link__c = '/sfc/servlet.shepherd/version/renditionDownload?rendition=SVGZ&versionId=' + version.Id + '&operationContext=CHATTER';
|
insert file;
|
|
ContentDocumentLink link = new ContentDocumentLink();
|
link.ContentDocumentId = version.ContentDocumentId;
|
link.LinkedEntityId = file.Id;
|
link.ShareType = 'I';
|
link.Visibility = 'AllUsers';
|
insert link;
|
|
ContentDocumentLink link1 = new ContentDocumentLink();
|
link1.LinkedEntityId = System.Label.GuestFile;
|
link1.ContentDocumentId = version.ContentDocumentId;
|
link1.Visibility = 'AllUsers';
|
link1.ShareType = 'I';
|
insert link1;
|
|
response.recordId = file.Id;
|
response.status='success';
|
|
if(bool == 'true'){
|
System.debug('成功调用batch');
|
Database.executeBatch(new SetFrameNumManageBatch(), 100); //上传成功后需要手动跑batch做数据和附件的关联 2022-12-27
|
}
|
} catch (Exception e) {
|
System.debug('into catch'+e.getMessage());
|
Database.rollback(sp);
|
response.message=e.getMessage() + '________' + e.getLineNumber();
|
response.status='fail';
|
}
|
return response;
|
}
|
|
|
@RemoteAction
|
global static ResponseDeleteFile deleteFile(String fileIds){
|
String[] ids = fileIds.split(',');
|
System.debug('ids = ' + ids);
|
List<String> idList = new List<String>();
|
for(String str : ids){
|
idList.add(str);
|
}
|
System.debug('idList = ' + idList);
|
//List<FileAddress__c> fList = [select id,AWS_File_Key__c from FileAddress__c where id in:idList];
|
List<ContentDocument> fList = [select id from ContentDocument where id in:idList];
|
ResponseDeleteFile response =new ResponseDeleteFile();
|
Savepoint sp = Database.setSavepoint();
|
try {
|
delete fList;
|
response.keyList = null;
|
response.message = '';
|
response.status = 'success';
|
return response;
|
} catch (Exception e) {
|
Database.rollback(sp);
|
response.keyList = null;
|
response.message = e.getMessage();
|
response.status = 'error';
|
return response;
|
}
|
}
|
|
// @RemoteAction
|
// global static Response saveFile(String fileName,String key,String transId,String parentId,String bool){
|
// FileAddress__c file = new FileAddress__c();
|
// PIHelper.PIIntegration pI=PIHelper.getPIIntegrationInfo('Document');
|
// // 去除filename里得“&” zhj 2022-11-17
|
// fileName = fileName.remove('&');
|
// file.DownloadLink__c =pI.undeleteUrl+key+'&fileName='+fileName;
|
// file.FileName__c =fileName;
|
// file.ViewLink__c =pI.queryUrl+key;
|
// file.ParentRecordId__c =parentId;
|
// file.AWS_File_Key__c = key;
|
// Response response =new Response();
|
// Savepoint sp = Database.setSavepoint();
|
// try {
|
// insert file;
|
// //插入日志
|
// //update 2022-11-17 加入新的日志方式
|
// PIHelper.saveTransLog('Document',key,transId,file.Id,JSON.serialize(file),'success','');
|
// response.recordId=file.Id;
|
// response.status='success';
|
// if(bool == 'true'){
|
// System.debug('成功调用batch');
|
// Database.executeBatch(new SetFrameNumManageBatch(), 100); //上传成功后需要手动跑batch做数据和附件的关联 2022-12-27
|
// }
|
// return response;
|
// } catch (Exception e) {
|
// System.debug('into catch'+e.getMessage());
|
// PIHelper.saveTransLog('Document',key,transId,file.Id,JSON.serialize(file),'fail',e.getMessage());
|
// Database.rollback(sp);
|
// response.message=e.getMessage();
|
// response.status='fail';
|
// return response;
|
// }
|
// }
|
|
// @RemoteAction
|
// global static ResponseDeleteFile deleteFile(String fileIds){
|
// String[] ids = fileIds.split(',');
|
// System.debug('ids = ' + ids);
|
// List<String> idList = new List<String>();
|
// for(String str : ids){
|
// idList.add(str);
|
// }
|
// System.debug('idList = ' + idList);
|
// List<FileAddress__c> fList = [select id,AWS_File_Key__c from FileAddress__c where id in:idList];
|
|
// List<String> keyList = new List<String>();
|
// for(FileAddress__c fa : fList){
|
// keyList.add(fa.AWS_File_Key__c);
|
// }
|
// System.debug('keyList = ' + keyList);
|
// ResponseDeleteFile response =new ResponseDeleteFile();
|
// Savepoint sp = Database.setSavepoint();
|
// try {
|
// delete fList;
|
// response.keyList = keyList;
|
// response.message = '';
|
// response.status = 'success';
|
// return response;
|
// } catch (Exception e) {
|
// Database.rollback(sp);
|
// response.keyList = null;
|
// response.message = e.getMessage();
|
// response.status = 'success';
|
// return response;
|
// }
|
// }
|
//deloitte-zhj 202312085 PIPL还原 end
|
}
|