package com.nationalelectric.greenH5.bizc; import java.util.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import com.nationalelectirc.Constant.Constant; import com.nationalelectirc.utils.RestResult; import com.nationalelectric.greenH5.po.GreenOperateLog; import com.nationalelectric.greenH5.po.GreenUserInfo; import com.nationalelectric.greenH5.utils.DateUtil; import com.sgcc.uap.mdd.runtime.base.BizCDefaultImpl; import com.sgcc.uap.persistence.IHibernateDao; import java.io.Serializable; /** * 概述:单表场景逻辑构件
* TODO *

* 功能
* TODO * * @author bowei */ public class GreenOperateLogBizc extends BizCDefaultImpl implements IGreenOperateLogBizc { @Resource private IHibernateDao hibernateDao; @Resource private IGreenUserInfoBizc greenuserinfoBizc; /**************** 标准方法执行前后事件,默认全部返回true *******************/ @Override protected void afterDelete(GreenOperateLog greenoperatelog) { // 自定义逻辑 } @Override protected void afterAdd(GreenOperateLog greenoperatelog) { // 自定义逻辑 } @Override protected boolean beforeDelete(GreenOperateLog greenoperatelog) { // 自定义逻辑 return true; } @Override protected boolean beforeAdd(GreenOperateLog greenoperatelog) { // 自定义逻辑 return true; } @Override protected void afterUpdate(GreenOperateLog greenoperatelog ,Serializable pk) { // 自定义逻辑 } @Override protected boolean beforeUpdate(GreenOperateLog greenoperatelog, Serializable pk) { // 自定义逻辑 return true; } @Transactional(rollbackFor=Exception.class) public Object addLog(String function, String operateType, String operateStatus, String operateContent,String logType,String userId) { try { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String url = request.getRequestURL().toString(); GreenUserInfo userInfo = getUserInfo(userId); if (url.contains("/greenMealTicket/scan")) { userInfo = new GreenUserInfo(); userInfo.setId(""); userInfo.setRealName("扫码"); } /*if (userInfo == null) { throw new Exception("返回异常"); }*/ GreenOperateLog greenOperateLog = new GreenOperateLog(); //操作人id greenOperateLog.setOperatorId(userId); //操作人姓名 if(userInfo==null){ greenOperateLog.setOperatorName("非法用户"); }else{ greenOperateLog.setOperatorName(userInfo.getRealName()); } //登录用户ip地址 greenOperateLog.setIpAddr(request.getRemoteAddr()); //操作功能 greenOperateLog.setOperateFunction(function); //操作类型 greenOperateLog.setOperateType(operateType); //操作状态 greenOperateLog.setOperateStatus(operateStatus); //操作时间 greenOperateLog.setOperateTime(DateUtil.now()); //创建者 greenOperateLog.setCreator(userId); //修改者 greenOperateLog.setModifier(userId); //创建时间 greenOperateLog.setGmtCreated(new Date()); //修改时间 greenOperateLog.setGmtModified(new Date()); //删除标识 greenOperateLog.setIsDeleted("N"); //操作内容 if(userInfo==null){ greenOperateLog.setOperatorContent("非法用户"+"-"+operateContent+"失败"); }else{ greenOperateLog.setOperatorContent(userInfo.getRealName()+"-"+operateContent+operateStatus); } //日志 类型 greenOperateLog.setLogType(logType); //来源1=pc/2=app greenOperateLog.setSource("2"); if ("登录".equals(function) || "登出".equals(function)) { greenOperateLog.setLogRank("1"); }else { greenOperateLog.setLogRank("0"); } hibernateDao.saveObject(greenOperateLog); return new RestResult(Constant.SUCCESS,null); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED,"返回异常"); } } public GreenUserInfo getUserInfo(String userId) { if (userId == null || userId.trim().equals("")) { return null; } GreenUserInfo info = greenuserinfoBizc.get(userId); return info; } }