package com.caimei.modules.user.aop; 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 org.aspectj.lang.JoinPoint; 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.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.thinkgem.jeesite.modules.sys.security.SystemAuthorizingRealm.Principal; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.lang.reflect.Method; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; @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() { } @AfterReturning("logPointCut()") 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); //获取操作类型 OperationLogAnnotation myLog = method.getAnnotation(OperationLogAnnotation.class); if (myLog != null) { String value = myLog.operType(); sysLog.setOperationtype(value);//保存获取的操作类型 System.out.println("Operationtype操作类型=" + 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 list = new ArrayList(); //* // 未确认机构编辑 // */ if("1".equals(myLog.oper())&& "编辑".equals(myLog.operType())){ if (B.clubT.getLinkMan() != "") { sysLog.setContact(B.clubT.getLinkMan()); } if (B.clubT.getLinkMan() == null) { if (linkMan != null) { list.add("新增了联系人"); } } if (!B.clubT.getLinkMan().equals(linkMan)) { list.add("修改了联系人"); } if (B.clubT.getShortName() == null) { if (shortName != null) { list.add("新增了机构简称"); } } if (!B.clubT.getShortName().equals(shortName)) { list.add("修改了机构简称"); } if (B.clubT.getName() == null) { if (jgname != null) { list.add("新增了机构名称"); } } if (!B.clubT.getName().equals(jgname)) { list.add("修改了机构名称"); } if (B.clubT.getBindMobile() == null) { if (bindm != null) { list.add("新增了手机号"); } } if (!B.clubT.getBindMobile().equals(bindm)) { list.add("修改了手机号"); } if (B.clubT.getContractEmail() == null) { if (email != null) { list.add("新增邮箱"); } } if (!B.clubT.getContractEmail().equals(email)) { list.add("修改了邮箱"); } if (!B.clubT.getAddress().equals(address)) { list.add("修改了详细地址"); } if (B.clubT.getBusinessLicense() == null) { if (businessLicenseImage != null) { list.add("新增了营业执照"); } } else { if (!B.clubT.getBusinessLicense().equals(businessLicenseImage)) { list.add("修改了营业执照"); } } if (B.clubT.getShopPhoto() == null) { if (headpic != null) { list.add("新增了门头照"); } if (!B.clubT.getShopPhoto().equals(headpic)) { list.add("修改了门头照"); } } if (B.clubT.getSocialCreditCode() == null) { if (socialCreditCode != null) { list.add("新增了营业执照编号"); } if (!B.clubT.getSocialCreditCode().equals(socialCreditCode)) { list.add("修改了营业执照编号"); } } if (B.clubT.getFirstClubType() == null) { if (ClubType != null) { list.add("新增了机构类型"); } } else if (!B.clubT.getFirstClubType().equals(ClubType)) { list.add("修改了机构类型"); } } if ("编辑".equals(myLog.operType())&& "2".equals(myLog.oper()) ) { logger.info(A.cmClu.getHighestAchievement()+"*****"+A.cmClu.getReachPepole()+"*****"+A.cmClu.getClinchPepole()); if ("".equals(A.cmClu.getHighestAchievement()) || A.cmClu.getReachPepole() == null || A.cmClu.getClinchPepole() == null) { if (!"".equals(highestAchievement) || !"".equals(reachPepole) || !"".equals(clinchPepole)) { list.add("新增了活动业绩信息"); } } else { if (!highestAchievement.equals(A.cmClu.getHighestAchievement())) { list.add("修改了活动业绩的最高业绩信息"); } if (Integer.parseInt(reachPepole) != A.cmClu.getReachPepole()) { list.add("修改了活动业绩的到店人数信息"); } if (Integer.parseInt(clinchPepole) != A.cmClu.getClinchPepole()) { list.add("修改了活动业绩的成交人数信息"); } } if (A.cmClu.getConsumeA() == null || A.cmClu.getConsumeB() == null || A.cmClu.getConsumeC() == null) { if (A.cmClu.getConsumeA() != null || A.cmClu.getConsumeB() != null || A.cmClu.getConsumeC() != null) { list.add("新增了会员消费金额信息"); } } else { BigDecimal cateAs = new BigDecimal(consumeA); BigDecimal cateBs = new BigDecimal(consumeB); BigDecimal cateCs = new BigDecimal(consumeC); if (A.cmClu.getConsumeA() != cateAs) { list.add("修改了A类会员消费金额"); } if (A.cmClu.getConsumeB() != cateBs) { list.add("修改了B类会员消费金额"); } if (A.cmClu.getConsumeC() != cateCs) { list.add("修改了C类会员消费金额"); } } if (A.cmClu.getCateA() == null || A.cmClu.getCateB() == null || A.cmClu.getCateC() == null) { if (!"".equals(cateA) || !"".equals(cateB) || !"".equals(cateC)) { list.add("新增了会员信息"); } } else { if (A.cmClu.getCateA() != Integer.parseInt(cateA)) { list.add("修改了A会员信息"); } if (A.cmClu.getCateB() != Integer.parseInt(cateB)) { list.add("修改了B会员信息"); } if (A.cmClu.getCateC() != Integer.parseInt(cateC)) { list.add("修改了C会员信息"); } } if ("".equals(A.cmClu.getMonthAchievement()) || "".equals(A.cmClu.getPromotionAchievement()) || "".equals(A.cmClu.getYearAchievement())) { if (!"".equals(monthAchievement) || !"".equals(promotionAchievement) || !"".equals(yearAchievement)) { list.add("新增了业绩信息"); } } else { if (!monthAchievement.equals(A.cmClu.getMonthAchievement())) { list.add("修改了月业绩信息"); } if (promotionAchievement != A.cmClu.getPromotionAchievement()) { list.add("修改了促销业绩信息"); } if (yearAchievement != A.cmClu.getYearAchievement()) { list.add("修改了年业绩信息"); } } if (A.cmClu.getArea() == null || A.cmClu.getBedNums() == null || A.cmClu.getBeauticians() == null) { if (!"".equals(area) || !"".equals(bedNums) || !"".equals(beauticians)) { list.add("更新了基本信息"); } } else { if (A.cmClu.getArea() != Integer.parseInt(area)) { list.add("修改了机构面积"); } if (A.cmClu.getBedNums() != Integer.parseInt(bedNums)) { list.add("修改了美容床数"); } if (A.cmClu.getBeauticians() != Integer.parseInt(beauticians)) { list.add("修改了美容师数"); } } if (A.newCm.getInfo() == null) { if (!"".equals(info)) { list.add("新增了公司简介"); } } else if (!A.newCm.getInfo().equals(info)) { list.add("修改了公司简介"); } if (empnum.equals(A.cmClu.getEmpnum())) { list.add("更新了公司人数"); } if (A.newCm.getFax() == null) { if (!"".equals(fax)) { list.add("新增了传真"); } } else if (!A.newCm.getFax().equals(fax)) { list.add("修改了传真"); } if (A.newCm.getContractPhone() == null) { if (!"".equals(contractPhone)) { list.add("新增了固定电话"); } } else if (!A.newCm.getContractPhone().equals(contractPhone)) { list.add("修改了固定电话"); } if (!A.newCm.getAddress().equals(address)) { list.add("修改了详细地址"); } if (Identity != null) { if (A.newCm.getLinkManIdentity() != Integer.parseInt(Identity)) { list.add("修改了联系人身份"); } } if (A.newCm.getUserName() == null) { if (uname != null) { list.add("新增了联系人"); } } if (!A.newCm.getUserName().equals(uname)) { list.add("修改了联系人"); } if (A.newCm.getFirstClubType() == null) { if (ClubType != null) { list.add("新增了机构类型"); } } else if (!A.newCm.getFirstClubType().equals(ClubType)) { list.add("修改了机构类型"); } if (A.newCm.getBusinessLicenseImage() == null) { if (businessLicenseImage != null) { list.add("新增了营业执照"); } } else { if (!A.newCm.getBusinessLicenseImage().equals(businessLicenseImage)) { list.add("修改了营业执照"); } } if (A.newCm.getHeadpic() == null) { if (headpic != null) { list.add("新增了门头照"); } if (!A.newCm.getHeadpic().equals(headpic)) { list.add("修改了门头照"); } } if (A.newCm.getSocialCreditCode() == null) { if (socialCreditCode != null) { list.add("新增了营业执照编号"); } if (!A.newCm.getSocialCreditCode().equals(socialCreditCode)) { list.add("修改了营业执照编号"); } } if (A.newCm.getAddress() == null) { if (address != null) { list.add("新增了详细地址"); } } if (A.newCm.getSname() == null) { if (sname != null) { list.add("新增了机构简称"); } } if (!A.newCm.getSname().equals(sname)) { list.add("修改了机构简称"); } if (A.newCm.getName() == null) { if (jgname != null) { list.add("新增了机构名称"); } } if (!A.newCm.getName().equals(jgname)) { list.add("修改了机构名称"); } if (A.newCm.getBindMobile() == null) { if (bindm != null) { list.add("新增了手机号"); } } if (!A.newCm.getBindMobile().equals(bindm)) { list.add("修改了手机号"); } if (A.newCm.getContractEmail() == null) { if (email != null) { list.add("新增了注册邮箱"); } } if (!A.newCm.getContractEmail().equals(email)) { list.add("修改了邮箱"); } sysLog.setActioncontent(StringUtils.strip(list.toString(), "[]")); } if (sysLog.getActioncontent() == null) { sysLog.setActioncontent(methodName); } //获取操作时间 sysLog.setOperationtime(new Date()); //获取操作员 Principal principal = UserUtils.getPrincipal(); System.out.println("操作员" + principal.getName()); String username = principal.getName(); sysLog.setOperator(username); //获取机构名称和联系人 String id = request.getParameter("id"); if ("编辑".equals(myLog.operType())) { sysLog.setInstitutionName(jgname); sysLog.setContact(uname); } if ("更换协销".equals(myLog.operType())) { System.out.println("更换协销" + A.newCms.getLinkMan()); System.out.println("更换协销" + A.newCm.getLinkMan()); if (!"".equals(A.newCms.getLinkMan())) { sysLog.setActioncontent(A.newCm.getLinkMan() + "更换为" + A.newCms.getLinkMan()); } sysLog.setContact(A.newCm.getUserName()); sysLog.setInstitutionName(A.newCm.getLinkMan()); } if ("设置机构类别".equals(myLog.operType())) { System.out.println("机构类别" + A.types); if ("1".equals(A.types)) { sysLog.setActioncontent("设置为资质机构"); } else { sysLog.setActioncontent("设置为个人机构"); } sysLog.setContact(A.cmUs.getUserName()); sysLog.setInstitutionName(A.cmUs.getName()); } if ("审核".equals(myLog.operType())) { System.out.println("审核" + A.cmUs.getAuditStatus()); if (StringUtils.equals("1", A.cmUs.getAuditStatus())) { sysLog.setActioncontent("审核通过"); } else { sysLog.setActioncontent("审核不通过"); } sysLog.setContact(A.cmUs.getUserName()); sysLog.setInstitutionName(A.cmUs.getName()); } if ("更改状态".equals(myLog.operType())) { sysLog.setContact(A.cmUs.getUserName()); sysLog.setInstitutionName(A.cmUs.getName()); } if ("修改密码".equals(myLog.operType())) { String Inst = A.cmUs.getName(); String Contact = A.cmUs.getUserName(); sysLog.setContact(Contact); sysLog.setInstitutionName(Inst); } if ("确认注册".equals(myLog.operType())) { sysLog.setActioncontent(methodName); ClubTemporary club = clubTemporaryService.get(id); if (club != null) { String Inst = club.getLinkMan(); String Contact = club.getName(); sysLog.setContact(Contact); sysLog.setInstitutionName(Inst); System.out.println("contact=" + sysLog.getContact()); } } //调用service保存SysLog实体类到数据库 if (!"".equals(sysLog.getActioncontent())) { // if (sysLog.getInstitutionName() != null && sysLog.getContact() != null) { int i = sysLogService.insert(sysLog); list.removeAll(list); } } // } }