基于 Spring Boot 和 MyBatis Plus 的用户操作日志管理系统

本文将详细介绍如何使用 Spring BootMyBatis Plus 构建一个用户操作日志管理系统。系统包含以下核心功能:

  • 根据用户登录名获取操作日志信息。
  • 封装用户登录名和操作日志的列表。
  • 提供灵活的查询条件实现。

核心类设计

1. UserHaveLogsVo

该类用于封装用户登录名以及用户的操作日志列表。


java

复制代码

import lombok.Data; import java.util.List; @Data public class UserHaveLogsVo { private String loginName; // 用户登录名 private List<UserinfoLog> logs; // 用户操作日志列表 }


2. UserinfoLog

该类表示用户的操作日志,包含日志的核心属性。


java

复制代码

import lombok.Data; import java.time.LocalDateTime; @Data public class UserinfoLog { private Long logId; // 日志ID private String logContent; // 日志内容 private Long userInfoId; // 用户信息ID private LocalDateTime createTime; // 创建时间 }


3. UserinfoService 接口

该接口定义了用户信息服务的核心方法,包括:

  • 通过登录名查找用户信息。
  • 用户登录。
  • 查询用户操作日志。

java

复制代码

import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; public interface UserinfoService extends IService<UserinfoLog> { /** * 根据登录名查询用户的操作日志 * * @param loginName 用户登录名 * @return 包含用户登录名和日志的封装对象 */ UserHaveLogsVo queryUserHaveLogs(String loginName); /** * 根据用户ID查询操作日志 * * @param userId 用户ID * @return 操作日志列表 */ List<UserinfoLog> getLogsByUserId(Long userId); }


4. UserinfoServiceImpl

UserinfoServiceImplUserinfoService 的实现类,继承了 MyBatis Plus 提供的 ServiceImpl,从而实现了常见的 CRUD 操作。同时,还需要实现接口中定义的自定义方法。


java

复制代码

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import java.util.List; @Service public class UserinfoServiceImpl extends ServiceImpl<UserinfoLogMapper, UserinfoLog> implements UserinfoService { @Override public UserHaveLogsVo queryUserHaveLogs(String loginName) { // 假设从数据库中查询用户ID Long userId = getUserIdByLoginName(loginName); // 查询日志信息 List<UserinfoLog> logs = getLogsByUserId(userId); // 封装结果 UserHaveLogsVo result = new UserHaveLogsVo(); result.setLoginName(loginName); result.setLogs(logs); return result; } @Override public List<UserinfoLog> getLogsByUserId(Long userId) { QueryWrapper<UserinfoLog> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("user_info_id", userId); return list(queryWrapper); } /** * 模拟通过登录名获取用户ID的方法 */ private Long getUserIdByLoginName(String loginName) { // 此处逻辑根据实际情况实现 return 1L; // 假设返回一个固定用户ID } }


关键 Mapper 配置

1. UserinfoLogMapper

用于操作 userinfo_log 表的 Mapper 接口。


java

复制代码

import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; @Mapper public interface UserinfoLogMapper extends BaseMapper<UserinfoLog> { }


Controller 层实现

为了调用服务并返回结果,我们需要实现一个 Controller。


java

复制代码

import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/userinfo") public class UserinfoController { @Autowired private UserinfoService userinfoService; /** * 根据登录名查询用户操作日志 * * @param loginName 用户登录名 * @return 包含用户操作日志的对象 */ @GetMapping("/logs/{loginName}") public UserHaveLogsVo getUserLogs(@PathVariable String loginName) { return userinfoService.queryUserHaveLogs(loginName); } }


运行结果

启动项目后,通过以下接口可以获取用户的操作日志:

接口地址:


bash

复制代码

GET /userinfo/logs/{loginName}

返回示例:


json

复制代码

{ "loginName": "user123", "logs": [ { "logId": 1, "logContent": "登录系统", "userInfoId": 1, "createTime": "2024-11-23T10:20:30" }, { "logId": 2, "logContent": "更新资料", "userInfoId": 1, "createTime": "2024-11-23T11:00:00" } ] }


结语

通过本文的示例,我们实现了一个用户操作日志管理系统,并展示了如何使用 MyBatis PlusSpring Boot 进行接口开发。希望对您有所帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值