Browse Source

数据新增时记录业务id,数据修改时记录数据前后变化值

master
583641232@qq.com 8 months ago
parent
commit
3d3038e74a
  1. 6
      client/pom.xml
  2. 37
      example/src/main/java/com/inscloudtech/alog/clientdemo/aspectj/ActionLogAspect.java
  3. 5
      example/src/main/java/com/inscloudtech/alog/clientdemo/demo/controller/DemoUserController.java

6
client/pom.xml

@ -17,12 +17,6 @@
<artifactId>alog-common</artifactId> <artifactId>alog-common</artifactId>
<version>0.1.1</version> <version>0.1.1</version>
</dependency> </dependency>
<!-- SpringBoot 拦截器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!-- <dependency> <!-- <dependency>
<groupId>com.inscloudtech</groupId> <groupId>com.inscloudtech</groupId>
<artifactId>config-zk</artifactId> <artifactId>config-zk</artifactId>

37
example/src/main/java/com/inscloudtech/alog/clientdemo/aspectj/ActionLogAspect.java

@ -55,6 +55,13 @@ public class ActionLogAspect {
} catch (Exception e) { } catch (Exception e) {
throw e; throw e;
} }
//当操作行为是新增数据时需要上报数据业务id
if(actionLog.businessType().equals(BusinessType.INSERT)){
setBusinessId(args,actionLog,actionLogMessage);
}
// 记录结束时间 // 记录结束时间
long endTime = System.currentTimeMillis(); long endTime = System.currentTimeMillis();
// 计算响应时间 // 计算响应时间
@ -139,6 +146,36 @@ public class ActionLogAspect {
} }
private void setBusinessId(Object[] args,ActionLog actionLog,ActionLogMessage actionLogMessage){
Object arg = args[0];
Class<?> entityClass = actionLog.entityClass();
//获取tableId字段
String tableIdField = actionLog.idFieldName();
// String tableIdField = "";
// Field[] fields = entityClass.getDeclaredFields();
// for(Field field : fields) {
// field.setAccessible(true);
// if (field.isAnnotationPresent(TableId.class)) {
// tableIdField = field.getName();
// break;
// }
// }
try {
// arg 转换为 entityClass 类型的对象
Object afterEntity = entityClass.cast(arg);
// 获取 tableIdField 对应的 Field 对象
Field idField = entityClass.getDeclaredField(tableIdField);
idField.setAccessible(true);
// 获取 id 的值
Long businessId = (Long)idField.get(afterEntity);
actionLogMessage.setBusinessId(businessId);
} catch (IllegalAccessException | NoSuchFieldException e) {
e.printStackTrace();
}
}

5
example/src/main/java/com/inscloudtech/alog/clientdemo/demo/controller/DemoUserController.java

@ -54,10 +54,11 @@ public class DemoUserController {
* @param * @param
* @return Response * @return Response
*/ */
@ActionLog(businessName = "用户管理", businessType = BusinessType.INSERT)
@ActionLog(businessName = "用户管理", businessType = BusinessType.INSERT,idFieldName = "userId",entityClass = DemoUser.class)
@PostMapping @PostMapping
public Response save(@RequestBody DemoUser demoUser) { public Response save(@RequestBody DemoUser demoUser) {
return new Response(demoUserService.save(demoUser));
demoUserService.save(demoUser);
return new Response(0,"新增成功!");
} }

Loading…
Cancel
Save