From 4d5eff3b824dac8e50400b2ec1114cba4ed6a87c Mon Sep 17 00:00:00 2001 From: kaiyu <404897439@qq.com> Date: Wed, 07 Apr 2021 17:05:43 +0800 Subject: [PATCH] screen-manage 完成sysarea模块查询 拦截器逻辑代码完成 修改organization和accountBug --- screen-manage/src/main/java/com/moral/api/aop/log/OperationLogAspect.java | 106 ++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 73 insertions(+), 33 deletions(-) diff --git a/screen-manage/src/main/java/com/moral/api/aop/log/OperationLogAspect.java b/screen-manage/src/main/java/com/moral/api/aop/log/OperationLogAspect.java index f7b53a4..8ac76a1 100644 --- a/screen-manage/src/main/java/com/moral/api/aop/log/OperationLogAspect.java +++ b/screen-manage/src/main/java/com/moral/api/aop/log/OperationLogAspect.java @@ -1,18 +1,29 @@ package com.moral.api.aop.log; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.moral.api.entity.ManageLog; import com.moral.api.entity.Organization; import com.moral.api.mapper.ManageLogMapper; +import com.moral.api.mapper.OrganizationMapper; +import com.moral.api.pojo.dto.login.AccountInfoDTO; +import com.moral.api.pojo.form.organization.OrganizationDeleteForm; import com.moral.api.pojo.form.organization.OrganizationInsertForm; +import com.moral.api.pojo.form.organization.OrganizationUpdateForm; import com.moral.constant.Constants; +import com.moral.constant.ResponseCodeEnum; +import com.moral.util.TokenUtils; import com.moral.util.WebUtils; +import lombok.Data; 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.beans.factory.annotation.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.context.request.RequestAttributes; @@ -20,6 +31,7 @@ import javax.servlet.http.HttpServletRequest; import java.lang.reflect.Method; +import java.util.Map; /** * @ClassName OperationLogAspect @@ -30,10 +42,18 @@ **/ @Aspect @Component +@ConfigurationProperties(prefix = "log-aspect") +@Data public class OperationLogAspect { @Autowired ManageLogMapper manageLogMapper; + + @Autowired + OrganizationMapper organizationMapper; + + Map<String,String> organizationFormMap; + /** * @Description: ������������������OperationLogAnno��������������������� @@ -55,63 +75,83 @@ * @Date: 2021/3/31 */ @AfterReturning(returning = "result", value = "pointCut()") + @Transactional public void saveOperLog(JoinPoint joinPoint, Object result) throws Throwable { + //������������������������������������������������ + Map resultMap = JSONObject.parseObject(JSONObject.toJSONString(result), Map.class); + if (!ResponseCodeEnum.SUCCESS.getCode().equals(resultMap.get("code"))) + return; //������������������ RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); HttpServletRequest request = (HttpServletRequest) requestAttributes.resolveReference(RequestAttributes.REFERENCE_REQUEST); Object parameters = request.getAttribute("parameters"); + String token = request.getHeader("token"); //������module���type MethodSignature signature = (MethodSignature) joinPoint.getSignature();//��������������������������� Method method = signature.getMethod();//������������������������ OperationLogAnno anno = method.getAnnotation(OperationLogAnno.class);//��������������������� String module = anno.module();//��������������������� String type = anno.type();//��������������������� - saveLog(request,parameters, module, type); + //������������������id ip ������ + Integer id = Integer.parseInt(TokenUtils.getUidByToken(token)); + String ip = WebUtils.getIpAddr(request); + AccountInfoDTO account = (AccountInfoDTO) TokenUtils.getUserInfoByToken(token); + String accountName = account.getAccount().getUserName(); + //������content + String content = getContent(type,module,parameters); + content = content+"���������������"+accountName+";"; + //��������������� + ManageLog manageLog = new ManageLog(); + manageLog.setContent(content); + manageLog.setIp(ip); + manageLog.setAccountId(id); + manageLogMapper.insert(manageLog); + } - /** - * @Description: ������������ - * @Param: [paramters, module, type] - * @return: void - * @Author: ��������� - * @Date: 2021/3/31 - */ - public void saveLog(HttpServletRequest request,Object paramters, String module, String type) { + public String getContent(String type, String module,Object parameters) { + String content = ""; if (module.equals(Constants.ORGANIZATION_MODULE_NAME)) { - saveOrganizationLog(request,paramters, module, type); + content = getOrganizationContent(type,parameters); } + + return content; } /** - * @Description: ������������������ - * @Param: [paramters, module, type] - * @return: void - * @Author: ��������� - * @Date: 2021/3/31 - */ - @Transactional - public void saveOrganizationLog(HttpServletRequest request,Object paramters, String module, String type) { + * @Description: ������������������������������ + * @Param: [type, parameters] + * @return: java.lang.String + * @Author: ��������� + * @Date: 2021/4/1 + */ + public String getOrganizationContent(String type,Object parameters) { + StringBuilder content = new StringBuilder(); if (type.equals(Constants.INSERT_OPERATE_TYPE)) {//������������������������������ - OrganizationInsertForm form = JSON.parseObject(JSON.toJSONString(paramters), OrganizationInsertForm.class); - Integer accountId = 1;//������ ������������ - String accountName = "������������"; + OrganizationInsertForm form = JSON.parseObject(JSON.toJSONString(parameters), OrganizationInsertForm.class); String organizationName = form.getName(); - String ip = WebUtils.getIpAddr(request); - String content = accountName+"���������������������"+organizationName; - - ManageLog manageLog = new ManageLog(); - manageLog.setContent(content); - manageLog.setIp(ip); - manageLog.setAccountId(accountId); - manageLog.setModule(module); - manageLog.setType(type); - manageLogMapper.insert(manageLog); + content.append("������������������").append(organizationName).append(";"); } else if (type.equals(Constants.DELETE_OPERATE_TYPE)) { //������������������������ - + OrganizationDeleteForm form = JSON.parseObject(JSON.toJSONString(parameters), OrganizationDeleteForm.class); + Organization organization = organizationMapper.selectById(form.getOrganizationId()); + String organizationName = organization.getName(); + content.append("������������������").append(organizationName).append(";"); } else if (type.equals(Constants.UPDATE_OPERATE_TYPE)) { //������������������������ - + OrganizationUpdateForm form = JSON.parseObject(JSON.toJSONString(parameters), OrganizationUpdateForm.class); + Map<String,Object> formMap = JSON.parseObject(JSON.toJSONString(parameters), Map.class); + Organization organization = organizationMapper.selectById(form.getOrganizationId()); + String organizationName = organization.getName(); + content.append("������������������").append(organizationName).append(";"); + //���formMap������Key��������������������������������� + formMap.forEach((k,v)->{ + String key = organizationFormMap.get(k); + if(key!=null) + content.append(key).append("->").append(v).append(";"); + }); } + return content.toString(); } + } -- Gitblit v1.8.0