diff --git a/src/main/java/com/tem/bocai/repository/LoginInfoRepository.java b/src/main/java/com/tem/bocai/repository/LoginInfoRepository.java index 018d91a..c32dc44 100644 --- a/src/main/java/com/tem/bocai/repository/LoginInfoRepository.java +++ b/src/main/java/com/tem/bocai/repository/LoginInfoRepository.java @@ -12,4 +12,6 @@ public interface LoginInfoRepository extends JpaRepository findByUsername(String username); boolean existsByUsername(String username); void deleteByUsername(String username); + // 方法1: 按创建时间倒序取第一条 + Optional findFirstByOrderByCreateTimeDesc(); } 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 3b574b9..a94977c 100644 --- a/src/main/java/com/tem/bocai/service/impl/LoginServiceImpl.java +++ b/src/main/java/com/tem/bocai/service/impl/LoginServiceImpl.java @@ -35,6 +35,7 @@ public class LoginServiceImpl implements LoginService { System.out.println("\n=== 第 " + attempt + " 次尝试 ==="); try { token = tokenCacheService.attemptLogin(loginInfoParam); + System.out.println("1token = " + token); tokenCacheService.saveToken(token); if (token != null && !token.isEmpty()) { //保存用户信息 @@ -55,8 +56,6 @@ public class LoginServiceImpl implements LoginService { // 5. 返回爬取的数据 List> result = pipeline.getLotteryData(); - System.out.println("爬虫完成,获取到 " + result.size() + " 条数据"); - System.out.println("===="+result); return result.toString(); } diff --git a/src/main/java/com/tem/bocai/util/TokenCacheService.java b/src/main/java/com/tem/bocai/util/TokenCacheService.java index c6cdc0f..206a20e 100644 --- a/src/main/java/com/tem/bocai/util/TokenCacheService.java +++ b/src/main/java/com/tem/bocai/util/TokenCacheService.java @@ -1,7 +1,10 @@ package com.tem.bocai.util; +import com.tem.bocai.entity.LoginInfoResult; import com.tem.bocai.param.LoginInfoParam; +import com.tem.bocai.repository.LoginInfoRepository; import com.tem.bocai.service.LoginService; +import lombok.val; import net.sourceforge.tess4j.Tesseract; import net.sourceforge.tess4j.TesseractException; import org.apache.http.Header; @@ -45,7 +48,8 @@ public class TokenCacheService { private Tesseract tesseract; @Autowired private CacheManager tokenCacheManager; - + @Autowired + private LoginInfoRepository loginInfoRepository; /** * 保存token到缓存 */ @@ -127,9 +131,14 @@ public class TokenCacheService { for (int attempt = 1; attempt <= MAX_RETRY; attempt++) { System.out.println("\n=== 第 " + attempt + " 次尝试 ==="); try { - - // token = attemptLogin(); - + LoginInfoResult firstByOrderByCreateTimeDesc = loginInfoRepository.findFirstByOrderByCreateTimeDesc() + .orElse(null); + LoginInfoParam loginInfoParam = new LoginInfoParam(); + loginInfoParam.setUsername(firstByOrderByCreateTimeDesc.getUsername()); + loginInfoParam.setPassword(firstByOrderByCreateTimeDesc.getPassword()); + loginInfoParam.setLoginUrl(firstByOrderByCreateTimeDesc.getLoginUrl()); + token = attemptLogin(loginInfoParam); + System.out.println("2token = " + token); if (token != null && !token.isEmpty()) { return token; }