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