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
|
}
|