diff --git a/bocai.db b/bocai.db index 2d18136..a1c87a1 100644 Binary files a/bocai.db and b/bocai.db differ diff --git a/src/main/java/com/tem/bocai/entity/LoginInfoResult.java b/src/main/java/com/tem/bocai/entity/LoginInfoResult.java index e9ce2fb..e2a4bdc 100644 --- a/src/main/java/com/tem/bocai/entity/LoginInfoResult.java +++ b/src/main/java/com/tem/bocai/entity/LoginInfoResult.java @@ -1,5 +1,7 @@ package com.tem.bocai.entity; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.tem.bocai.util.SQLiteDateConverter; import jakarta.persistence.*; import lombok.Data; import net.sourceforge.tess4j.TesseractException; @@ -44,11 +46,33 @@ public class LoginInfoResult { /* @Column(name = "current_num", nullable = false) private Integer currentNum;*/ - @Column(name = "create_time", nullable = false, updatable = false) + /*@Column(name = "create_time", nullable = false, updatable = false) @Temporal(TemporalType.TIMESTAMP) private Date createTime; @Column(name = "update_time", nullable = false) @Temporal(TemporalType.TIMESTAMP) + private Date updateTime;*/ + + + /* @Column(name = "create_time", nullable = false, updatable = false) + @CreationTimestamp // Hibernate注解,自动设置创建时间 + private Date createTime; + + @Column(name = "update_time", nullable = false) + @UpdateTimestamp // Hibernate注解,自动更新时间 + private Date updateTime;*/ + @Column(name = "create_time", nullable = false, updatable = false) + @CreationTimestamp + @Convert(converter = SQLiteDateConverter.class) + private Date createTime; + + @Column(name = "update_time", nullable = false) + @UpdateTimestamp + @Convert(converter = SQLiteDateConverter.class) private Date updateTime; + + @Column(name = "start_time") + @Convert(converter = SQLiteDateConverter.class) + private Date startTime; } \ No newline at end of file diff --git a/src/main/java/com/tem/bocai/service/impl/LoginServiceImpl.java b/src/main/java/com/tem/bocai/service/impl/LoginServiceImpl.java index 6756f9d..35c1907 100644 --- a/src/main/java/com/tem/bocai/service/impl/LoginServiceImpl.java +++ b/src/main/java/com/tem/bocai/service/impl/LoginServiceImpl.java @@ -13,6 +13,7 @@ import org.springframework.stereotype.Service; import net.sourceforge.tess4j.Tesseract; import org.apache.http.client.methods.*; import org.springframework.beans.factory.annotation.Autowired; + import java.io.*; import java.text.SimpleDateFormat; import java.util.Date; @@ -31,6 +32,7 @@ public class LoginServiceImpl implements LoginService { private LoginInfoRepository loginInfoRepository; private static final int MAX_CRA = 3; private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + @Override public String loginAutomatic(LoginInfoParam loginInfoParam) { String token = ""; @@ -70,7 +72,7 @@ public class LoginServiceImpl implements LoginService { e.printStackTrace(); } } - return ""; + return ""; } /* @Override @@ -158,7 +160,6 @@ public class LoginServiceImpl implements LoginService { public String saveUserInfo(LoginInfoResult loginInfoResult) { try { Optional existingUser = loginInfoRepository.findFirstByOrderByCreateTimeDesc(); - Date now = new Date(); if (existingUser.isPresent()) { // 获取数据库中已有的用户 @@ -182,18 +183,19 @@ public class LoginServiceImpl implements LoginService { } if (loginInfoResult.getOnOff() != null) { dbUser.setOnOff(loginInfoResult.getOnOff()); + if (loginInfoResult.getOnOff().equals(1)) { + dbUser.setStartTime(new Date()); + } } - - // 更新修改时间 - dbUser.setUpdateTime(now); - + // 不需要手动设置updateTime,@UpdateTimestamp会自动处理 // 保存更新后的实体 loginInfoRepository.save(dbUser); - } else { // 新增逻辑 - loginInfoResult.setCreateTime(now); - loginInfoResult.setUpdateTime(now); + // 不需要手动设置createTime和updateTime,注解会自动处理 + if (loginInfoResult.getOnOff() != null && loginInfoResult.getOnOff().equals(1)) { + loginInfoResult.setStartTime(new Date()); + } loginInfoRepository.save(loginInfoResult); } diff --git a/src/main/java/com/tem/bocai/util/SQLiteDateConverter.java b/src/main/java/com/tem/bocai/util/SQLiteDateConverter.java new file mode 100644 index 0000000..9f77573 --- /dev/null +++ b/src/main/java/com/tem/bocai/util/SQLiteDateConverter.java @@ -0,0 +1,29 @@ +package com.tem.bocai.util; + +import jakarta.persistence.AttributeConverter; +import jakarta.persistence.Converter; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; + +// SQLite时间转换器 +@Converter +public class SQLiteDateConverter implements AttributeConverter { + + private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + @Override + public String convertToDatabaseColumn(Date date) { + return date == null ? null : sdf.format(date); + } + + @Override + public Date convertToEntityAttribute(String dateString) { + try { + return dateString == null ? null : sdf.parse(dateString); + } catch (ParseException e) { + return null; + } + } +} \ No newline at end of file