RuoYi框架-aspect切面记录CRUD操作人操作时间
RuoYi框架-aspect切面记录CRUD操作人操作时间
传参继承BaseEntity,每次在执行crud(service中含有insert/update/delete)方法的时候,都会从LoginHelper中获取到当前用户,可以存入到操作人字段(createBy / updateBy),当前时间存入到操作时间(create_time / update_time)
切面代码:
package com.ruoyi.framework.aspectj;
import com.fasterxml.jackson.databind.ser.Serializers;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.core.domain.UniversityBaseEntity;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.LoginHelper;
import com.ruoyi.common.utils.StringUtils;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;
/**
* 操作人操作时间切面
*
* @author sky
*/
@Aspect
@Component
public class AutoFillAspect {
@Before("execution(* com.ruoyi..service..*.insert*(..))")
public void beforeInsert(JoinPoint joinPoint) {
fillCreateFields(joinPoint);
}
@Before("execution(* com.ruoyi..service..*.update*(..)) || " +
"execution(* com.ruoyi..service..*.delete*(..))")
public void beforeUpdateOrDelete(JoinPoint joinPoint) {
fillUpdateFields(joinPoint);
}
private void fillCreateFields(JoinPoint joinPoint) {
Object[] args = joinPoint.getArgs();
if (args != null && args.length > 0) {
for (Object arg : args) {
if (arg instanceof BaseEntity) {
BaseEntity entity = (BaseEntity) arg;
String username = LoginHelper.getUsername();
if (StringUtils.isNotEmpty(username)) {
entity.setCreateBy(username);
entity.setCreateTime(DateUtils.getNowDate());
// 新增时也设置更新字段
entity.setUpdateBy(username);
entity.setUpdateTime(DateUtils.getNowDate());
}
}
}
}
}
private void fillUpdateFields(JoinPoint joinPoint) {
Object[] args = joinPoint.getArgs();
if (args != null && args.length > 0) {
for (Object arg : args) {
if (arg instanceof UniversityBaseEntity) {
UniversityBaseEntity entity = (UniversityBaseEntity) arg;
String username = LoginHelper.getUsername();
if (StringUtils.isNotEmpty(username)) {
entity.setUpdateBy(username);
entity.setUpdateTime(DateUtils.getNowDate());
}
}
}
}
}
}
BaseEntity代码
package com.ruoyi.common.core.domain;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
public class BaseEntity implements Serializable {
/**
* 创建时间
*/
private Date createTime;
/**
* 修改时间
*/
private Date updateTime;
/**
* 创建人
*/
private String createBy;
/**
* 修改人
*/
private String updateBy;
/**
* 删除标识 0否 1是
*/
private Integer isDelete;
/**
* 禁用标识 0否 1是
*/
private Integer isDisabled;
/**
* 冗余字段01
*/
private String ext01;
/**
* 冗余字段02
*/
private String ext02;
/**
* 冗余字段03
*/
private String ext03;
/**
* 冗余字段04
*/
private String ext04;
/**
* 冗余字段05
*/
private String ext05;
/**
* 冗余字段06
*/
private String ext06;
/**
* 冗余字段07
*/
private String ext07;
/**
* 冗余字段08
*/
private String ext08;
/**
* 冗余字段09
*/
private String ext09;
/**
* 冗余字段10
*/
private String ext10;
/**
* 冗余字段11
*/
private String ext11;
/**
* 冗余字段12
*/
private String ext12;
/**
* 冗余字段13
*/
private String ext13;
/**
* 冗余字段14
*/
private String ext14;
/**
* 冗余字段15
*/
private String ext15;
}
本文来自博客园,作者:skystrivegao,转载请注明原文链接:https://www.cnblogs.com/skystrive/p/18867523
整理不易,如果对您有所帮助 请点赞收藏,谢谢~