From c604c2de98447af15efaf594cf2940aa78203b67 Mon Sep 17 00:00:00 2001
From: hebo <13216192626@163.com>
Date: 星期一, 13 九月 2021 21:21:19 +0800
Subject: [PATCH] fix 代码生成-当表未设置主键时第一个字段重复生成
---
ruoyi-framework/src/main/java/com/ruoyi/framework/mybatisplus/CreateAndUpdateMetaObjectHandler.java | 85 +++++++++++++++++++++---------------------
1 files changed, 42 insertions(+), 43 deletions(-)
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/mybatisplus/CreateAndUpdateMetaObjectHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/mybatisplus/CreateAndUpdateMetaObjectHandler.java
index d4ef144..ae36fc3 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/mybatisplus/CreateAndUpdateMetaObjectHandler.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/mybatisplus/CreateAndUpdateMetaObjectHandler.java
@@ -1,67 +1,66 @@
package com.ruoyi.framework.mybatisplus;
+import cn.hutool.http.HttpStatus;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+import com.ruoyi.common.core.domain.model.LoginUser;
+import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.SecurityUtils;
+import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import java.util.Date;
/**
- * @author woo
- * @date 2021/3/11
+ * MP娉ㄥ叆澶勭悊鍣�
+ *
+ * @author Lion Li
+ * @date 2021/4/25
*/
+@Slf4j
public class CreateAndUpdateMetaObjectHandler implements MetaObjectHandler {
+
@Override
public void insertFill(MetaObject metaObject) {
- //region 澶勭悊鍒涘缓浜轰俊鎭�
- Object createBy = this.getFieldValByName("createBy", metaObject);
- Object createTime = this.getFieldValByName("createTime", metaObject);
- if (createBy == null) {
- createBy = SecurityUtils.getUsername();
- this.setFieldValByName("createBy", createBy, metaObject);
+ try {
+ //鏍规嵁灞炴�у悕瀛楄缃濉厖鐨勫��
+ if (metaObject.hasGetter("createTime")) {
+ this.setFieldValByName("createTime", new Date(), metaObject);
+ }
+ if (metaObject.hasGetter("createBy")) {
+ this.setFieldValByName("createBy", getLoginUsername(), metaObject);
+ }
+ } catch (Exception e) {
+ throw new ServiceException("鑷姩娉ㄥ叆寮傚父 => " + e.getMessage(), HttpStatus.HTTP_UNAUTHORIZED);
}
- if (createTime == null) {
- createTime = new Date();
- this.setFieldValByName("createTime", createTime, metaObject);
- }
- //endregion
- //region 澶勭悊淇敼浜轰俊鎭�
- Object updateBy = this.getFieldValByName("updateBy", metaObject);
- Object updateTime = this.getFieldValByName("updateTime", metaObject);
- if (updateBy == null) {
- updateBy = createBy;
- this.setFieldValByName("updateBy", updateBy, metaObject);
- }
- if (updateTime == null) {
- updateTime = createTime;
- this.setFieldValByName("updateTime", updateTime, metaObject);
- }
- //endregion
+ updateFill(metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
- //region 澶勭悊淇敼浜轰俊鎭�
- Object updateBy = this.getFieldValByName("updateBy", metaObject);
- Object updateTime = this.getFieldValByName("updateTime", metaObject);
- if (updateBy == null) {
- updateBy = SecurityUtils.getUsername();
- this.setFieldValByName("updateBy", updateBy, metaObject);
+ try {
+ if (metaObject.hasGetter("updateBy")) {
+ this.setFieldValByName("updateBy", getLoginUsername(), metaObject);
+ }
+ if (metaObject.hasGetter("updateTime")) {
+ this.setFieldValByName("updateTime", new Date(), metaObject);
+ }
+ } catch (Exception e) {
+ throw new ServiceException("鑷姩娉ㄥ叆寮傚父 => " + e.getMessage(), HttpStatus.HTTP_UNAUTHORIZED);
}
- if (updateTime == null) {
- updateTime = new Date();
- this.setFieldValByName("updateTime", updateTime, metaObject);
- }
- //endregion
}
- @Override
- public boolean openInsertFill() {
- return true;
+ /**
+ * 鑾峰彇鐧诲綍鐢ㄦ埛鍚�
+ */
+ private String getLoginUsername() {
+ LoginUser loginUser;
+ try {
+ loginUser = SecurityUtils.getLoginUser();
+ } catch (Exception e) {
+ log.error("鑷姩娉ㄥ叆璀﹀憡 => 鐢ㄦ埛鏈櫥褰�");
+ return null;
+ }
+ return loginUser.getUsername();
}
- @Override
- public boolean openUpdateFill() {
- return true;
- }
}
--
Gitblit v1.9.3