|
|
|
@ -10,7 +10,6 @@
|
|
|
|
|
|
|
|
|
|
package com.yami.shop.sys.controller;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
import com.yami.shop.sys.model.SysLog;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
@ -20,37 +19,49 @@ import org.springframework.web.bind.annotation.GetMapping;
|
|
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.yami.shop.common.util.PageParam;
|
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
|
import com.yami.shop.sys.service.SysLogService;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 系统日志
|
|
|
|
|
* SysLogController类,主要用于处理系统日志相关的请求操作,是一个Spring RESTful风格的控制器。
|
|
|
|
|
* 它提供了获取系统日志列表等相关接口,通过调用对应的服务层方法与数据库交互来获取和返回数据。
|
|
|
|
|
*
|
|
|
|
|
* @author lgh
|
|
|
|
|
*/
|
|
|
|
|
@RestController
|
|
|
|
|
@RequestMapping("/sys/log")
|
|
|
|
|
public class SysLogController {
|
|
|
|
|
@Autowired
|
|
|
|
|
private SysLogService sysLogService;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 列表
|
|
|
|
|
*/
|
|
|
|
|
@GetMapping("/page")
|
|
|
|
|
@PreAuthorize("@pms.hasPermission('sys:log:page')")
|
|
|
|
|
public ServerResponseEntity<IPage<SysLog>> page(SysLog sysLog,PageParam<SysLog> page){
|
|
|
|
|
IPage<SysLog> sysLogs = sysLogService.page(page,
|
|
|
|
|
new LambdaQueryWrapper<SysLog>()
|
|
|
|
|
.like(StrUtil.isNotBlank(sysLog.getUsername()),SysLog::getUsername, sysLog.getUsername())
|
|
|
|
|
.like(StrUtil.isNotBlank(sysLog.getOperation()), SysLog::getOperation,sysLog.getOperation()));
|
|
|
|
|
return ServerResponseEntity.success(sysLogs);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 通过Spring的依赖注入自动装配SysLogService实例,用于调用服务层的业务逻辑方法,
|
|
|
|
|
* 比如获取系统日志数据、进行分页查询等操作都依赖此服务层对象来完成。
|
|
|
|
|
*/
|
|
|
|
|
@Autowired
|
|
|
|
|
private SysLogService sysLogService;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 处理获取系统日志列表的请求方法,返回分页后的系统日志信息。
|
|
|
|
|
* 该方法接收前端传入的SysLog对象(可能包含查询条件,如用户名、操作内容等)和PageParam对象(用于分页相关参数设置)。
|
|
|
|
|
* 会根据传入的条件进行模糊查询,并返回分页后的系统日志数据响应给前端。
|
|
|
|
|
* 同时,通过@PreAuthorize注解进行权限校验,只有拥有'sys:log:page'权限的用户才能访问此接口。
|
|
|
|
|
*
|
|
|
|
|
* @param sysLog 包含可能的查询条件的系统日志对象,例如用户名、操作内容等字段可作为查询过滤条件。
|
|
|
|
|
* @param page 分页参数对象,包含了如页码、每页数量等分页相关的信息。
|
|
|
|
|
* @return ServerResponseEntity<IPage<SysLog>> 返回包含分页系统日志信息的响应实体,如果查询成功则状态码为成功,
|
|
|
|
|
* 数据体中包含分页后的系统日志列表;如果出现异常等情况则返回相应的错误信息。
|
|
|
|
|
*/
|
|
|
|
|
@GetMapping("/page")
|
|
|
|
|
@PreAuthorize("@pms.hasPermission('sys:log:page')")
|
|
|
|
|
public ServerResponseEntity<IPage<SysLog>> page(SysLog sysLog, PageParam<SysLog> page) {
|
|
|
|
|
// 使用LambdaQueryWrapper构建查询条件,根据传入的sysLog对象中的用户名和操作内容进行模糊查询。
|
|
|
|
|
// 只有当用户名或操作内容不为空字符串时,才添加对应的模糊查询条件。
|
|
|
|
|
IPage<SysLog> sysLogs = sysLogService.page(page,
|
|
|
|
|
new LambdaQueryWrapper<SysLog>()
|
|
|
|
|
.like(StrUtil.isNotBlank(sysLog.getUsername()), SysLog::getUsername, sysLog.getUsername())
|
|
|
|
|
.like(StrUtil.isNotBlank(sysLog.getOperation()), SysLog::getOperation, sysLog.getOperation()));
|
|
|
|
|
return ServerResponseEntity.success(sysLogs);
|
|
|
|
|
}
|
|
|
|
|
}
|