Procházet zdrojové kódy

修改日期类型为自定义日期类型。
typehandler未验证。

yucheng před 3 roky
rodič
revize
ef620e2279

+ 3 - 2
dc-cloud/dc-file/src/main/java/com/persagy/dc/file/controller/FileController.java

@@ -1,6 +1,7 @@
 package com.persagy.dc.file.controller;
 
 import cn.hutool.core.util.StrUtil;
+import com.persagy.dc.common.lang.PsDateTime;
 import com.persagy.dc.file.model.FileInfo;
 import com.persagy.dc.file.service.IFileService;
 import com.persagy.dc.common.constant.ResponseCode;
@@ -36,7 +37,7 @@ public class FileController {
                 StrUtil.isBlank(fileInfo.getFileBucket())) {
             throw new BusinessException(ResponseCode.A0400.getCode(), ResponseCode.A0400.getDesc());
         }
-        fileInfo.setCreationTime(new Date());
+        fileInfo.setCreationTime(new PsDateTime());
         fileInfo = fileService.insertFile(fileInfo);
         return ResultHelper.single(fileInfo);
     }
@@ -49,7 +50,7 @@ public class FileController {
                 StrUtil.isBlank(fileInfo.getFileBucket())) {
             throw new BusinessException(ResponseCode.A0400.getCode(), ResponseCode.A0400.getDesc());
         }
-        fileInfo.setModifiedTime(new Date());
+        fileInfo.setModifiedTime(new PsDateTime());
         fileInfo = fileService.updateFile(fileInfo);
         return ResultHelper.single(fileInfo);
     }

+ 3 - 2
dc-common/src/main/java/com/persagy/dc/common/model/entity/AuditableEntity.java

@@ -1,6 +1,7 @@
 package com.persagy.dc.common.model.entity;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.persagy.dc.common.lang.PsDateTime;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -33,12 +34,12 @@ public abstract class AuditableEntity<T> extends BaseEntity<T> implements IAudit
     public static final String PROP_MODIFIER = "modifier";
 
     @JsonIgnore
-    protected Date creationTime;
+    protected PsDateTime creationTime;
 
     protected String creator;
 
     @JsonIgnore
-    protected Date modifiedTime;
+    protected PsDateTime modifiedTime;
 
     protected String modifier;
 

+ 2 - 1
dc-common/src/main/java/com/persagy/dc/common/model/entity/BaseEntity.java

@@ -1,5 +1,6 @@
 package com.persagy.dc.common.model.entity;
 
+import com.persagy.dc.common.lang.PsDateTime;
 import lombok.AccessLevel;
 import lombok.Data;
 import lombok.Getter;
@@ -37,7 +38,7 @@ public abstract class BaseEntity<T> implements IBaseEntity,Serializable,Cloneabl
 	protected String id;
 
 	/** 时间戳 */
-	protected Date ts;
+	protected PsDateTime ts;
 
 	/** 实体状态 - 有效标识 */
 	protected Integer valid;

+ 6 - 4
dc-common/src/main/java/com/persagy/dc/common/model/entity/IAuditableEntity.java

@@ -1,5 +1,7 @@
 package com.persagy.dc.common.model.entity;
 
+import com.persagy.dc.common.lang.PsDateTime;
+
 import java.util.Date;
 
 /**
@@ -13,13 +15,13 @@ public interface IAuditableEntity extends IBaseEntity {
 	 * 取得创建时间
 	 * @return 创建时间
 	 */
-	Date getCreationTime();
+	PsDateTime getCreationTime();
 
 	/**
 	 * 设置创建时间,记录插入时有效
 	 * @param creationtime 创建时间
 	 */
-	void setCreationTime(Date creationtime);
+	void setCreationTime(PsDateTime creationtime);
 
 	/**
 	 * 取得创建实体的操作员的登录名
@@ -37,13 +39,13 @@ public interface IAuditableEntity extends IBaseEntity {
 	 * 取得最后修改时间.
 	 * @return 最后修改时间
 	 */
-	Date getModifiedTime();
+	PsDateTime getModifiedTime();
 
 	/**
 	 * 设置最后修改时间.记录更新时有效
 	 * @param modifiedtime 最后修改时间
 	 */
-	void setModifiedTime(Date modifiedtime);
+	void setModifiedTime(PsDateTime modifiedtime);
 
 	/**
 	 * 取得最后修改的操作员的登录名.

+ 44 - 0
dc-comp/dc-mybatis/src/main/java/com/persagy/dc/mybatis/typehandler/PsDateTimeStampTypeHandler.java

@@ -0,0 +1,44 @@
+package com.persagy.dc.mybatis.typehandler;
+
+import cn.hutool.core.util.StrUtil;
+import com.persagy.dc.common.lang.PsDateTime;
+import org.apache.ibatis.type.BaseTypeHandler;
+import org.apache.ibatis.type.JdbcType;
+import org.apache.ibatis.type.MappedJdbcTypes;
+import org.apache.ibatis.type.MappedTypes;
+
+import java.sql.*;
+import java.util.Date;
+
+/**
+ * Mybatis日期时间全局处理
+ * @author Charlie Yu
+ * @version 1.0 2021-04-08
+ */
+@MappedJdbcTypes(JdbcType.TIMESTAMP)
+@MappedTypes(PsDateTime.class)
+public class PsDateTimeStampTypeHandler extends BaseTypeHandler<PsDateTime> {
+
+    @Override
+    public void setNonNullParameter(PreparedStatement preparedStatement, int i, PsDateTime psDateTime, JdbcType jdbcType) throws SQLException {
+        preparedStatement.setTimestamp(i, new Timestamp(psDateTime.getMillis()));
+    }
+
+    @Override
+    public PsDateTime getNullableResult(ResultSet resultSet, String s) throws SQLException {
+        Timestamp timestamp = resultSet.getTimestamp(s);
+        return PsDateTime.parsePsDateTime(timestamp);
+    }
+
+    @Override
+    public PsDateTime getNullableResult(ResultSet resultSet, int i) throws SQLException {
+        Timestamp timestamp = resultSet.getTimestamp(i);
+        return PsDateTime.parsePsDateTime(timestamp);
+    }
+
+    @Override
+    public PsDateTime getNullableResult(CallableStatement callableStatement, int i) throws SQLException {
+        Timestamp timestamp = callableStatement.getTimestamp(i);
+        return PsDateTime.parsePsDateTime(timestamp);
+    }
+}