| /** | 
|  * 用户的评价创建时间和条数在用户表中汇总更新 | 
|  */ | 
| trigger SmarmSetUserCount on SMARM__c (after insert, before delete) { | 
|     Map<Id, User> userMap = new Map<Id, User>(); | 
|     List<Id> userList = new List<Id>(); | 
|     List<Id> delSmarmIds = new List<Id>(); | 
|     if (Trigger.isAfter) { | 
|         if (Trigger.isInsert) { | 
|             for (SMARM__c m : Trigger.new) { | 
|                 if (m.Review_Target__c != null && userMap.containsKey(m.Review_Target__c) == false) { | 
|                     userMap.put(m.Review_Target__c, new User(Id = m.Review_Target__c)); | 
|                     userList.add(m.Review_Target__c); | 
|                 } | 
|             } | 
|         } | 
|     } | 
|     else { | 
|         for (SMARM__c m : Trigger.old) { | 
|             if (m.Review_Target__c != null && userMap.containsKey(m.Review_Target__c) == false) { | 
|                 userMap.put(m.Review_Target__c, new User(Id = m.Review_Target__c)); | 
|                 userList.add(m.Review_Target__c); | 
|             } | 
|             delSmarmIds.add(m.Id); | 
|         } | 
|     } | 
|     if (userMap.size() > 0) { | 
|         AggregateResult[] arList = ControllerUtil.selectSmarmSetUserCount(userMap.keySet(), delSmarmIds); | 
|         Map<String,AggregateResult> rsMap = new Map<String,AggregateResult>(); | 
|         for (AggregateResult ar: arList) { | 
|             rsMap.put(String.valueOf(ar.get('Review_Target')),ar); | 
|         } | 
|         for (string id : userList) { | 
|             if (rsMap.containsKey(id)) { | 
|                 User u = userMap.get(String.valueOf(rsMap.get(id).get('Review_Target'))); | 
|                 u.Smarm_Count__c = Integer.valueOf(rsMap.get(id).get('Cnt_Id')); | 
|                 u.Last_Smarm_Date__c = Date.valueOf(rsMap.get(id).get('Max_Report_Date')); | 
|             } else { | 
|                 User u = userMap.get(id); | 
|                 u.Smarm_Count__c = 0; | 
|                 u.Last_Smarm_Date__c = null; | 
|             } | 
|         } | 
|         ControllerUtil.updateUserList(userMap.values()); | 
|     } | 
| } |