Browse Source

feat 缓存模块增加

1 month ago
parent
commit
a3020bc20c

+ 8 - 1
edu-travel-common/edu-travel-common-datasource/pom.xml

@@ -34,6 +34,13 @@
             <groupId>io.seata</groupId>
             <artifactId>seata-spring-boot-starter</artifactId>
         </dependency>
-
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-security</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
     </dependencies>
 </project>

+ 53 - 0
edu-travel-common/edu-travel-common-datasource/src/main/java/edu/travel/config/FieldMetaObjectHandler.java

@@ -0,0 +1,53 @@
+package edu.travel.config;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+import org.apache.ibatis.reflection.MetaObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.stereotype.Component;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+
+@Component
+public class FieldMetaObjectHandler implements MetaObjectHandler {
+    private final static String UPDATE_USER_ID = "updateUserId";
+    private final static String UPDATE_TIME = "updateTime";
+    private final static String CREATE_USER_ID = "createUserId";
+    private final static String CREATE_TIME = "createTime";
+    private final static String PROJECT = "project";
+    private final static String DELETE_FLAG = "deleteFlag";
+    @Override
+    public void insertFill(MetaObject metaObject) {
+        HttpServletRequest request = ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes())).getRequest();
+        Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
+        JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(principal));
+        if (metaObject.hasSetter(CREATE_USER_ID)) {
+            this.strictInsertFill(metaObject, CREATE_USER_ID, Long.class, jsonObject.getLong("id"));
+        }
+        if (metaObject.hasSetter(CREATE_TIME)) {
+            this.strictInsertFill(metaObject, CREATE_TIME, Long.class, System.currentTimeMillis());
+        }
+        if (metaObject.hasSetter(PROJECT)){
+            this.strictInsertFill(metaObject, PROJECT, String.class, request.getHeader("project"));
+        }
+        if (metaObject.hasSetter(DELETE_FLAG)) {
+            this.strictInsertFill(metaObject, DELETE_FLAG, Integer.class, 0);
+        }
+    }
+
+    @Override
+    public void updateFill(MetaObject metaObject) {
+        Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
+        JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(principal));
+        if (metaObject.hasSetter(UPDATE_USER_ID)) {
+            this.strictInsertFill(metaObject, UPDATE_USER_ID, Long.class,  jsonObject.getLong("id"));
+        }
+        if (metaObject.hasSetter(UPDATE_TIME)) {
+            this.strictInsertFill(metaObject, UPDATE_TIME, Long.class, System.currentTimeMillis());
+        }
+    }
+}

+ 7 - 6
edu-travel-model/edu-travel-model-base/src/main/java/edu/travel/entity/BaseEntity.java

@@ -1,5 +1,6 @@
 package edu.travel.entity;
 
+import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import lombok.Data;
@@ -7,17 +8,17 @@ import lombok.Data;
 import java.util.Date;
 @Data
 public class BaseEntity {
-    @TableField(value = "project")
+    @TableField(value = "project",fill = FieldFill.INSERT)
     public String project;
-    @TableField("create_time")
+    @TableField(value = "create_time",fill = FieldFill.INSERT)
     public Date createTime;
-    @TableField("create_user_id")
+    @TableField(value = "create_user_id",fill = FieldFill.INSERT)
     public String createUserId;
-    @TableField("update_time")
+    @TableField(value = "update_time",fill = FieldFill.UPDATE)
     public Date updateTime;
-    @TableField("update_user_id")
+    @TableField(value = "update_user_id",fill = FieldFill.UPDATE)
     public String updateUserId;
-    @TableField("delete_flag")
+    @TableField(value = "delete_flag",fill = FieldFill.INSERT)
     @TableLogic
     public Integer deleteFlag;
 }