保存用户登入信息

This commit is contained in:
xuelijun
2026-01-22 09:29:55 +08:00
parent 3d9c6dcfb9
commit 51692cd2cb
4 changed files with 44 additions and 16 deletions

View File

@@ -3,6 +3,8 @@ package com.tem.bocai.entity;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.Data; import lombok.Data;
import net.sourceforge.tess4j.TesseractException; import net.sourceforge.tess4j.TesseractException;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.UpdateTimestamp;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import java.io.IOException; import java.io.IOException;
@@ -36,12 +38,15 @@ public class LoginInfoResult {
@Column(name = "lose_num", nullable = false) @Column(name = "lose_num", nullable = false)
private Integer loseNum; private Integer loseNum;
/* @Column(name = "current_num", nullable = false) /* @Column(name = "current_num", nullable = false)
private Integer currentNum;*/ private Integer currentNum;*/
@Column(name = "create_time", nullable = false, updatable = false)
@Column(name = "create_time", nullable = false) @Temporal(TemporalType.TIMESTAMP)
@CreationTimestamp
private Date createTime; private Date createTime;
@Column(name = "update_time", nullable = false) @Column(name = "update_time", nullable = false)
@Temporal(TemporalType.TIMESTAMP)
@UpdateTimestamp
private Date updateTime; private Date updateTime;
} }

View File

@@ -0,0 +1,13 @@
package com.tem.bocai.repository;
import com.tem.bocai.entity.LoginInfoResult;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface LoginInfoRepository extends JpaRepository<LoginInfoResult, Long> {
LoginInfoResult findByUsername(String username);
boolean existsByUsername(String username);
void deleteByUsername(String username);
}

View File

@@ -22,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.*; import java.io.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@@ -42,7 +43,7 @@ public class LoginServiceImpl implements LoginService {
private Tesseract tesseract; private Tesseract tesseract;
@Autowired @Autowired
private TokenCacheService tokenCacheService; private TokenCacheService tokenCacheService;
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Override @Override
public String loginAutomatic(LoginInfoParam loginInfoParam) { public String loginAutomatic(LoginInfoParam loginInfoParam) {
String token = ""; String token = "";

View File

@@ -3,9 +3,11 @@ package com.tem.bocai.util;
import com.tem.bocai.entity.LoginInfoResult; import com.tem.bocai.entity.LoginInfoResult;
import java.sql.*; import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Date;
public class SQLiteUtil { public class SQLiteUtil {
private static final String DB_URL = "jdbc:sqlite:bocai.db"; private static final String DB_URL = "jdbc:sqlite:bocai.db";
@@ -287,16 +289,23 @@ public class SQLiteUtil {
insertStmt.setString(3, loginInfo.getLoginUrl()); insertStmt.setString(3, loginInfo.getLoginUrl());
insertStmt.setInt(4, loginInfo.getWinNum() != null ? loginInfo.getWinNum() : 0); insertStmt.setInt(4, loginInfo.getWinNum() != null ? loginInfo.getWinNum() : 0);
insertStmt.setInt(5, loginInfo.getLoseNum() != null ? loginInfo.getLoseNum() : 0); insertStmt.setInt(5, loginInfo.getLoseNum() != null ? loginInfo.getLoseNum() : 0);
insertStmt.setTimestamp(6, new Timestamp(
loginInfo.getCreateTime() != null ? // 使用ISO8601格式: yyyy-MM-dd HH:mm:ss
loginInfo.getCreateTime().getTime() : SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.currentTimeMillis()
)); // 处理create_time
insertStmt.setTimestamp(7, new Timestamp( if (loginInfo.getCreateTime() != null) {
loginInfo.getUpdateTime() != null ? insertStmt.setString(6, sdf.format(loginInfo.getCreateTime()));
loginInfo.getUpdateTime().getTime() : } else {
System.currentTimeMillis() insertStmt.setString(6, sdf.format(new Date()));
)); }
// 处理update_time
if (loginInfo.getUpdateTime() != null) {
insertStmt.setString(7, sdf.format(loginInfo.getUpdateTime()));
} else {
insertStmt.setString(7, sdf.format(new Date()));
}
int inserted = insertStmt.executeUpdate(); int inserted = insertStmt.executeUpdate();