✨ 操作日志和访问日志记录追踪ID,方便排查问题
This commit is contained in:
@@ -3,10 +3,12 @@ package com.hccake.ballcat.admin.modules.conf.controller;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.CreateOperationLogging;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.DeleteOperationLogging;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.UpdateOperationLogging;
|
||||
import com.hccake.ballcat.common.core.result.R;
|
||||
import com.hccake.ballcat.common.modules.config.model.entity.BaseConfig;
|
||||
import com.hccake.ballcat.common.modules.config.service.BaseConfigService;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.OperationLogging;
|
||||
import com.hccake.ballcat.common.core.result.R;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -62,7 +64,7 @@ public class BaseConfigController {
|
||||
* @return R
|
||||
*/
|
||||
@ApiOperation(value = "新增系统配置表", notes = "新增系统配置表")
|
||||
@OperationLogging("新增系统配置表")
|
||||
@CreateOperationLogging(msg = "新增系统配置表")
|
||||
@PostMapping
|
||||
@PreAuthorize("@per.hasPermission('config:baseconfig:add')")
|
||||
public R save(@RequestBody BaseConfig baseConfig) {
|
||||
@@ -76,7 +78,7 @@ public class BaseConfigController {
|
||||
* @return R
|
||||
*/
|
||||
@ApiOperation(value = "修改系统配置表", notes = "修改系统配置表")
|
||||
@OperationLogging("修改系统配置表")
|
||||
@UpdateOperationLogging(msg = "修改系统配置表")
|
||||
@PutMapping
|
||||
@PreAuthorize("@per.hasPermission('config:baseconfig:edit')")
|
||||
public R updateById(@RequestBody BaseConfig baseConfig) {
|
||||
@@ -90,7 +92,7 @@ public class BaseConfigController {
|
||||
* @return R
|
||||
*/
|
||||
@ApiOperation(value = "通过id删除系统配置表", notes = "通过id删除系统配置表")
|
||||
@OperationLogging("通过id删除系统配置表")
|
||||
@DeleteOperationLogging(msg = "通过id删除系统配置表")
|
||||
@DeleteMapping("/{id}")
|
||||
@PreAuthorize("@per.hasPermission('config:baseconfig:del')")
|
||||
public R removeById(@PathVariable Integer id) {
|
||||
|
||||
@@ -7,10 +7,12 @@ import com.hccake.ballcat.admin.modules.log.thread.AccessLogAdminSaveThread;
|
||||
import com.hccake.ballcat.admin.oauth.SysUserDetails;
|
||||
import com.hccake.ballcat.admin.oauth.util.SecurityUtils;
|
||||
import com.hccake.ballcat.commom.log.access.handler.AccessLogHandler;
|
||||
import com.hccake.ballcat.commom.log.constant.LogConstant;
|
||||
import com.hccake.ballcat.commom.log.util.LogUtils;
|
||||
import com.hccake.ballcat.common.core.util.IPUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.slf4j.MDC;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.servlet.HandlerMapping;
|
||||
|
||||
@@ -44,6 +46,7 @@ public class AdminAccessLogHandler implements AccessLogHandler<AdminAccessLog> {
|
||||
public AdminAccessLog prodLog(HttpServletRequest request, HttpServletResponse response, Long time, Throwable myThrowable) {
|
||||
|
||||
AdminAccessLog adminAccessLog = new AdminAccessLog()
|
||||
.setTraceId(MDC.get(LogConstant.TRACE_ID))
|
||||
.setCreateTime(LocalDateTime.now())
|
||||
.setTime(time)
|
||||
.setIp(IPUtil.getIpAddr(request))
|
||||
|
||||
@@ -31,6 +31,11 @@ public class AdminAccessLog extends Model<AdminAccessLog> {
|
||||
@TableId
|
||||
@ApiModelProperty(value = "编号")
|
||||
private Long id;
|
||||
/**
|
||||
* 追踪ID
|
||||
*/
|
||||
@ApiModelProperty(value="追踪ID")
|
||||
private String traceId;
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
|
||||
@@ -29,6 +29,11 @@ private static final long serialVersionUID = 1L;
|
||||
@TableId
|
||||
@ApiModelProperty(value="编号")
|
||||
private Long id;
|
||||
/**
|
||||
* 追踪ID
|
||||
*/
|
||||
@ApiModelProperty(value="追踪ID")
|
||||
private String traceId;
|
||||
/**
|
||||
* 日志消息
|
||||
*/
|
||||
@@ -50,9 +55,9 @@ private static final long serialVersionUID = 1L;
|
||||
@ApiModelProperty(value="请求URI")
|
||||
private String uri;
|
||||
/**
|
||||
* 操作方式
|
||||
* 请求方法
|
||||
*/
|
||||
@ApiModelProperty(value="操作方式")
|
||||
@ApiModelProperty(value="请求方法")
|
||||
private String method;
|
||||
/**
|
||||
* 操作提交的数据
|
||||
@@ -64,6 +69,11 @@ private static final long serialVersionUID = 1L;
|
||||
*/
|
||||
@ApiModelProperty(value="操作状态")
|
||||
private Integer status;
|
||||
/**
|
||||
* 操作类型
|
||||
*/
|
||||
@ApiModelProperty(value="操作类型")
|
||||
private Integer type;
|
||||
/**
|
||||
* 执行时长
|
||||
*/
|
||||
|
||||
@@ -7,7 +7,9 @@ import com.hccake.ballcat.admin.modules.sys.model.entity.SysDict;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysDictItem;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.qo.SysDictQO;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.vo.DictDataAndHashVO;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.OperationLogging;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.CreateOperationLogging;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.DeleteOperationLogging;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.UpdateOperationLogging;
|
||||
import com.hccake.ballcat.common.core.result.BaseResultCode;
|
||||
import com.hccake.ballcat.common.core.result.R;
|
||||
import io.swagger.annotations.Api;
|
||||
@@ -83,7 +85,7 @@ public class SysDictController {
|
||||
* @return R
|
||||
*/
|
||||
@ApiOperation(value = "新增字典表", notes = "新增字典表")
|
||||
@OperationLogging("新增字典表")
|
||||
@CreateOperationLogging(msg = "新增字典表")
|
||||
@PostMapping
|
||||
@PreAuthorize("@per.hasPermission('sys:dict:add')")
|
||||
public R save(@RequestBody SysDict sysDict) {
|
||||
@@ -98,7 +100,7 @@ public class SysDictController {
|
||||
* @return R
|
||||
*/
|
||||
@ApiOperation(value = "修改字典表", notes = "修改字典表")
|
||||
@OperationLogging("修改字典表")
|
||||
@UpdateOperationLogging(msg = "修改字典表")
|
||||
@PutMapping
|
||||
@PreAuthorize("@per.hasPermission('sys:dict:edit')")
|
||||
public R updateById(@RequestBody SysDict sysDict) {
|
||||
@@ -113,7 +115,7 @@ public class SysDictController {
|
||||
* @return R
|
||||
*/
|
||||
@ApiOperation(value = "通过id删除字典表", notes = "通过id删除字典表")
|
||||
@OperationLogging("通过id删除字典表")
|
||||
@DeleteOperationLogging(msg = "通过id删除字典表")
|
||||
@DeleteMapping("/{id}")
|
||||
@PreAuthorize("@per.hasPermission('sys:dict:del')")
|
||||
public R removeById(@PathVariable Integer id) {
|
||||
@@ -144,7 +146,7 @@ public class SysDictController {
|
||||
* @return R
|
||||
*/
|
||||
@ApiOperation(value = "新增字典项", notes = "新增字典项")
|
||||
@OperationLogging("新增字典项")
|
||||
@CreateOperationLogging(msg = "新增字典项")
|
||||
@PostMapping("item")
|
||||
@PreAuthorize("@per.hasPermission('sys:dict:add')")
|
||||
public R saveItem(@RequestBody SysDictItem sysDictItem) {
|
||||
@@ -159,7 +161,7 @@ public class SysDictController {
|
||||
* @return R
|
||||
*/
|
||||
@ApiOperation(value = "修改字典项", notes = "修改字典项")
|
||||
@OperationLogging("修改字典项")
|
||||
@UpdateOperationLogging(msg = "修改字典项")
|
||||
@PutMapping("item")
|
||||
@PreAuthorize("@per.hasPermission('sys:dict:edit')")
|
||||
public R updateItemById(@RequestBody SysDictItem sysDictItem) {
|
||||
@@ -174,7 +176,7 @@ public class SysDictController {
|
||||
* @return R
|
||||
*/
|
||||
@ApiOperation(value = "通过id删除字典项", notes = "通过id删除字典项")
|
||||
@OperationLogging("通过id删除字典项")
|
||||
@DeleteOperationLogging(msg = "通过id删除字典项")
|
||||
@DeleteMapping("/item/{id}")
|
||||
@PreAuthorize("@per.hasPermission('sys:dict:del')")
|
||||
public R removeItemById(@PathVariable Integer id) {
|
||||
|
||||
@@ -10,7 +10,9 @@ import com.hccake.ballcat.admin.modules.sys.model.vo.Router;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysPermissionService;
|
||||
import com.hccake.ballcat.admin.oauth.SysUserDetails;
|
||||
import com.hccake.ballcat.admin.oauth.util.SecurityUtils;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.OperationLogging;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.CreateOperationLogging;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.DeleteOperationLogging;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.UpdateOperationLogging;
|
||||
import com.hccake.ballcat.common.core.result.R;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@@ -93,7 +95,7 @@ public class SysPermissionController {
|
||||
|
||||
|
||||
@ApiOperation(value = "新增权限", notes = "新增权限" )
|
||||
@OperationLogging("新增权限" )
|
||||
@CreateOperationLogging(msg = "新增权限" )
|
||||
@PostMapping
|
||||
@PreAuthorize("@per.hasPermission('sys:syspermission:add')")
|
||||
public R save(@Valid @RequestBody SysPermission sysMenu) {
|
||||
@@ -108,7 +110,7 @@ public class SysPermissionController {
|
||||
* @return R
|
||||
*/
|
||||
@ApiOperation(value = "修改权限", notes = "修改权限" )
|
||||
@OperationLogging("修改权限" )
|
||||
@UpdateOperationLogging(msg = "修改权限" )
|
||||
@PutMapping
|
||||
@PreAuthorize("@per.hasPermission('sys:syspermission:edit')" )
|
||||
public R update(@Valid @RequestBody SysPermission sysPermission) {
|
||||
@@ -117,7 +119,7 @@ public class SysPermissionController {
|
||||
|
||||
|
||||
@ApiOperation(value = "通过id删除权限", notes = "通过id删除权限" )
|
||||
@OperationLogging("通过id删除权限" )
|
||||
@DeleteOperationLogging(msg = "通过id删除权限" )
|
||||
@DeleteMapping("/{id}" )
|
||||
@PreAuthorize("@per.hasPermission('sys:syspermission:del')" )
|
||||
public R removeById(@PathVariable Integer id) {
|
||||
|
||||
@@ -9,7 +9,9 @@ import com.hccake.ballcat.admin.modules.sys.model.vo.PermissionVO;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysPermissionService;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysRolePermissionService;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysRoleService;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.OperationLogging;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.CreateOperationLogging;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.DeleteOperationLogging;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.UpdateOperationLogging;
|
||||
import com.hccake.ballcat.common.core.result.R;
|
||||
import com.hccake.ballcat.common.core.vo.SelectData;
|
||||
import io.swagger.annotations.Api;
|
||||
@@ -65,7 +67,7 @@ public class SysRoleController {
|
||||
* @return R
|
||||
*/
|
||||
@ApiOperation(value = "新增系统角色", notes = "新增系统角色")
|
||||
@OperationLogging("新增系统角色")
|
||||
@CreateOperationLogging(msg = "新增系统角色")
|
||||
@PostMapping
|
||||
@PreAuthorize("@per.hasPermission('sys:sysrole:add')")
|
||||
public R save(@Valid @RequestBody SysRole sysRole) {
|
||||
@@ -79,7 +81,7 @@ public class SysRoleController {
|
||||
* @return success/false
|
||||
*/
|
||||
@ApiOperation(value = "修改系统角色", notes = "修改系统角色")
|
||||
@OperationLogging("修改系统角色")
|
||||
@UpdateOperationLogging(msg = "修改系统角色")
|
||||
@PutMapping
|
||||
@PreAuthorize("@per.hasPermission('sys:sysrole:edit')")
|
||||
public R update(@Valid @RequestBody SysRole role) {
|
||||
@@ -94,7 +96,7 @@ public class SysRoleController {
|
||||
*/
|
||||
@DeleteMapping("/{id}")
|
||||
@ApiOperation(value = "通过id删除系统角色", notes = "通过id删除系统角色")
|
||||
@OperationLogging("通过id删除系统角色")
|
||||
@DeleteOperationLogging(msg = "通过id删除系统角色")
|
||||
@PreAuthorize("@per.hasPermission('sys:sysrole:del')")
|
||||
public R removeById(@PathVariable Integer id) {
|
||||
return R.ok(sysRoleService.removeRoleById(id));
|
||||
@@ -120,7 +122,7 @@ public class SysRoleController {
|
||||
*/
|
||||
@PutMapping("/permission/ids/{roleId}")
|
||||
@ApiOperation(value = "更新角色权限", notes = "更新角色权限")
|
||||
@OperationLogging("更新角色权限")
|
||||
@UpdateOperationLogging(msg = "更新角色权限")
|
||||
@PreAuthorize("@per.hasPermission('sys:sysrole:grant')")
|
||||
public R savePermissionIds(@PathVariable Integer roleId, @RequestBody Integer[] permissionIds) {
|
||||
return R.ok(sysRolePermissionService.saveRolePermissions(roleId, permissionIds));
|
||||
|
||||
@@ -12,7 +12,9 @@ import com.hccake.ballcat.admin.modules.sys.model.entity.SysUser;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.qo.SysUserQO;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysUserRoleService;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysUserService;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.OperationLogging;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.CreateOperationLogging;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.DeleteOperationLogging;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.UpdateOperationLogging;
|
||||
import com.hccake.ballcat.common.core.result.BaseResultCode;
|
||||
import com.hccake.ballcat.common.core.result.R;
|
||||
import com.hccake.ballcat.common.core.result.SystemResultCode;
|
||||
@@ -90,7 +92,7 @@ public class SysUserController {
|
||||
*/
|
||||
@PostMapping
|
||||
@ApiOperation(value = "新增系统用户", notes = "新增系统用户")
|
||||
@OperationLogging("新增系统用户")
|
||||
@CreateOperationLogging(msg = "新增系统用户")
|
||||
@PreAuthorize("@per.hasPermission('sys:sysuser:add')")
|
||||
public R addSysUser(@Valid @RequestBody SysUserDTO sysUserDto) {
|
||||
|
||||
@@ -111,7 +113,7 @@ public class SysUserController {
|
||||
*/
|
||||
@PutMapping
|
||||
@ApiOperation(value = "修改系统用户", notes = "修改系统用户")
|
||||
@OperationLogging("修改系统用户")
|
||||
@UpdateOperationLogging(msg = "修改系统用户")
|
||||
@PreAuthorize("@per.hasPermission('sys:sysuser:edit')")
|
||||
public R updateUserInfo(@Valid @RequestBody SysUserDTO sysUserDto) {
|
||||
return sysUserService.updateSysUser(sysUserDto) ?
|
||||
@@ -127,7 +129,7 @@ public class SysUserController {
|
||||
*/
|
||||
@DeleteMapping("/{userId}")
|
||||
@ApiOperation(value = "通过id删除系统用户", notes = "通过id删除系统用户")
|
||||
@OperationLogging("通过id删除系统用户")
|
||||
@DeleteOperationLogging(msg = "通过id删除系统用户")
|
||||
@PreAuthorize("@per.hasPermission('sys:sysuser:del')")
|
||||
public R deleteByUserId(@PathVariable Integer userId) {
|
||||
return sysUserService.deleteByUserId(userId) ?
|
||||
@@ -170,7 +172,7 @@ public class SysUserController {
|
||||
*/
|
||||
@PutMapping("/scope/{userId}")
|
||||
@ApiOperation(value = "系统用户授权", notes = "系统用户授权")
|
||||
@OperationLogging("系统用户授权")
|
||||
@UpdateOperationLogging(msg = "系统用户授权")
|
||||
@PreAuthorize("@per.hasPermission('sys:sysuser:grant')")
|
||||
public R updateUserScope(@PathVariable Integer userId, @RequestBody SysUserScope sysUserScope) {
|
||||
return sysUserService.updateUserScope(userId, sysUserScope) ?
|
||||
@@ -188,7 +190,7 @@ public class SysUserController {
|
||||
*/
|
||||
@PutMapping("/pass/{userId}")
|
||||
@ApiOperation(value = "修改系统用户密码", notes = "修改系统用户密码")
|
||||
@OperationLogging("修改系统用户密码")
|
||||
@UpdateOperationLogging(msg = "修改系统用户密码")
|
||||
@PreAuthorize("@per.hasPermission('sys:sysuser:pass')")
|
||||
public R updateUserPass(@PathVariable Integer userId, String pass, String confirm) {
|
||||
if (StrUtil.isBlank(pass) || StrUtil.isBlank(confirm) || !pass.equals(confirm)) {
|
||||
@@ -208,7 +210,7 @@ public class SysUserController {
|
||||
*/
|
||||
@PutMapping("/status")
|
||||
@ApiOperation(value = "批量修改用户状态", notes = "批量修改用户状态")
|
||||
@OperationLogging("批量修改用户状态")
|
||||
@UpdateOperationLogging(msg = "批量修改用户状态")
|
||||
@PreAuthorize("@per.hasPermission('sys:sysuser:edit')")
|
||||
public R updateUserStatus(@NotEmpty(message = "用户ID不能为空") @RequestBody List<Integer> userIds,
|
||||
@NotNull(message = "用户状态不能为空") @RequestParam Integer status) {
|
||||
@@ -222,7 +224,7 @@ public class SysUserController {
|
||||
|
||||
|
||||
@ApiOperation(value = "修改系统用户头像", notes = "修改系统用户头像")
|
||||
@OperationLogging("修改系统用户头像")
|
||||
@UpdateOperationLogging(msg = "修改系统用户头像")
|
||||
@PreAuthorize("@per.hasPermission('sys:sysuser:edit')")
|
||||
@PostMapping("/avatar")
|
||||
public R<String> updateAvatar(@RequestParam("file") MultipartFile file, @RequestParam("userId") Integer userId) {
|
||||
|
||||
@@ -17,8 +17,8 @@ public interface OperationLogConverter {
|
||||
|
||||
/**
|
||||
* 转换OperationLog 为 OperationLogAdmin
|
||||
* @param operationLogDTO
|
||||
* @return
|
||||
* @param operationLogDTO 操作日志DTO
|
||||
* @return AdminOperationLog
|
||||
*/
|
||||
AdminOperationLog dtoToPo(OperationLogDTO operationLogDTO);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user