liuxm
2024-04-24 3fd15bc3818a16c20ca48f1a98a41e2bb456bdb7
日志管理--添加字段;登录验证码验证后删除
1个文件已删除
5个文件已修改
144 ■■■■ 已修改文件
pms-parent/pms-common/src/main/java/com/dy/common/util/ObjectToMapUtil.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/aop/LogAspect.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/aop/LogService.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/pojoBa/BaLog.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pms-parent/pms-global/src/main/resources/mapper/BaLogMapper.xml 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pms-parent/pms-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pms-parent/pms-common/src/main/java/com/dy/common/util/ObjectToMapUtil.java
File was deleted
pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/aop/LogAspect.java
@@ -1,12 +1,14 @@
package com.dy.pmsGlobal.aop;
import com.dy.common.util.ObjectToMapUtil;
import com.alibaba.fastjson2.JSONObject;
import com.dy.common.webFilter.UserTokenContext;
import com.dy.common.webUtil.BaseResponse;
import com.dy.common.webUtil.BaseResponseUtils;
import com.dy.pmsGlobal.pojoBa.BaUser;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.mysql.cj.util.StringUtils;
import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
@@ -23,8 +25,7 @@
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.util.UriComponentsBuilder;
import java.util.Map;
@Slf4j
@Aspect
@Component
public class LogAspect {
@@ -44,24 +45,24 @@
    }
    @AfterReturning(pointcut = "@annotation(com.dy.pmsGlobal.aop.Log)", returning = "result")
    public void logAfterReturning(JoinPoint joinPoint, Object result) {
        //结果
        BaseResponse res = (BaseResponse)result;
        res.isSuccess();
        // 获取用户信息
        BaUser user = (BaUser)getCurUser(res);
        if(user!=null){
            Long operator = user.id;
            // 获取方法的中文描述
            MethodSignature sign = (MethodSignature) joinPoint.getSignature();
            Log logDesc = sign.getMethod().getAnnotation(Log.class);
            String operationName = logDesc.value();
            // 获取IP地址
            String ip = getRemoteHost();
            // 记录日志
            logSv.save(operator, operationName,ip);
    public void logAfterReturning(JoinPoint joinPoint, BaseResponse result) {
        try{
            // 获取用户信息
            BaUser user = (BaUser)getCurUser(result);
            if(user!=null && user.id !=null && !StringUtils.isNullOrEmpty(user.name)){
                Long operator = user.id;
                // 获取方法的中文描述
                MethodSignature sign = (MethodSignature) joinPoint.getSignature();
                Log logDesc = sign.getMethod().getAnnotation(Log.class);
                String operationName = logDesc.value();
                // 获取IP地址
                String ip = getRemoteHost();
                // 记录日志
                logSv.save(operator, operationName,ip,result.getCode(),result.getMsg());
            }
        }catch (Exception e){
            log.error("记录日志异常:"+e.getMessage());
        }
    }
    /**
@@ -73,8 +74,10 @@
        if(!StringUtils.isNullOrEmpty(SsoCurUserUrl)){
            String token = UserTokenContext.get();
            if(StringUtils.isNullOrEmpty(token)){
                Map<String,Object> resMap = ObjectToMapUtil.objectToMap(response.getContent());
                token =resMap.containsKey("token")?resMap.get("token").toString():"";
                JSONObject res = objectToJson(response.getContent());
                if(res!=null && res.containsKey("token")){
                    token = res.get("token").toString();
                }
            }
            String url = UriComponentsBuilder.fromUriString(SsoCurUserUrl)
@@ -116,4 +119,20 @@
        }
        return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : ip;
    }
    /**
     * 将对象转换为JSONObject
     * @param obj
     * @return
     */
    public static JSONObject objectToJson(Object obj) {
        ObjectMapper mapper = new ObjectMapper();
        try {
            JSONObject o = JSONObject.parseObject(mapper.writeValueAsString(obj));
            return o;
        } catch (Exception e) {
            log.error("对象转换为JSONObject失败:"+e.getMessage());
            return null;
        }
    }
}
pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/aop/LogService.java
@@ -13,12 +13,14 @@
    @Autowired
    private BaLogMapper dao;
    public void save(long operator, String operation,String ip) {
    public void save(long operator, String operation,String ip,String code,String msg) {
        BaLog log = new BaLog();
        log.userId=operator;
        log.content = operation;
        log.dt = new Date();
        log.ip = ip;
        log.code = code;
        log.msg = msg;
        dao.insert(log);
    }
pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/pojoBa/BaLog.java
@@ -1,5 +1,9 @@
package com.dy.pmsGlobal.pojoBa;
import com.alibaba.fastjson2.annotation.JSONField;
import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
@@ -12,6 +16,9 @@
@NoArgsConstructor
@AllArgsConstructor
public class BaLog {
    @JSONField(serializeUsing= ObjectWriterImplToString.class)
    @TableId(value = "id", type = IdType.INPUT)
    public Long id;
    /**
@@ -30,6 +37,15 @@
    public String ip;
    /**
     * 响应状态码
     */
    public String code;
    /**
     * 响应信息
     */
    public String msg;
    /**
    * 创建时间
    */
    public Date dt;
pms-parent/pms-global/src/main/resources/mapper/BaLogMapper.xml
@@ -8,11 +8,13 @@
    <result column="user_id" jdbcType="BIGINT" property="userId" />
    <result column="content" jdbcType="VARCHAR" property="content" />
    <result column="ip" jdbcType="VARCHAR" property="ip" />
    <result column="code" jdbcType="VARCHAR" property="code" />
    <result column="msg" jdbcType="VARCHAR" property="msg" />
    <result column="dt" jdbcType="TIMESTAMP" property="dt" />
  </resultMap>
  <sql id="Base_Column_List">
    <!--@mbg.generated-->
    id, user_id, content, dt,ip
    id, user_id, content, dt,ip,code,msg
  </sql>
  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
    <!--@mbg.generated-->
@@ -23,10 +25,10 @@
  </select>
  <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.dy.pmsGlobal.pojoBa.BaLog" useGeneratedKeys="true">
    <!--@mbg.generated-->
    insert into ba_log (user_id, content, dt,ip
    insert into ba_log (user_id, content, ip,code,msg
      )
    values (#{userId,jdbcType=BIGINT}, #{content,jdbcType=VARCHAR}, #{dt,jdbcType=TIMESTAMP}
    , #{ip,jdbcType=VARCHAR}
    values (#{userId,jdbcType=BIGINT}, #{content,jdbcType=VARCHAR}, #{ip,jdbcType=VARCHAR},
    #{code,jdbcType=VARCHAR},#{msg,jdbcType=VARCHAR}
      )
  </insert>
  <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.dy.pmsGlobal.pojoBa.BaLog" useGeneratedKeys="true">
@@ -39,8 +41,11 @@
      <if test="content != null">
        content,
      </if>
      <if test="dt != null">
        dt,
      <if test="code != null">
        code,
      </if>
      <if test="msg != null">
        msg,
      </if>
      <if test="ip != null">
        ip,
@@ -53,8 +58,11 @@
      <if test="content != null">
        #{content,jdbcType=VARCHAR},
      </if>
      <if test="dt != null">
        #{dt,jdbcType=TIMESTAMP},
      <if test="code != null">
        #{code,jdbcType=VARCHAR},
      </if>
      <if test="msg != null">
        #{msg,jdbcType=VARCHAR},
      </if>
      <if test="ip != null">
        #{ip,jdbcType=VARCHAR},
pms-parent/pms-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java
@@ -66,6 +66,7 @@
            String sessionCaptcha = (String) session.getAttribute("captcha");
            // 首先验证验证码
            if (vo.captcha != null && vo.captcha.equalsIgnoreCase(sessionCaptcha)) {
                session.removeAttribute("captcha");
                return this.doLogin(vo) ;
            } else {
                // 验证码错误,返回登录页面并显示错误信息
@@ -93,6 +94,7 @@
            String sessionCaptcha = (String) session.getAttribute("captcha");
            // 首先验证验证码
            if (vo.captcha != null && vo.captcha.equalsIgnoreCase(sessionCaptcha)) {
                session.removeAttribute("captcha");
                return this.doLogin(vo) ;
            } else {
                // 验证码错误,返回登录页面并显示错误信息