package com.qxueyou.scc.base.util; import java.util.Collection; import java.util.Date; import java.util.HashSet; import java.util.List; import org.hibernate.Hibernate; import org.hibernate.proxy.HibernateProxy; import com.qxueyou.scc.base.model.ITrace; /** * Êý¾ÝÐ޸Ĺ켣¼Ç¼¹¤¾ßÀà */ public class TraceUtils { /** ¹ÜÀíÔ±Õ˺š¢Õ˺Åid */ public static final String ADMIN_ACCOUNT="admin"; public static final String ADMIN_ACCOUNT_ID="admin"; /** * ÉèÖü¤»î ÐÂÔö¹ì¼£ÐÅÏ¢ * @param trace */ public static void setCreateActiveTrace(ITrace trace){ trace.setCreateId(ADMIN_ACCOUNT_ID); trace.setCreateTime(new Date(System.currentTimeMillis())); trace.setCreator(ADMIN_ACCOUNT); trace.setUpdateId(ADMIN_ACCOUNT_ID); trace.setUpdateTime(new Date(System.currentTimeMillis())); trace.setUpdator(ADMIN_ACCOUNT); } /** * ÉèÖÃÐÂÔö¹ì¼£ÐÅÏ¢ * @param trace */ public static void setCreateTrace(ITrace trace){ if(ClientUtils.getUserInfo()==null){ setCreateActiveTrace(trace); return; } trace.setCreateId(ClientUtils.getUserId()); trace.setCreateTime(new Date()); trace.setCreator(ClientUtils.getUserName()); trace.setUpdateId(ClientUtils.getUserId()); trace.setUpdateTime(new Date()); trace.setUpdator(ClientUtils.getUserName()); } /** * ÉèÖÃÐÂÔö¹ì¼£ÐÅÏ¢ * @param trace */ @SuppressWarnings("rawtypes") public static void setCreateTrace(Collection cls){ ITrace trace=null; for(Object obj : cls){ trace = (ITrace) obj; setCreateTrace(trace); } } /** * ɾ³ýÒÑɾ³ýµÄ¼Ç¼ * @param trace */ @SuppressWarnings("rawtypes") public static void removeDelete(List cls){ ITrace trace=null; for(int i=cls.size()-1;i>-1;i--){ trace = (ITrace) cls.get(i); if(trace.getDeleteFlag()){ cls.remove(i); } } } /** * ÉèÖøüй켣ÐÅÏ¢ * @param trace */ public static void setUpdateTrace(ITrace trace){ if(ClientUtils.getUserInfo()==null){ trace.setUpdateId(ADMIN_ACCOUNT_ID); trace.setUpdateTime(new Date(System.currentTimeMillis())); trace.setUpdator(ADMIN_ACCOUNT); return ; } trace.setUpdateId(ClientUtils.getUserId()); trace.setUpdateTime(new Date(System.currentTimeMillis())); trace.setUpdator(ClientUtils.getUserName()); } /** * ÉèÖÃÐÂÔö¹ì¼£ÐÅÏ¢ * @param trace */ @SuppressWarnings("rawtypes") public static void setUpdateTrace(Collection cls){ ITrace trace=null; for(Object obj : cls){ trace = (ITrace) obj; setUpdateTrace(trace); } } /** * ͨ¹ýHashSetÌß³ýÖØ¸´ÔªËØ * @param list * @return */ @SuppressWarnings({ "rawtypes", "unchecked" }) public static List removeDuplicateList(List list) { HashSet h = new HashSet(list); list.clear(); list.addAll(h); return list; } /** * ³õʼ»¯´úÀíʵÌå * @param entity * @return */ @SuppressWarnings("unchecked") public static T initializeAndUnproxy(T entity) { if (entity == null) { throw new NullPointerException("³õʼ»¯ÊµÌåΪ¿Õ"); } Hibernate.initialize(entity); if (entity instanceof HibernateProxy) { return (T) ((HibernateProxy) entity).getHibernateLazyInitializer() .getImplementation(); } return entity; } }