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