123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203 |
- package com.caimei.modules.user.aop;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONObject;
- import com.alibaba.fastjson.TypeReference;
- import com.caimei.modules.user.entity.*;
- import com.caimei.modules.user.service.*;
- import com.caimei.modules.user.utils.HttpContextUtils;
- import com.caimei.modules.user.web.ClubTemporaryController;
- import com.caimei.modules.user.web.newUser.AgencyController;
- import com.thinkgem.jeesite.common.utils.StringUtils;
- import com.thinkgem.jeesite.modules.sys.security.SystemAuthorizingRealm;
- import com.thinkgem.jeesite.modules.sys.utils.UserUtils;
- import com.yeepay.g3.sdk.yop.utils.JsonUtils;
- import net.sf.json.util.JSONUtils;
- import net.sf.jsqlparser.statement.select.Join;
- import org.aspectj.lang.JoinPoint;
- import org.aspectj.lang.ProceedingJoinPoint;
- import org.aspectj.lang.Signature;
- import org.aspectj.lang.annotation.AfterReturning;
- import org.aspectj.lang.annotation.Aspect;
- import org.aspectj.lang.annotation.Pointcut;
- import org.aspectj.lang.reflect.MethodSignature;
- import org.codehaus.jackson.annotate.JsonIgnore;
- import org.codehaus.jackson.map.ObjectMapper;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.core.DefaultParameterNameDiscoverer;
- import org.springframework.core.ParameterNameDiscoverer;
- import org.springframework.stereotype.Component;
- import com.thinkgem.jeesite.modules.sys.security.SystemAuthorizingRealm.Principal;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.ui.Model;
- import javax.servlet.http.HttpServletRequest;
- import java.io.IOException;
- import java.lang.reflect.Method;
- import java.math.BigDecimal;
- import java.util.*;
- @Aspect
- @Component
- public class OperationLogAspect {
- protected Logger logger = LoggerFactory.getLogger(getClass());
- @Autowired
- private SysLogService sysLogService;
- @Autowired
- private ClubTemporaryService clubTemporaryService;
- //定义切点 @Pointcut
- //在注解的位置切入代码
- @Pointcut("@annotation(com.caimei.modules.user.aop.OperationLogAnnotation)")
- public void logPointCut() {
- }
- private HashMap paramToMap(JoinPoint joinPoint) {
- HashMap map = new HashMap<>();
- //获取参数对象
- Object[] args = joinPoint.getArgs();
- //参数列表
- Signature signature = joinPoint.getSignature();
- MethodSignature methodSignature = (MethodSignature) signature;
- String[] parameterNames = methodSignature.getParameterNames();
- int index = 0;
- for(String str : parameterNames) {
- map.put(str,args[index++]);
- }
- return map;
- }
- @AfterReturning("logPointCut()")
- @JsonIgnore
- public void saveSysLog(JoinPoint joinPoint) throws IOException {
- HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
- //保存日志
- OperationalLogs sysLog = new OperationalLogs();
- //从切面织入点处通过反射机制获取织入点处的方法
- MethodSignature signature = (MethodSignature) joinPoint.getSignature();
- //获取切入点所在的方法
- Method method = signature.getMethod();
- sysLog.setActioncontent(null);
- Object[] args = joinPoint.getArgs();
- HashMap map = new HashMap<>();
- for (Object arg : args) {
- System.out.println("aop获取的参数>>>>>>>"+arg.toString());
- }
- map = paramToMap(joinPoint);
- Set<String> keySet=map.keySet();
- //获取操作类型
- OperationLogAnnotation myLog = method.getAnnotation(OperationLogAnnotation.class);
- if (myLog != null) {
- String value = myLog.operType();
- sysLog.setOperationtype(value);//保存获取的操作类型
- }
- //获取请求的类名
- String className = joinPoint.getTarget().getClass().getName();
- //获取请求操作类型
- String operType = myLog.operType();
- sysLog.setOperationtype(operType);
- //获取请求操作内容
- AgencyController A = new AgencyController();
- ClubTemporaryController B = new ClubTemporaryController();
- String email = request.getParameter("contractEmail");//修改后邮箱
- String bindm = request.getParameter("bindMobile");//修改后手机电话
- String jgname = request.getParameter("name");//修改后机构名字
- String sname = request.getParameter("sname");//修改后机构简称
- String uname = request.getParameter("userName");//修改后的联系人
- String linkMan = request.getParameter("linkMan");//修改后的联系人
- String Identity = request.getParameter("linkManIdentity");//联系人身份
- String address = request.getParameter("address");//详细地址
- String socialCreditCode = request.getParameter("socialCreditCode");//营业执照编号
- String headpic = request.getParameter("headpic");//门头照
- String businessLicenseImage = request.getParameter("businessLicenseImage");//营业执照
- String ClubType = request.getParameter("firstClubType");//机构类型
- String mainpro = request.getParameter("mainpro");//主营业务
- String contractPhone = request.getParameter("contractPhone");//固定电话
- String fax = request.getParameter("fax");//传真
- String empnum = request.getParameter("empnum");//公司人数
- String info = request.getParameter("info");//公司简介
- String area = request.getParameter("area");//机构面积
- String bedNums = request.getParameter("bedNums");//美容院床位
- String beauticians = request.getParameter("beauticians");//美容师数
- String monthAchievement = request.getParameter("monthAchievement");//月业绩
- String promotionAchievement = request.getParameter("promotionAchievement");//促销业绩
- String yearAchievement = request.getParameter("yearAchievement");//年业绩
- String cateA = request.getParameter("cateA");//A类会员
- String consumeA = request.getParameter("consumeA");//A类会员消费金额
- String cateB = request.getParameter("empnum");//B类会员
- String consumeB = request.getParameter("consumeB");//B类会员消费金额
- String cateC = request.getParameter("cateC");//C类会员
- String consumeC = request.getParameter("consumeC");//C类会员消费金额
- String highestAchievement = request.getParameter("highestAchievement");//最高业绩
- String reachPepole = request.getParameter("reachPepole");//到店人数
- String clinchPepole = request.getParameter("clinchPepole");//成交人数
- String shortName = request.getParameter("shortName");//成交人数
- String methodName = myLog.operModul();
- ArrayList<String> list = new ArrayList();
- //获取机构名称和联系人
- String id = request.getParameter("id");
- sysLog.setOperationtime(new Date());
- sysLog.setActioncontent(myLog.operModul());
- sysLog.setOperationtype(myLog.operType());
-
- if ("修改密码".equals(myLog.operType())) {
- System.out.println(Integer.parseInt(map.get("id").toString())+">>>>>>>>"+Integer.parseInt(map.get("id").toString()));
- String Inst = sysLogService.passName(Integer.parseInt(map.get("id").toString()));
- String Contact = sysLogService.PasslinkMan(Integer.parseInt(map.get("id").toString()));
- sysLog.setOperationtype(myLog.operModul());
- sysLog.setOperationtype(myLog.operType());
- sysLog.setContact(Contact);
- sysLog.setInstitutionName(Inst);
- }
- if ("确认注册".equals(myLog.operType())) {
- sysLog.setActioncontent(myLog.operModul());
- ClubTemporary club = clubTemporaryService.get(id);
- if (club != null) {
- String Contact= club.getLinkMan();
- String Inst = club.getName();
- sysLog.setContact(Contact);
- sysLog.setInstitutionName(Inst);
- System.out.println("contact=" + sysLog.getContact());
- }
- }
- SystemAuthorizingRealm.Principal principal = UserUtils.getPrincipal();
- System.out.println("操作员" + principal.getName());
- String username = principal.getName();
- sysLog.setOperator(username);
- sysLog.setOperationtype(myLog.operType());
- //调用service保存SysLog实体类到数据库
- if (!"".equals(sysLog.getActioncontent())) {
- if (sysLog.getInstitutionName() != null && sysLog.getContact() != null) {
- int i = sysLogService.insert(sysLog);
- list.removeAll(list);
- }
- }
- // }
- }
- }
|