Sfoglia il codice sorgente

自动填充字段,实体类需要继承当前类

xucaiqin 2 anni fa
parent
commit
37bdcfbb7c

+ 5 - 0
iot-framework/iot-starter-mybatis/pom.xml

@@ -60,5 +60,10 @@
             <groupId>com.github.yulichang</groupId>
             <artifactId>mybatis-plus-join-boot-starter</artifactId> <!-- MyBatis 联表查询 -->
         </dependency>
+        <dependency>
+            <groupId>cn.dev33</groupId>
+            <artifactId>sa-token-core</artifactId>
+            <scope>provided</scope>
+        </dependency>
     </dependencies>
 </project>

+ 14 - 15
iot-framework/iot-starter-mybatis/src/main/java/com/middle/platform/mybatis/core/dataobject/BaseDO.java

@@ -1,8 +1,6 @@
 package com.middle.platform.mybatis.core.dataobject;
 
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.*;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -10,33 +8,34 @@ import java.time.LocalDateTime;
 
 /**
  * 基础实体对象
- *
  */
 @Data
 public abstract class BaseDO implements Serializable {
-
+    /**
+     * 创建者
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createBy;
     /**
      * 创建时间
      */
     @TableField(fill = FieldFill.INSERT)
     private LocalDateTime createTime;
     /**
-     * 最后更新时间
+     * 更新者
      */
     @TableField(fill = FieldFill.INSERT_UPDATE)
-    private LocalDateTime updateTime;
+    private Long updateBy;
     /**
-     * 创建者,目前使用 SysUser 的 id 编号
-     * 使用 String 类型的原因是,未来可能会存在非数值的情况,留好拓展性。
+     * 最后更新时间
      */
-    @TableField(fill = FieldFill.INSERT)
-    private Long createBy;
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
     /**
-     * 更新者,目前使用 SysUser 的 id 编号
-     * 使用 String 类型的原因是,未来可能会存在非数值的情况,留好拓展性。
+     * 删除时间
      */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private Long updateBy;
+    @TableField(value = "delete_time")
+    private LocalDateTime deleteTime;
     /**
      * 是否删除
      */

+ 17 - 17
iot-framework/iot-starter-mybatis/src/main/java/com/middle/platform/mybatis/core/handler/DefaultDbFieldHandler.java

@@ -1,5 +1,6 @@
 package com.middle.platform.mybatis.core.handler;
 
+import cn.dev33.satoken.stp.StpUtil;
 import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
 import com.middle.platform.mybatis.core.dataobject.BaseDO;
 import org.apache.ibatis.reflection.MetaObject;
@@ -25,16 +26,16 @@ public class DefaultDbFieldHandler implements MetaObjectHandler {
             if (Objects.isNull(baseDO.getUpdateTime())) {
                 baseDO.setUpdateTime(current);
             }
-            //todo 添加用户id获取
-//            Long userId = WebFrameworkUtils.getLoginUserId();
-            Long userId = null;
-            // 当前登录用户不为空,创建人为空,则当前登录用户为创建人
-            if (Objects.nonNull(userId) && Objects.isNull(baseDO.getCreateBy())) {
-                baseDO.setCreateBy(userId);
-            }
-            // 当前登录用户不为空,更新人为空,则当前登录用户为更新人
-            if (Objects.nonNull(userId) && Objects.isNull(baseDO.getUpdateBy())) {
-                baseDO.setUpdateBy(userId);
+            if (StpUtil.isLogin()) {
+                Long userId = StpUtil.getLoginIdAsLong();
+                // 当前登录用户不为空,创建人为空,则当前登录用户为创建人
+                if (Objects.isNull(baseDO.getCreateBy())) {
+                    baseDO.setCreateBy(userId);
+                }
+                // 当前登录用户不为空,更新人为空,则当前登录用户为更新人
+                if (Objects.isNull(baseDO.getUpdateBy())) {
+                    baseDO.setUpdateBy(userId);
+                }
             }
         }
     }
@@ -47,13 +48,12 @@ public class DefaultDbFieldHandler implements MetaObjectHandler {
             setFieldValByName("updateTime", LocalDateTime.now(), metaObject);
         }
 
-        // 当前登录用户不为空,更新人为空,则当前登录用户为更新人
-        Object modifier = getFieldValByName("updater", metaObject);
-        //todo
-//        Long userId = WebFrameworkUtils.getLoginUserId();
-        Long userId = 0L;
-        if (Objects.nonNull(userId) && Objects.isNull(modifier)) {
-            setFieldValByName("updater", userId.toString(), metaObject);
+        if (StpUtil.isLogin()) {
+            Long userId = StpUtil.getLoginIdAsLong();
+            Object updateBy = getFieldValByName("updateBy", metaObject);
+            if (Objects.isNull(updateBy)) {
+                setFieldValByName("updateBy", userId, metaObject);
+            }
         }
     }
 }