日志管理之添加操作日志页面(1)

664 阅读1分钟

这是我参与 8 月更文挑战的第 22 天,活动详情查看: 8月更文挑战

前言

之前的日志管理中利用Springboot中的AOP来记录用户操作,能够清楚的看出用户操作了哪些类,使用了哪些方法名,输入到函数中的参数值以及操作ip,但这些日志记录数据更适合有一定编程基础的人查看,而对于负责日志管理的用户来说,他可能只想要知道,哪些人做了哪些操作,做了什么样的操作

目标

添加操作日志页面,能够展现操作日志记录包括操作人操作模块操作类型操作描述操作时间

具体实现步骤

1. 在pom.xml中添加AOP依赖

  <!-- aop依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>

2. 数据库设计

OperationLog表设计如下:

截屏2021-08-24 下午10.26.37

3. pojo层

pojonew一个名为OperationLog的java文件。

package com.tjm.pojo;

import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import lombok.Data;
import java.sql.Timestamp;

@AllArgsConstructor
@NoArgsConstructor
@Data
public class OperationLog {
    int oper_id;
    String oper_modul;
    String oper_type;
    String oper_desc;
    String username;
    Timestamp oper_creat_time;
}

4. service层

创建service接口文件以及接口实现类,代码如下:

(1)OperationLogService

package com.tjm.service;

import com.tjm.pojo.OperationLog;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface OperationLogService {

    int insertOperLog(OperationLog operationLog);

    List<OperationLog> queryLogList();
}

(2) OperationLogServiceImpl

package com.tjm.service;

import com.tjm.mapper.OperLogMapper;
import com.tjm.pojo.OperationLog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service("OperationLogService")
public class OperationLogServiceImpl implements OperationLogService{

    @Autowired
    private OperLogMapper operLogMapper;

    @Override
    public int insertOperLog(OperationLog operationLog) {
        return operLogMapper.insertOperLog(operationLog);
    }

    @Override
    public List<OperationLog> queryLogList(){
        return operLogMapper.queryLogList();
    }
}

5. mapper层

OperLogMapper

package com.tjm.mapper;

import com.tjm.pojo.OperationLog;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
@Mapper
public interface OperLogMapper {
    int insertOperLog(OperationLog operationLog);

    List<OperationLog> queryLogList();
}

然后在resources/mapper下新建一个OperLogMapper.xml,代码如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.tjm.mapper.OperLogMapper">

    <insert id="insertOperLog" parameterType="OperationLog" >
        <selectKey keyProperty="oper_id" resultType="int" order="BEFORE">
            select nvl(max("oper_id"),0)+1 from "OperationLog"
        </selectKey>
        insert into "OperationLog"("oper_id","oper_modul","oper_type","oper_desc","username","oper_creat_time")
        values(#{oper_id},#{oper_modul},#{oper_type},#{oper_desc},#{username},#{oper_creat_time})
    </insert>

    <select id="queryLogList" resultType="OperationLog">
        select * from "OperationLog" Order by "oper_id"
    </select>

</mapper>