public with sharing class LexSubmitCampaignController {
    //提交审批按钮 学会
    @AuraEnabled
    public static Campaign initSubmit(String recordId){
        try{
            Campaign res = [SELECT Id,Status,Is_LendProduct__c,EndDate
                FROM Campaign 
                    WHERE Id = : recordId];
            return res;
        }
        catch(Exception e){
            System.debug('lexSubmitCampaign,method:initSubmit   error: '+e.getMessage());
        }
        return null;
    }

    @AuraEnabled
    public static String newAndUpddateCampaign(String Id,String Status){
        try{    
            Campaign res = new Campaign();
            res.Id = Id;
            res.Status=Status;
            update res;
            return 'success';
        }
        catch(Exception e){
            System.debug('lexSubmitCampaign,method:newAndUpddateCampaign   error: '+e.getMessage());
            return e.getMessage();
           
        }

    }

    
    @AuraEnabled
    public static String submitApprovalRequest(String recordId) {
        try{
           Approval.ProcessSubmitRequest req = new Approval.ProcessSubmitRequest();
           req.setObjectId(recordId);
           Approval.ProcessResult result = Approval.process(req);
           if(result!=null&&result.getErrors()!=null&&result.getErrors().size()>0) return result.getErrors().get(0).getMessage();
        }catch(Exception e){
            System.debug('lexSubmitCampaign,method:submitApprovalRequest submitApprovalRequest  error: '+e.getMessage());
            return e.getMessage();
        }
        return null;
    }

    //取消按钮 
    @AuraEnabled
    public static Campaign initCancle(String recordId){
        Campaign res = new Campaign();
        try {
            res = [SELECT Status,Id,CancleReason__c,IF_Submit__c
                                    From Campaign Where Id = :recordId];
            return res;
        }
        catch (Exception e) {
             System.debug('lexSubmitCampaign,method:initCancle   error: '+e.getMessage());
        }
        return res;
    }

    @AuraEnabled
    public static String newAndUpdateCampaignCancle(String campaignId ,String Status){

        try {
            Campaign res = new Campaign();
            res.Id = campaignId;
            res.Status =Status;
            update res;
            
        }
        catch (Exception e) {
            return e.getMessage();
        }
        return 'success';
    }    

    @AuraEnabled
    public static Campaign initMember(String recordId){
        Campaign res = new Campaign();
        try {
            res = [SELECT Status,Id,    ServiceDesignDep__c
                                    From Campaign Where Id = :recordId];
            return res;
        }
        catch (Exception e) {
             System.debug('lexSubmitCampaign,method:initCancle   error: '+e.getMessage());
        }
        return res;    
    }

    //取消按钮 CancleService
    @AuraEnabled
    public static Campaign initCancleService(String recordId){
        Campaign res = new Campaign();
        try {
            res = [SELECT Status,Id,CancleReason__c
                                    From Campaign Where Id = :recordId];
            return res;
        }
        catch (Exception e) {
             System.debug('lexSubmitCampaign,method:initCancle   error: '+e.getMessage());
             return null;
        }       
    }

    @AuraEnabled
    public static String cancleServiceNewAndUpdate(String Id,String Status,Boolean IsCancelFromOpen){
        Campaign res = new Campaign();
        try{
            res.Id = Id;
            res.Status = Status;
            res.IsCancelFromOpen__c = IsCancelFromOpen;
            UPDATE res;
            return 'success';
        }
        catch (Exception e) {
             System.debug('lexSubmitCampaign,method:initCancle   error: '+e.getMessage());
             return e.getMessage();
        }
    }
    //时间修改申请按钮
    @AuraEnabled
    public static Campaign initUpdateTimeReply(String recordId){
        Campaign  res = [SELECT Id,Status_Service__c,ServiceDesignDep__c
            FROM Campaign 
                WHERE Id = : recordId];
        return res; 
    }

    @AuraEnabled
    public static String getUserNameById(String Id){
        User  res = [SELECT Name From User WHERE Id = : Id ];

        return res.Name;
    }
    //向智慧医疗发送活动信息
    @AuraEnabled
    public static Campaign initSendToComPlat(String recordId){
        Campaign  res = [SELECT Id,IF_Submit__c
            FROM Campaign 
                WHERE Id = : recordId];
        return res; 
    }

    @AuraEnabled
    public static String SendToComPlatUpdate(String Id , Boolean IF_Submit){
        Campaign res= new Campaign();
        try {
            res.Id=Id;
            res.IF_Submit__c=IF_Submit;
            UPDATE res;
            return 'success';
        }
        catch (Exception e) {
            System.debug('lexSubmitCampaign,method:initCancle   error: '+e.getMessage());
            return e.getMessage();
        }        
    }
    //添加到日历按钮
    @AuraEnabled
    public static Campaign initAddToCalender(String recordId){
        Campaign res = new Campaign();
        try {
                res = [SELECT Name,Id,StartDate,EndDate
                    FROM Campaign
                        WHERE Id = : recordId];
                return res;
        }
        catch (Exception e) {
            System.debug('lexSubmitCampaign,method:initAddToCalender   error: '+e.getMessage());
            return null;
        }
    }

    @AuraEnabled
    public static List<Event> getCampaignEvent(String Id, String userId){
        try {
            List<Event> res = [SELECT Id FROM Event WHERE whatId = :Id and WS_flg__c = true and OwnerId = :userId];
            return res;
        }
        catch (Exception e) {
            System.debug('lexSubmitCampaign,method:getCampaignEvent   error: '+e.getMessage());
            return null;
        }
    
    }

    @AuraEnabled
    public static String addCampaignEvent(Date StartDateTime,Date EndDateTime,String whatid,String Subject){
        try {
            Event event = new Event();
            event.WS_flg__c = true;
            event.IsAllDayEvent = true;
            event.StartDateTime = StartDateTime;
            event.EndDateTime = EndDateTime;
            event.whatid = whatid;
            event.Subject = Subject;
            INSERT event;
            return 'success';
        }
        catch (Exception e) {
            System.debug('lexSubmitCampaign,method:addCampaignEvent   error: '+e.getMessage());
            return e.getMessage();
        }
    }

        //会议变更申请列表按钮
    @AuraEnabled
    public static Campaign initMeetingDelayApply(String recordId){
        Campaign res = new Campaign();
        try {
            res = [SELECT Id,PlanBackData__c,Meeting_Cooperate__c,Meeting_Cooperate2__c,
            Meeting_Cooperate3__c,Meeting_Cooperate4__c,Meeting_Type__c,HostName__c,
            cooperatorCompany__c,StartDate,EndDate,IF_Approved__c,Status,CampaignStatus__c,IF_Submit__c,
            Meeting_Approved_No__c
                FROM  Campaign 
                    WHERE Id = :recordId];
            return res;
        }
        catch (Exception e) {
            System.debug('lexSubmitCampaign,method:initMeetingDelayApply   error: '+e.getMessage());
            return null;
        }
    }

    @AuraEnabled
    public static List<meeting_delay_apply__c> findQualified1(String CampaignId){
        List<meeting_delay_apply__c> res = new List<meeting_delay_apply__c>();
        try {
            res = [SELECT Id FROM meeting_delay_apply__c 
            WHERE Status__c = '审批中' And Campaign__c =:CampaignId ];
            return res;
        }
        catch (Exception e) {
            System.debug('lexSubmitCampaign,method:findQualified   error: '+e.getMessage());
            return res;
        }
        
    }

    @AuraEnabled
    public static List<Consum_Apply__c> findQualified2(String CampaignId){
        List<Consum_Apply__c> res = new List<Consum_Apply__c>();
        try {
            res = [SELECT Id FROM Consum_Apply__c 
            WHERE Status__c Not in ('草案中','取消')  And Campaign__c =:CampaignId ];
            return res;
        }
        catch (Exception e) {
            System.debug('lexSubmitCampaign,method:findQualified   error: '+e.getMessage());
            return res;
        }
        
    }

    @AuraEnabled
    public static List<Rental_Apply__c> findQualified3(String CampaignId){
        List<Rental_Apply__c> res = new List<Rental_Apply__c>();
        try {
            res = [SELECT Id FROM Rental_Apply__c 
            WHERE Status__c Not in ('草案中','取消')  And Campaign__c =:CampaignId ];
            return res;
        }
        catch (Exception e) {
            System.debug('lexSubmitCampaign,method:findQualified   error: '+e.getMessage());
            return res;
        }
        
    }

    @AuraEnabled
    public static String getRecordIdByName(String Name){
        try {
            List<RecordType> res = [Select Id, Name From RecordType  Where Name LIKE :Name limit 1];
            String needId =  res[0].Id;
            return needId;
        }
        catch (Exception e) {
            System.debug('lexSubmitCampaign,method:getRecordIdByName   error: '+e.getMessage());
            return '';
        }
        
    }


}