package com.shlanbao.tzsc.utils.tools; import com.shlanbao.tzsc.base.model.SessionInfo; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Date; import java.util.List; /** * @author: sunzhen * @date: 2019/7/31 * @time: 18:18 * @description: 填充用户信息(创建人、创建时间、修改人、修改时间)工具类 */ @SuppressWarnings("all") public class FillUserInfoUtil { /** * @author: sunzhen * @date: 2019-07-31 18:24 * @param: obj * @param: request * @return: void * @throws: * @description: 从request中获取创建人、创建时间信息通过反射填充到obj对象中 */ public static void fillCreateUserInfo(Object obj, HttpServletRequest request){ try { //从session中获取到当前登录者的信息 SessionInfo sessionInfo = (SessionInfo) request.getSession().getAttribute("sessionInfo"); Class clazz = obj.getClass(); Method setCreateUserName = clazz.getMethod("setCreateUserName", String.class); Method setCreateUserTime = clazz.getMethod("setCreateUserTime", Date.class); setCreateUserName.invoke(obj,sessionInfo.getUser().getName()); setCreateUserTime.invoke(obj,new Date()); Method setUpdateUserName = clazz.getMethod("setUpdateUserName", String.class); Method setUpdateUserTime = clazz.getMethod("setUpdateUserTime", Date.class); setUpdateUserName.invoke(obj,sessionInfo.getUser().getName()); setUpdateUserTime.invoke(obj,new Date()); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } /** * @author: sunzhen * @date: 2019-07-31 18:24 * @param: obj * @param: request * @return: void * @throws: * @description: 从request中获取创建人、创建时间信息通过反射填充到obj对象中 */ public static void fillCreateUserInfo(Object obj, HttpSession session){ try { //从session中获取到当前登录者的信息 SessionInfo sessionInfo = (SessionInfo) session.getAttribute("sessionInfo"); Class clazz = obj.getClass(); Method setCreateUserName = clazz.getMethod("setCreateUserName", String.class); Method setCreateUserTime = clazz.getMethod("setCreateUserTime", Date.class); setCreateUserName.invoke(obj,sessionInfo.getUser().getName()); setCreateUserTime.invoke(obj,new Date()); Method setUpdateUserName = clazz.getMethod("setUpdateUserName", String.class); Method setUpdateUserTime = clazz.getMethod("setUpdateUserTime", Date.class); setUpdateUserName.invoke(obj,sessionInfo.getUser().getName()); setUpdateUserTime.invoke(obj,new Date()); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } /** * @author: sunzhen * @date: 2019-07-31 18:24 * @param: obj * @param: request * @return: void * @throws: * @description: 从request中获取修改人、修改时间信息通过反射填充到obj对象中 */ public static void fillUpdateUserInfo(Object obj, HttpServletRequest request){ try { //从session中获取到当前登录者的信息 SessionInfo sessionInfo = (SessionInfo) request.getSession().getAttribute("sessionInfo"); Class clazz = obj.getClass(); Method setUpdateUserName = clazz.getMethod("setUpdateUserName", String.class); Method setUpdateUserTime = clazz.getMethod("setUpdateUserTime", Date.class); setUpdateUserName.invoke(obj,sessionInfo.getUser().getName()); setUpdateUserTime.invoke(obj,new Date()); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } /** * @author: sunzhen * @date: 2019-07-31 18:24 * @param: obj * @param: request * @return: void * @throws: * @description: 从request中获取修改人、修改时间信息通过反射填充到obj对象中 */ public static void fillUpdateUserInfo(Object obj, HttpSession session){ try { //从session中获取到当前登录者的信息 SessionInfo sessionInfo = (SessionInfo) session.getAttribute("sessionInfo"); Class clazz = obj.getClass(); Method setUpdateUserName = clazz.getMethod("setUpdateUserName", String.class); Method setUpdateUserTime = clazz.getMethod("setUpdateUserTime", Date.class); setUpdateUserName.invoke(obj,sessionInfo.getUser().getName()); setUpdateUserTime.invoke(obj,new Date()); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } /** * @author: sunzhen * @date: 2019-08-14 9:08 * @param: s * @param: t * @return: void * @throws: * @description: 将对象s中的创建与修改信息填充到对象t中 */ public static void fillCreateAndUpdateUserInfo(Object s, Object t){ try { Class clazzS = s.getClass(); Class clazzT = t.getClass(); Method getCreateUserName = clazzS.getMethod("getCreateUserName"); Method getCreateUserTime = clazzS.getMethod("getCreateUserTime"); Method setCreateUserName = clazzT.getMethod("setCreateUserName", String.class); Method setCreateUserTime = clazzT.getMethod("setCreateUserTime", Date.class); setCreateUserName.invoke(t,getCreateUserName.invoke(s)); setCreateUserTime.invoke(t,getCreateUserTime.invoke(s)); Method getUpdateUserName = clazzS.getMethod("getUpdateUserName"); Method getUpdateUserTime = clazzS.getMethod("getUpdateUserTime"); Method setUpdateUserName = clazzT.getMethod("setUpdateUserName", String.class); Method setUpdateUserTime = clazzT.getMethod("setUpdateUserTime", Date.class); setUpdateUserName.invoke(t,getUpdateUserName.invoke(s)); setUpdateUserTime.invoke(t,getUpdateUserTime.invoke(s)); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } /** * @author: sunzhen * @date: 2019-08-14 9:08 * @return: void * @throws: * @description: 将集合query中的创建与修改信息填充到集合rows中 */ public static void fillCreateAndUpdateUserInfoByLists(List query, List rows){ for (int i=0;i