| trigger UserBefore on User (before insert, before update, after insert, after update) { | 
|     Map<Id, User> userMap = new Map<Id, User>(); | 
|     List<String> userIdUpList = new List<String>(); | 
|     Map<Id,user> userIdUpMap = new Map<Id,user>(); | 
|     List<String> userIdInsList = new List<String>(); | 
|     List<String> uIds = new List<String>(); //zhaohui 2020-08-18 | 
|     if (Trigger.isBefore) { | 
|         for(User usr : Trigger.new) { | 
|             //获取需要更新联盟ID的用户 | 
|             if(Trigger.isUpdate && usr.IsActive == true | 
|             && usr.Test_staff__c == false && usr.Employee_No__c <> null | 
|             && usr.FederationIdentifier == null){ | 
|                 userIdUpList.add(usr.Id); | 
|             } | 
|             // Alias__c | 
|             usr.Alias__c = usr.LastName + usr.FirstName; | 
|   | 
|             // Phote__c | 
|             if (Trigger.isInsert && String.isBlank(usr.Photo__c) == false | 
|                     || (Trigger.isUpdate && ((User) Trigger.oldMap.get(usr.Id)).Photo__c != usr.Photo__c) | 
|                     || (Trigger.isUpdate && String.isBlank(usr.Photo__c) == false && String.isBlank(usr.Photo_Text__c)) | 
|             ) { | 
|                 String phtTxt = ''; | 
|                 System.debug('UserBefore Photo__c=' + usr.Photo__c); | 
|                 if (String.isBlank(usr.Photo__c) == false) { | 
|                     Integer pStt = usr.Photo__c.indexOf('<img'); | 
|                     if (pStt >= 0) { | 
|                         pStt = usr.Photo__c.indexOf('src="'); | 
|                         if (pStt >= 0) { | 
|                             Integer pEnd = usr.Photo__c.indexOf('"', pStt + 5); | 
|                             if (pEnd >= 0) { | 
|                                 phtTxt = usr.Photo__c.substring(pStt + 5, pEnd); | 
|                                 System.debug('UserBefore phpTxt1=' + phtTxt); | 
|                                 phtTxt = phtTxt.unescapeHtml4(); | 
|                                 System.debug('UserBefore phpTxt2=' + phtTxt); | 
|                             } | 
|                         } | 
|                     } | 
|                 } | 
|                 usr.Photo_Text__c = phtTxt; | 
|             } | 
|         } | 
|         if(userIdUpList.size() > 0){ | 
|             List<user> updateList = [ | 
|                             select id,Name,Employee_No__c,FederationIdentifier | 
|                             from user | 
|                             where id in :userIdUpList | 
|                             and Profile.UserLicense.Name= 'salesforce']; | 
|             for (user us : updateList) { | 
|                 userIdUpMap.put(us.Id,us); | 
|             } | 
|             for(User usr : Trigger.new) { | 
|                 if(userIdUpMap.containsKey(usr.Id)){ | 
|                     usr.FederationIdentifier = usr.Employee_No__c + '@olympus.com.cn'; | 
|                 } | 
|             } | 
|         } | 
|     } | 
| // CIC 130175 start | 
|     else { | 
|         // Trigger.isAfter | 
|         for(User usr : Trigger.new) { | 
|             // MB関連 | 
|             if (Trigger.isInsert && String.isBlank(usr.Province__c) == false | 
|                     || (Trigger.isUpdate && (Trigger.oldMap.get(usr.Id)).Province__c != usr.Province__c) | 
|             ) { | 
|                 userMap.put(usr.Id, usr); | 
|             } | 
|             ////获取需要更新联盟ID的用户 | 
|             if (Trigger.isInsert && usr.IsActive == true | 
|             && usr.Test_staff__c == false && usr.Employee_No__c <> null | 
|             && usr.FederationIdentifier == null){ | 
|                 userIdInsList.add(usr.Id); | 
|             } | 
|   | 
|             //zhaohui 2020-08-18 start | 
|             if (Trigger.isUpdate && !usr.IsActive && (Trigger.oldMap.get(usr.Id)).IsActive != usr.IsActive) { | 
|                 uIds.add(usr.Id); | 
|             } | 
|             //zhaohui 2020-08-18 end | 
|         } | 
|         // MBこどもを更新 | 
|         //ControllerUtil.updMBChildFromUser(userMap); | 
|   | 
|         if(userIdInsList.size() > 0){ | 
|             List<user> updateList = [ | 
|                             select id,Name,Employee_No__c,FederationIdentifier | 
|                             from user | 
|                             where IsActive = true | 
|                             and Test_staff__c = false | 
|                             and Employee_No__c <> null | 
|                             and id in :userIdInsList | 
|                             and Profile.UserLicense.Name= 'salesforce']; | 
|             for (user us : updateList) { | 
|                 us.FederationIdentifier = us.Employee_No__c + '@olympus.com.cn'; | 
|                 //userIdInsMap.put(us.Id,us); | 
|             } | 
|             ControllerUtil.upUserFederationIdentifier(updateList); | 
|   | 
|         } | 
|   | 
|         //zhaohui 2020-08-18 start | 
|         if (uIds.size() > 0) { | 
|             Database.executeBatch(new CloseTaskUpdateBatch(uIds)); | 
|         } | 
|         //zhaohui 2020-08-18 end | 
|     } | 
| // CIC 130175 end | 
| } |