feat: 账号密码保存数据库, Token失效自动重新登录

This commit is contained in:
ShenQiLun 2026-06-30 11:16:34 +08:00
parent 193d0a35ca
commit 702c51c1f3
9 changed files with 5915 additions and 185 deletions

View File

@ -49,7 +49,7 @@ func main() {
tokenHandler := handler.NewTokenHandler(tokenRepo) tokenHandler := handler.NewTokenHandler(tokenRepo)
// Kfz登录 // Kfz登录
kfzHandler := handler.NewKfzHandler() kfzHandler := handler.NewKfzHandler(tokenRepo)
// 配置相关 // 配置相关
configHandler := handler.NewConfigHandler("./config/config.yaml") configHandler := handler.NewConfigHandler("./config/config.yaml")

View File

@ -71,6 +71,7 @@ func createTables() error {
CREATE TABLE IF NOT EXISTS kfz_token ( CREATE TABLE IF NOT EXISTS kfz_token (
id INTEGER PRIMARY KEY AUTOINCREMENT, id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT NOT NULL, username TEXT NOT NULL,
password TEXT NOT NULL DEFAULT '',
token TEXT NOT NULL, token TEXT NOT NULL,
is_enable INTEGER DEFAULT 1, is_enable INTEGER DEFAULT 1,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
@ -90,9 +91,16 @@ func createTables() error {
` `
_, err := DB.Exec(sql) _, err := DB.Exec(sql)
if err != nil {
return err return err
} }
// 兼容旧表:添加 password 列(已存在则忽略)
DB.Exec(`ALTER TABLE kfz_token ADD COLUMN password TEXT NOT NULL DEFAULT ''`)
return nil
}
// CloseDB 关闭数据库连接 // CloseDB 关闭数据库连接
func CloseDB() error { func CloseDB() error {
if DB != nil { if DB != nil {

View File

@ -2,22 +2,23 @@ package handler
import ( import (
"encoding/json" "encoding/json"
"fmt"
"log" "log"
"net/http" "net/http"
"strings"
"time"
"github.com/parnurzeal/gorequest" "kfz-goods-pricing/internal/repository"
"kfz-goods-pricing/internal/service"
) )
// KfzHandler Kfz处理器 // KfzHandler Kfz处理器
type KfzHandler struct { type KfzHandler struct {
tokenRepo *repository.TokenRepository
} }
// NewKfzHandler 创建Kfz处理器实例 // NewKfzHandler 创建Kfz处理器实例
func NewKfzHandler() *KfzHandler { func NewKfzHandler(tokenRepo *repository.TokenRepository) *KfzHandler {
return &KfzHandler{} return &KfzHandler{
tokenRepo: tokenRepo,
}
} }
// KfzLogin 登录孔网并返回用户信息 // KfzLogin 登录孔网并返回用户信息
@ -40,24 +41,32 @@ func (h *KfzHandler) KfzLogin(w http.ResponseWriter, r *http.Request) {
} }
log.Printf("[KfzLogin] 开始登录孔网, username=%s, 来源IP: %s", username, clientIP) log.Printf("[KfzLogin] 开始登录孔网, username=%s, 来源IP: %s", username, clientIP)
token, err := outKfzLogin(username, password) token, err := service.OutKfzLogin(username, password)
if err != nil { if err != nil {
log.Printf("[KfzLogin] 孔网登录失败: username=%s, 错误=%v, 来源IP: %s", username, err, clientIP) log.Printf("[KfzLogin] 孔网登录失败: username=%s, 错误=%v, 来源IP: %s", username, err, clientIP)
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
w.Write([]byte(fmt.Sprintf(`{"code":500,"message":"%s"}`, err.Error()))) w.Write([]byte(`{"code":500,"message":"` + err.Error() + `"}`))
return return
} }
log.Printf("[KfzLogin] 孔网登录成功: username=%s, token=%s..., 来源IP: %s", username, token[:min(len(token), 10)], clientIP) log.Printf("[KfzLogin] 孔网登录成功: username=%s, token=%.10s..., 来源IP: %s", username, token, clientIP)
userInfo, err := outKfzGetUserInfo(token) userInfo, err := service.OutKfzGetUserInfo(token)
if err != nil { if err != nil {
log.Printf("[KfzLogin] 获取用户信息失败: username=%s, 错误=%v, 来源IP: %s", username, err, clientIP) log.Printf("[KfzLogin] 获取用户信息失败: username=%s, 错误=%v, 来源IP: %s", username, err, clientIP)
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
w.Write([]byte(fmt.Sprintf(`{"code":500,"message":"%s"}`, err.Error()))) w.Write([]byte(`{"code":500,"message":"` + err.Error() + `"}`))
return return
} }
userInfo.Token = token userInfo.Token = token
// 保存账号密码和token到数据库
if err := h.tokenRepo.UpsertByUsername(username, password, token); err != nil {
log.Printf("[KfzLogin] 保存Token记录失败: %v, 来源IP: %s", err, clientIP)
} else {
log.Printf("[KfzLogin] 账号密码已保存到数据库: username=%s", username)
}
log.Printf("[KfzLogin] 登录成功: username=%s, userId=%d, nickname=%s, 来源IP: %s", username, userInfo.UserID, userInfo.Nickname, clientIP) log.Printf("[KfzLogin] 登录成功: username=%s, userId=%d, nickname=%s, 来源IP: %s", username, userInfo.UserID, userInfo.Nickname, clientIP)
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
@ -67,159 +76,3 @@ func (h *KfzHandler) KfzLogin(w http.ResponseWriter, r *http.Request) {
"data": userInfo, "data": userInfo,
}) })
} }
func min(a, b int) int {
if a < b {
return a
}
return b
}
/*
* 孔网登录
* param username[string] 孔网用户名
* param password[string] 孔网密码
* return token,错误信息
* Error 登录请求失败
* Error 登录失败(HTTP状态码: %d)
* Error 登录成功但未获取到Cookie
* Error 登录失败: 未找到 PHPSESSID
* Error 账号或密码错误
* Error 登录失败
* Error 登录失败未知错误
*/
func outKfzLogin(username, password string) (string, error) {
// 检查用户名和密码是否为空
if username == "" || password == "" {
return "", fmt.Errorf("请输入用户名和密码!")
}
// 准备POST请求的表单数据
formData := map[string]string{
"loginName": username,
"loginPass": password,
"returnUrl": "http://user.kongfz.com/",
}
// 孔网登录URL
loginUrl := "https://login.kongfz.com/Pc/Login/account"
// 发送登录请求
resp, body, errs := gorequest.New().
Post(loginUrl).
Set("Content-Type", "application/x-www-form-urlencoded").
Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36").
Set("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8").
Send(formData).
Timeout(15 * time.Second).
End()
// 请求错误处理
if len(errs) > 0 {
return "", fmt.Errorf("登录请求失败: %v", errs)
}
// 检查HTTP状态码
if resp.StatusCode != http.StatusOK {
return "", fmt.Errorf("登录失败(HTTP状态码: %d)", resp.StatusCode)
}
// 提取Cookie
cookie := resp.Header.Get("Set-Cookie")
// 检查是否登录成功(通过响应内容判断)
if strings.Contains(body, "window.location.href='https://login.kongfz.cn/Pc/Session/rsync") {
if cookie == "" {
return "", fmt.Errorf("登录成功但未获取到Cookie")
}
// 登录成功
if strings.Contains(cookie, "PHPSESSID=") {
token := strings.Split(strings.Split(cookie, "PHPSESSID=")[1], ";")[0]
return token, nil
}
return "", fmt.Errorf("登录失败: 未找到PHPSESSID")
}
// 错误信息
var res struct {
Status bool `json:"status"`
ErrCode int `json:"errCode"`
ErrInfo string `json:"errInfo"`
}
// 解析json
if err := json.Unmarshal([]byte(body), &res); err == nil {
if res.ErrCode == 1001 || res.ErrCode == 1005 {
return "", fmt.Errorf("账号或密码错误!")
}
if res.ErrInfo != "" {
return "", fmt.Errorf("登录失败: %s", res.ErrInfo)
}
}
return "", fmt.Errorf("登录失败,未知错误!")
}
// UserInfo 孔网用户信息结构体
type UserInfo struct {
UserID int64 `json:"userId"` // 用户ID
Nickname string `json:"nickname"` // 用户昵称
Mobile string `json:"mobile"` // 手机号
Token string `json:"token"` // token
}
/*
* 获取孔网用户信息
* param token[string] 孔网token
* return 孔网用户信息结构体,错误信息
* Error 查询请求失败
* Error HTTP错误
* Error 解析JSON失败
* Error 获取用户失败
*/
func outKfzGetUserInfo(token string) (*UserInfo, error) {
// 用户信息URL
url := "https://user.kongfz.com/User/Index/getUserInfo/"
// 发送请求
resp, body, errs := gorequest.New().
Get(url).
Set("Cookie", fmt.Sprintf("PHPSESSID=%s", token)).
Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36").
Set("Accept", "application/json, text/plain, */*").
Set("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8").
Timeout(15 * time.Second).
End()
if len(errs) > 0 {
return nil, fmt.Errorf("查询用户信息请求失败: %v", errs)
}
//检查HTTP状态码
if resp.StatusCode != http.StatusOK {
return nil, fmt.Errorf("HTTP错误: %s", resp.Status)
}
// 响应数据
var userInfo struct {
Status bool `json:"status"`
Data struct {
UserID int64 `json:"userId"`
Nickname string `json:"nickname"`
Mobile string `json:"mobile"`
}
}
// 解析json
if err := json.Unmarshal([]byte(body), &userInfo); err != nil {
return nil, fmt.Errorf("解析JSON失败: %w", err)
}
// 创建用户信息对象
user := &UserInfo{}
if !userInfo.Status {
return nil, fmt.Errorf("获取用户失败!")
}
user.UserID = userInfo.Data.UserID
user.Nickname = userInfo.Data.Nickname
user.Mobile = userInfo.Data.Mobile
return user, nil
}

View File

@ -71,7 +71,7 @@ func (h *TokenHandler) BatchAddTokens(w http.ResponseWriter, r *http.Request) {
continue continue
} }
id, err := h.tokenRepo.Insert(input.Username, input.Token, true) id, err := h.tokenRepo.Insert(input.Username, "", input.Token, true)
if err != nil { if err != nil {
log.Printf("[Token/BatchAdd] 第%d条插入失败: username=%s, 错误=%v", i+1, input.Username, err) log.Printf("[Token/BatchAdd] 第%d条插入失败: username=%s, 错误=%v", i+1, input.Username, err)
failed = append(failed, input) failed = append(failed, input)
@ -196,7 +196,7 @@ func (h *TokenHandler) UpdateToken(w http.ResponseWriter, r *http.Request) {
} }
log.Printf("[Token/Update] 更新: id=%d, username=%s, is_enable=%v, 来源IP: %s", id, username, isEnable, clientIP) log.Printf("[Token/Update] 更新: id=%d, username=%s, is_enable=%v, 来源IP: %s", id, username, isEnable, clientIP)
err = h.tokenRepo.Update(id, username, token, isEnable) err = h.tokenRepo.Update(id, username, "", token, isEnable)
if err != nil { if err != nil {
log.Printf("[Token/Update] 更新失败: id=%d, 错误=%v, 来源IP: %s", id, err, clientIP) log.Printf("[Token/Update] 更新失败: id=%d, 错误=%v, 来源IP: %s", id, err, clientIP)
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")

View File

@ -3,6 +3,7 @@ package repository
import ( import (
"database/sql" "database/sql"
"fmt" "fmt"
"log"
"strings" "strings"
"kfz-goods-pricing/internal/database" "kfz-goods-pricing/internal/database"
@ -12,6 +13,7 @@ import (
type KfzToken struct { type KfzToken struct {
ID int64 ID int64
Username string Username string
Password string
Token string Token string
IsEnable bool IsEnable bool
} }
@ -66,11 +68,11 @@ func (r *TokenRepository) BatchInsert(tokens []string, username string) (int64,
return id, nil return id, nil
} }
// Insert 插入单条Token记录 // Insert 插入单条Token记录(含密码)
func (r *TokenRepository) Insert(username, token string, isEnable bool) (int64, error) { func (r *TokenRepository) Insert(username, password, token string, isEnable bool) (int64, error) {
query := `INSERT INTO kfz_token (username, token, is_enable) VALUES (?, ?, ?)` query := `INSERT INTO kfz_token (username, password, token, is_enable) VALUES (?, ?, ?, ?)`
result, err := database.DB.Exec(query, username, token, isEnable) result, err := database.DB.Exec(query, username, password, token, isEnable)
if err != nil { if err != nil {
return 0, fmt.Errorf("插入失败: %w", err) return 0, fmt.Errorf("插入失败: %w", err)
} }
@ -83,6 +85,33 @@ func (r *TokenRepository) Insert(username, token string, isEnable bool) (int64,
return id, nil return id, nil
} }
// UpsertByUsername 根据用户名插入或更新记录含密码和token
func (r *TokenRepository) UpsertByUsername(username, password, token string) error {
// 先查是否存在
var count int
err := database.DB.QueryRow("SELECT COUNT(*) FROM kfz_token WHERE username = ?", username).Scan(&count)
if err != nil {
return fmt.Errorf("查询记录失败: %w", err)
}
if count == 0 {
_, err = database.DB.Exec(
`INSERT INTO kfz_token (username, password, token, is_enable) VALUES (?, ?, ?, 1)`,
username, password, token,
)
} else {
_, err = database.DB.Exec(
`UPDATE kfz_token SET password = ?, token = ?, is_enable = 1 WHERE username = ?`,
password, token, username,
)
}
if err != nil {
return fmt.Errorf("保存Token记录失败: %w", err)
}
log.Printf("[Repo/Token] 保存Token成功: username=%s", username)
return nil
}
// GetAll 查询所有记录 // GetAll 查询所有记录
func (r *TokenRepository) GetAll() ([]*KfzToken, error) { func (r *TokenRepository) GetAll() ([]*KfzToken, error) {
query := `SELECT id, username, token, is_enable FROM kfz_token ORDER BY id ASC` query := `SELECT id, username, token, is_enable FROM kfz_token ORDER BY id ASC`
@ -108,12 +137,12 @@ func (r *TokenRepository) GetAll() ([]*KfzToken, error) {
// GetByID 根据ID查询单条记录 // GetByID 根据ID查询单条记录
func (r *TokenRepository) GetByID(id int64) (*KfzToken, error) { func (r *TokenRepository) GetByID(id int64) (*KfzToken, error) {
query := `SELECT id, username, token, is_enable FROM kfz_token WHERE id = ?` query := `SELECT id, username, password, token, is_enable FROM kfz_token WHERE id = ?`
row := database.DB.QueryRow(query, id) row := database.DB.QueryRow(query, id)
var rec KfzToken var rec KfzToken
err := row.Scan(&rec.ID, &rec.Username, &rec.Token, &rec.IsEnable) err := row.Scan(&rec.ID, &rec.Username, &rec.Password, &rec.Token, &rec.IsEnable)
if err != nil { if err != nil {
if err == sql.ErrNoRows { if err == sql.ErrNoRows {
return nil, fmt.Errorf("记录不存在") return nil, fmt.Errorf("记录不存在")
@ -124,11 +153,29 @@ func (r *TokenRepository) GetByID(id int64) (*KfzToken, error) {
return &rec, nil return &rec, nil
} }
// Update 更新记录 // GetByUsername 根据用户名查询记录(含密码)
func (r *TokenRepository) Update(id int64, username, token string, isEnable bool) error { func (r *TokenRepository) GetByUsername(username string) (*KfzToken, error) {
query := `UPDATE kfz_token SET username = ?, token = ?, is_enable = ? WHERE id = ?` query := `SELECT id, username, password, token, is_enable FROM kfz_token WHERE username = ?`
result, err := database.DB.Exec(query, username, token, isEnable, id) row := database.DB.QueryRow(query, username)
var rec KfzToken
err := row.Scan(&rec.ID, &rec.Username, &rec.Password, &rec.Token, &rec.IsEnable)
if err != nil {
if err == sql.ErrNoRows {
return nil, nil
}
return nil, fmt.Errorf("查询失败: %w", err)
}
return &rec, nil
}
// Update 更新记录(完整字段)
func (r *TokenRepository) Update(id int64, username, password, token string, isEnable bool) error {
query := `UPDATE kfz_token SET username = ?, password = ?, token = ?, is_enable = ? WHERE id = ?`
result, err := database.DB.Exec(query, username, password, token, isEnable, id)
if err != nil { if err != nil {
return fmt.Errorf("更新失败: %w", err) return fmt.Errorf("更新失败: %w", err)
} }
@ -141,6 +188,24 @@ func (r *TokenRepository) Update(id int64, username, token string, isEnable bool
return nil return nil
} }
// UpdateToken 只更新token字段用于自动重新登录
func (r *TokenRepository) UpdateToken(id int64, token string) error {
query := `UPDATE kfz_token SET token = ? WHERE id = ?`
result, err := database.DB.Exec(query, token, id)
if err != nil {
return fmt.Errorf("更新Token失败: %w", err)
}
rowsAffected, _ := result.RowsAffected()
if rowsAffected == 0 {
return fmt.Errorf("记录不存在")
}
log.Printf("[Repo/Token] 更新Token成功: id=%d", id)
return nil
}
// Delete 删除记录 // Delete 删除记录
func (r *TokenRepository) Delete(id int64) error { func (r *TokenRepository) Delete(id int64) error {
query := `DELETE FROM kfz_token WHERE id = ?` query := `DELETE FROM kfz_token WHERE id = ?`
@ -160,7 +225,7 @@ func (r *TokenRepository) Delete(id int64) error {
// GetEnabledTokens 获取所有启用状态的Token // GetEnabledTokens 获取所有启用状态的Token
func (r *TokenRepository) GetEnabledTokens() ([]*KfzToken, error) { func (r *TokenRepository) GetEnabledTokens() ([]*KfzToken, error) {
query := `SELECT id, username, token, is_enable FROM kfz_token WHERE is_enable = 1 ORDER BY id ASC` query := `SELECT id, username, password, token, is_enable FROM kfz_token WHERE is_enable = 1 ORDER BY id ASC`
rows, err := database.DB.Query(query) rows, err := database.DB.Query(query)
if err != nil { if err != nil {
@ -171,7 +236,7 @@ func (r *TokenRepository) GetEnabledTokens() ([]*KfzToken, error) {
var records []*KfzToken var records []*KfzToken
for rows.Next() { for rows.Next() {
var rec KfzToken var rec KfzToken
err := rows.Scan(&rec.ID, &rec.Username, &rec.Token, &rec.IsEnable) err := rows.Scan(&rec.ID, &rec.Username, &rec.Password, &rec.Token, &rec.IsEnable)
if err != nil { if err != nil {
return nil, fmt.Errorf("扫描失败: %w", err) return nil, fmt.Errorf("扫描失败: %w", err)
} }

View File

@ -278,6 +278,42 @@ func (s *GoodsService) outGetAllGoods(isbn string, bookName string, author strin
log.Printf("[outGetAllGoods] 请求孔网URL: %s", kfzUrl) log.Printf("[outGetAllGoods] 请求孔网URL: %s", kfzUrl)
// 执行搜索请求最多重试2次首次失败+自动刷新token后重试1次
bookInfo, err := s.doKfzSearch(kfzUrl, token, tokens[currentIdx], queryIndex)
return bookInfo, err
}
// doKfzSearch 执行孔网搜索请求token失效时自动重新登录重试
func (s *GoodsService) doKfzSearch(kfzUrl, token string, tokenRecord *repository.KfzToken, queryIndex int) (*model.BookInfo, error) {
for attempt := 1; attempt <= 2; attempt++ {
bookInfo, err := s.doKfzSearchOnce(kfzUrl, token, queryIndex)
if err == nil {
return bookInfo, nil
}
// 检查是否是token失效错误需要登录
errMsg := err.Error()
if strings.Contains(errMsg, "请登录") || strings.Contains(errMsg, "GO_LOGIN") || strings.Contains(errMsg, "errType=102") {
if attempt == 1 && tokenRecord.Password != "" {
log.Printf("[outGetAllGoods] Token已失效, 尝试自动重新登录: username=%s, id=%d", tokenRecord.Username, tokenRecord.ID)
newToken, refreshErr := s.TryRefreshToken(tokenRecord.ID, tokenRecord.Username, tokenRecord.Password)
if refreshErr != nil {
log.Printf("[outGetAllGoods] 自动重新登录失败: %v", refreshErr)
return nil, err
}
token = newToken
log.Printf("[outGetAllGoods] 使用新Token重试请求")
continue
}
log.Printf("[outGetAllGoods] Token失效但无密码(未保存), 无法自动重新登录")
}
return nil, err
}
return nil, fmt.Errorf("重试次数已用完")
}
// doKfzSearchOnce 执行一次孔网搜索请求
func (s *GoodsService) doKfzSearchOnce(kfzUrl, token string, queryIndex int) (*model.BookInfo, error) {
// 创建HTTP客户端 // 创建HTTP客户端
requestSpt := gorequest.New() requestSpt := gorequest.New()
@ -343,7 +379,7 @@ func (s *GoodsService) outGetAllGoods(isbn string, bookName string, author strin
if apiSptResp.Status != 1 { if apiSptResp.Status != 1 {
log.Printf("[outGetAllGoods] 孔网API返回错误: message=%s, errType=%s", apiSptResp.Message, apiSptResp.ErrType) log.Printf("[outGetAllGoods] 孔网API返回错误: message=%s, errType=%s", apiSptResp.Message, apiSptResp.ErrType)
return nil, fmt.Errorf("错误信息: %v状态码: %s", apiSptResp.Message, apiSptResp.ErrType) return nil, fmt.Errorf("错误信息: %v状态码: %s, errType=%s", apiSptResp.Message, apiSptResp.ErrType)
} }
bookInfo := &model.BookInfo{} bookInfo := &model.BookInfo{}

View File

@ -0,0 +1,144 @@
package service
import (
"encoding/json"
"fmt"
"log"
"net/http"
"strings"
"time"
"github.com/parnurzeal/gorequest"
)
// UserInfo 孔网用户信息结构体
type UserInfo struct {
UserID int64 `json:"userId"` // 用户ID
Nickname string `json:"nickname"` // 用户昵称
Mobile string `json:"mobile"` // 手机号
Token string `json:"token"` // token
}
/*
* 孔网登录
* param username[string] 孔网用户名
* param password[string] 孔网密码
* return token,错误信息
*/
func OutKfzLogin(username, password string) (string, error) {
if username == "" || password == "" {
return "", fmt.Errorf("请输入用户名和密码!")
}
formData := map[string]string{
"loginName": username,
"loginPass": password,
"returnUrl": "http://user.kongfz.com/",
}
loginUrl := "https://login.kongfz.com/Pc/Login/account"
resp, body, errs := gorequest.New().
Post(loginUrl).
Set("Content-Type", "application/x-www-form-urlencoded").
Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36").
Set("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8").
Send(formData).
Timeout(15 * time.Second).
End()
if len(errs) > 0 {
return "", fmt.Errorf("登录请求失败: %v", errs)
}
if resp.StatusCode != http.StatusOK {
return "", fmt.Errorf("登录失败(HTTP状态码: %d)", resp.StatusCode)
}
cookie := resp.Header.Get("Set-Cookie")
if strings.Contains(body, "window.location.href='https://login.kongfz.cn/Pc/Session/rsync") {
if cookie == "" {
return "", fmt.Errorf("登录成功但未获取到Cookie")
}
if strings.Contains(cookie, "PHPSESSID=") {
token := strings.Split(strings.Split(cookie, "PHPSESSID=")[1], ";")[0]
return token, nil
}
return "", fmt.Errorf("登录失败: 未找到PHPSESSID")
}
var res struct {
Status bool `json:"status"`
ErrCode int `json:"errCode"`
ErrInfo string `json:"errInfo"`
}
if err := json.Unmarshal([]byte(body), &res); err == nil {
if res.ErrCode == 1001 || res.ErrCode == 1005 {
return "", fmt.Errorf("账号或密码错误!")
}
if res.ErrInfo != "" {
return "", fmt.Errorf("登录失败: %s", res.ErrInfo)
}
}
return "", fmt.Errorf("登录失败,未知错误!")
}
/*
* 获取孔网用户信息
*/
func OutKfzGetUserInfo(token string) (*UserInfo, error) {
url := "https://user.kongfz.com/User/Index/getUserInfo/"
resp, body, errs := gorequest.New().
Get(url).
Set("Cookie", fmt.Sprintf("PHPSESSID=%s", token)).
Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36").
Set("Accept", "application/json, text/plain, */*").
Set("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8").
Timeout(15 * time.Second).
End()
if len(errs) > 0 {
return nil, fmt.Errorf("查询用户信息请求失败: %v", errs)
}
if resp.StatusCode != http.StatusOK {
return nil, fmt.Errorf("HTTP错误: %s", resp.Status)
}
var userInfo struct {
Status bool `json:"status"`
Data struct {
UserID int64 `json:"userId"`
Nickname string `json:"nickname"`
Mobile string `json:"mobile"`
}
}
if err := json.Unmarshal([]byte(body), &userInfo); err != nil {
return nil, fmt.Errorf("解析JSON失败: %w", err)
}
user := &UserInfo{}
if !userInfo.Status {
return nil, fmt.Errorf("获取用户失败!")
}
user.UserID = userInfo.Data.UserID
user.Nickname = userInfo.Data.Nickname
user.Mobile = userInfo.Data.Mobile
return user, nil
}
// TryRefreshToken 尝试用保存的密码重新登录更新token。成功返回新token
func (s *GoodsService) TryRefreshToken(tokenID int64, username, password string) (string, error) {
log.Printf("[RefreshToken] 开始重新登录: username=%s, tokenID=%d", username, tokenID)
newToken, err := OutKfzLogin(username, password)
if err != nil {
log.Printf("[RefreshToken] 重新登录失败: username=%s, 错误=%v", username, err)
return "", err
}
// 更新数据库中的token
if err := s.tokenRepository.UpdateToken(tokenID, newToken); err != nil {
log.Printf("[RefreshToken] 更新Token失败: id=%d, 错误=%v", tokenID, err)
return "", err
}
log.Printf("[RefreshToken] 重新登录并更新Token成功: username=%s, tokenID=%d", username, tokenID)
return newToken, nil
}

4939
log/2026-06-26.log Normal file

File diff suppressed because it is too large Load Diff

685
log/2026-06-30.log Normal file
View File

@ -0,0 +1,685 @@
====== 2026-06-30 10:50:02 日志文件初始化完成 ======
2026/06/30 10:50:02 孔网商品定价 v1.0.2 启动中...
2026/06/30 10:50:02 配置加载成功: port=8080, timer=5s, rate_limit=2s
2026/06/30 10:50:02 config: {"Port":"8080","TimerInterval":5,"APIRateLimit":2,"CallbackURL":"http://192.168.101.213:9090/api/product/updatePrice","NewPrice":0,"PlaceholderDownPrice":0,"MinShippingFee":0,"MinPrice":0,"QueryIndex":0}
2026/06/30 10:50:02 [DB] 初始化数据库: path=./data/goods_pricing.db
2026/06/30 10:50:02 [DB] 数据库初始化完成
2026/06/30 10:50:02 数据库初始化成功
2026/06/30 10:50:02 [TimerScheduler] 定时器启动, 间隔=5秒
2026/06/30 10:50:02 定时器已启动5秒后开始首次同步
2026/06/30 10:50:02 服务器正在启动 8080
====== 2026-06-30 11:11:29 日志文件初始化完成 ======
2026/06/30 11:11:29 孔网商品定价 v1.0.2 启动中...
2026/06/30 11:11:29 配置加载成功: port=8080, timer=5s, rate_limit=2s
2026/06/30 11:11:29 config: {"Port":"8080","TimerInterval":5,"APIRateLimit":2,"CallbackURL":"http://192.168.101.213:9090/api/product/updatePrice","NewPrice":0,"PlaceholderDownPrice":0,"MinShippingFee":0,"MinPrice":0,"QueryIndex":0}
2026/06/30 11:11:29 [DB] 初始化数据库: path=./data/goods_pricing.db
2026/06/30 11:11:29 [DB] 数据库初始化完成
2026/06/30 11:11:29 数据库初始化成功
2026/06/30 11:11:29 [TimerScheduler] 定时器启动, 间隔=5秒
2026/06/30 11:11:29 定时器已启动5秒后开始首次同步
2026/06/30 11:11:29 服务器正在启动 8080
2026/06/30 11:11:34 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:11:34 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=77
2026/06/30 11:11:34 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:11:34 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:11:34 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:11:34 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:11:34 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789090359,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:11:34 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:11:34 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:11:34 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:11:34 [syncGoodsPricing] 标记失败: id=4, fail_count=78, new_price=0不启用兜底
2026/06/30 11:11:38 [KfzLogin] 收到登录请求, 来源IP: 127.0.0.1:62095
2026/06/30 11:11:38 [KfzLogin] 开始登录孔网, username=1553, 来源IP: 127.0.0.1:62095
2026/06/30 11:11:38 [KfzLogin] 孔网登录失败: username=1553, 错误=账号或密码错误!, 来源IP: 127.0.0.1:62095
2026/06/30 11:11:38 [Token/GetAll] 收到请求, 来源IP: 127.0.0.1:62095
2026/06/30 11:11:38 [Token/GetAll] 查询成功: 共1条记录, 来源IP: 127.0.0.1:62095
2026/06/30 11:11:39 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:11:39 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=78
2026/06/30 11:11:39 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:11:39 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:11:39 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:11:39 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:11:39 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789095382,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:11:39 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:11:39 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:11:39 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:11:39 [syncGoodsPricing] 标记失败: id=4, fail_count=79, new_price=0不启用兜底
2026/06/30 11:11:44 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:11:44 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=79
2026/06/30 11:11:44 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:11:44 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:11:44 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:11:44 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:11:44 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789100395,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:11:44 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:11:44 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:11:44 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:11:44 [syncGoodsPricing] 标记失败: id=4, fail_count=80, new_price=0不启用兜底
2026/06/30 11:11:49 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:11:49 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=80
2026/06/30 11:11:49 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:11:49 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:11:49 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:11:49 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:11:49 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789105401,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:11:49 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:11:49 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:11:49 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:11:49 [syncGoodsPricing] 标记失败: id=4, fail_count=81, new_price=0不启用兜底
2026/06/30 11:11:54 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:11:54 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=81
2026/06/30 11:11:54 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:11:54 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:11:54 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:11:54 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:11:54 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789110390,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:11:54 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:11:54 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:11:54 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:11:54 [syncGoodsPricing] 标记失败: id=4, fail_count=82, new_price=0不启用兜底
2026/06/30 11:11:59 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:11:59 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=82
2026/06/30 11:11:59 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:11:59 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:11:59 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:11:59 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:11:59 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789115395,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:11:59 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:11:59 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:11:59 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:11:59 [syncGoodsPricing] 标记失败: id=4, fail_count=83, new_price=0不启用兜底
2026/06/30 11:12:04 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:12:04 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=83
2026/06/30 11:12:04 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:12:04 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:12:04 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:12:04 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:12:04 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789120417,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:12:04 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:12:04 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:12:04 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:12:04 [syncGoodsPricing] 标记失败: id=4, fail_count=84, new_price=0不启用兜底
2026/06/30 11:12:09 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:12:09 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=84
2026/06/30 11:12:09 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:12:09 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:12:09 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:12:09 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:12:09 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789125461,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:12:09 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:12:09 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:12:09 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:12:09 [syncGoodsPricing] 标记失败: id=4, fail_count=85, new_price=0不启用兜底
2026/06/30 11:12:14 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:12:14 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=85
2026/06/30 11:12:14 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:12:14 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:12:14 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:12:14 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:12:14 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789130405,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:12:14 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:12:14 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:12:14 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:12:14 [syncGoodsPricing] 标记失败: id=4, fail_count=86, new_price=0不启用兜底
2026/06/30 11:12:19 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:12:19 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=86
2026/06/30 11:12:19 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:12:19 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:12:19 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:12:19 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:12:19 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789135406,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:12:19 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:12:19 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:12:19 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:12:19 [syncGoodsPricing] 标记失败: id=4, fail_count=87, new_price=0不启用兜底
2026/06/30 11:12:24 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:12:24 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=87
2026/06/30 11:12:24 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:12:24 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:12:24 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:12:24 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:12:24 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789140415,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:12:24 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:12:24 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:12:24 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:12:24 [syncGoodsPricing] 标记失败: id=4, fail_count=88, new_price=0不启用兜底
2026/06/30 11:12:29 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:12:29 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=88
2026/06/30 11:12:29 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:12:29 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:12:29 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:12:29 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:12:29 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789145389,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:12:29 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:12:29 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:12:29 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:12:29 [syncGoodsPricing] 标记失败: id=4, fail_count=89, new_price=0不启用兜底
2026/06/30 11:12:34 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:12:34 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=89
2026/06/30 11:12:34 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:12:34 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:12:34 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:12:34 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:12:34 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789150410,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:12:34 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:12:34 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:12:34 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:12:34 [syncGoodsPricing] 标记失败: id=4, fail_count=90, new_price=0不启用兜底
2026/06/30 11:12:39 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:12:39 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=90
2026/06/30 11:12:39 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:12:39 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:12:39 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:12:39 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:12:39 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789155394,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:12:39 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:12:39 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:12:39 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:12:39 [syncGoodsPricing] 标记失败: id=4, fail_count=91, new_price=0不启用兜底
2026/06/30 11:12:44 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:12:44 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=91
2026/06/30 11:12:44 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:12:44 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:12:44 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:12:44 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:12:44 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789160401,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:12:44 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:12:44 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:12:44 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:12:44 [syncGoodsPricing] 标记失败: id=4, fail_count=92, new_price=0不启用兜底
2026/06/30 11:12:49 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:12:49 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=92
2026/06/30 11:12:49 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:12:49 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:12:49 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:12:49 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:12:49 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789165378,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:12:49 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:12:49 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:12:49 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:12:49 [syncGoodsPricing] 标记失败: id=4, fail_count=93, new_price=0不启用兜底
2026/06/30 11:12:54 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:12:54 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=93
2026/06/30 11:12:54 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:12:54 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:12:54 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:12:54 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:12:54 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789170390,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:12:54 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:12:54 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:12:54 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:12:54 [syncGoodsPricing] 标记失败: id=4, fail_count=94, new_price=0不启用兜底
2026/06/30 11:12:59 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:12:59 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=94
2026/06/30 11:12:59 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:12:59 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:12:59 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:12:59 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:12:59 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789175394,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:12:59 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:12:59 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:12:59 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:12:59 [syncGoodsPricing] 标记失败: id=4, fail_count=95, new_price=0不启用兜底
2026/06/30 11:13:04 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:13:04 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=95
2026/06/30 11:13:04 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:13:04 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:13:04 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:13:04 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:13:04 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789180390,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:13:04 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:13:04 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:13:04 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:13:04 [syncGoodsPricing] 标记失败: id=4, fail_count=96, new_price=0不启用兜底
2026/06/30 11:13:09 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:13:09 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=96
2026/06/30 11:13:09 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:13:09 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:13:09 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:13:09 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:13:09 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789185403,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:13:09 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:13:09 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:13:09 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:13:09 [syncGoodsPricing] 标记失败: id=4, fail_count=97, new_price=0不启用兜底
2026/06/30 11:13:14 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:13:14 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=97
2026/06/30 11:13:14 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:13:14 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:13:14 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:13:14 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:13:14 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789190392,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:13:14 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:13:14 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:13:14 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:13:14 [syncGoodsPricing] 标记失败: id=4, fail_count=98, new_price=0不启用兜底
2026/06/30 11:13:19 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:13:19 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=98
2026/06/30 11:13:19 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:13:19 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:13:19 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:13:19 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:13:19 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789195398,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:13:19 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:13:19 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:13:19 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:13:19 [syncGoodsPricing] 标记失败: id=4, fail_count=99, new_price=0不启用兜底
2026/06/30 11:13:24 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:13:24 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=99
2026/06/30 11:13:24 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:13:24 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:13:24 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:13:24 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:13:24 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789200386,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:13:24 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:13:24 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:13:24 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:13:24 [syncGoodsPricing] 标记失败: id=4, fail_count=100, new_price=0不启用兜底
2026/06/30 11:13:29 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:13:29 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=100
2026/06/30 11:13:29 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:13:29 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:13:29 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:13:29 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:13:29 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789205407,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:13:29 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:13:29 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:13:29 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:13:29 [syncGoodsPricing] 标记失败: id=4, fail_count=101, new_price=0不启用兜底
2026/06/30 11:13:34 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:13:34 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=101
2026/06/30 11:13:34 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:13:34 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:13:34 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:13:34 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:13:34 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789210292,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:13:34 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:13:34 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:13:34 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:13:34 [syncGoodsPricing] 标记失败: id=4, fail_count=102, new_price=0不启用兜底
2026/06/30 11:13:39 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:13:39 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=102
2026/06/30 11:13:39 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:13:39 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:13:39 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:13:39 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:13:39 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789215268,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:13:39 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:13:39 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:13:39 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:13:39 [syncGoodsPricing] 标记失败: id=4, fail_count=103, new_price=0不启用兜底
2026/06/30 11:13:44 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:13:44 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=103
2026/06/30 11:13:44 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:13:44 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:13:44 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:13:44 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:13:44 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789220278,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:13:44 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:13:44 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:13:44 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:13:44 [syncGoodsPricing] 标记失败: id=4, fail_count=104, new_price=0不启用兜底
2026/06/30 11:13:49 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:13:49 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=104
2026/06/30 11:13:49 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:13:49 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:13:49 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:13:49 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:13:49 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789225263,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:13:49 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:13:49 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:13:49 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:13:49 [syncGoodsPricing] 标记失败: id=4, fail_count=105, new_price=0不启用兜底
2026/06/30 11:13:54 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:13:54 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=105
2026/06/30 11:13:54 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:13:54 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:13:54 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:13:54 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:13:54 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789230250,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:13:54 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:13:54 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:13:54 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:13:54 [syncGoodsPricing] 标记失败: id=4, fail_count=106, new_price=0不启用兜底
2026/06/30 11:13:59 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:13:59 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=106
2026/06/30 11:13:59 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:13:59 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:13:59 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:13:59 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:13:59 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789235265,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:13:59 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:13:59 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:13:59 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:13:59 [syncGoodsPricing] 标记失败: id=4, fail_count=107, new_price=0不启用兜底
2026/06/30 11:14:04 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:14:04 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=107
2026/06/30 11:14:04 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:14:04 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:14:04 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:14:04 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:14:04 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789240263,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:14:04 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:14:04 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:14:04 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:14:04 [syncGoodsPricing] 标记失败: id=4, fail_count=108, new_price=0不启用兜底
2026/06/30 11:14:09 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:14:09 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=108
2026/06/30 11:14:09 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:14:09 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:14:09 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:14:09 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:14:09 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789245281,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:14:09 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:14:09 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:14:09 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:14:09 [syncGoodsPricing] 标记失败: id=4, fail_count=109, new_price=0不启用兜底
2026/06/30 11:14:14 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:14:14 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=109
2026/06/30 11:14:14 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:14:14 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:14:14 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:14:14 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:14:14 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789250255,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:14:14 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:14:14 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:14:14 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:14:14 [syncGoodsPricing] 标记失败: id=4, fail_count=110, new_price=0不启用兜底
2026/06/30 11:14:19 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:14:19 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=110
2026/06/30 11:14:19 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:14:19 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:14:19 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:14:19 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:14:19 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789255279,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:14:19 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:14:19 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:14:19 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:14:19 [syncGoodsPricing] 标记失败: id=4, fail_count=111, new_price=0不启用兜底
2026/06/30 11:14:24 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:14:24 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=111
2026/06/30 11:14:24 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:14:24 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:14:24 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:14:24 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:14:24 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789260279,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:14:24 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:14:24 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:14:24 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:14:24 [syncGoodsPricing] 标记失败: id=4, fail_count=112, new_price=0不启用兜底
2026/06/30 11:14:29 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:14:29 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=112
2026/06/30 11:14:29 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:14:29 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:14:29 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:14:29 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:14:29 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789265260,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:14:29 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:14:29 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:14:29 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:14:29 [syncGoodsPricing] 标记失败: id=4, fail_count=113, new_price=0不启用兜底
2026/06/30 11:14:34 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:14:34 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=113
2026/06/30 11:14:34 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:14:34 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:14:34 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:14:34 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:14:34 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789270263,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:14:34 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:14:34 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:14:34 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:14:34 [syncGoodsPricing] 标记失败: id=4, fail_count=114, new_price=0不启用兜底
2026/06/30 11:14:39 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:14:39 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=114
2026/06/30 11:14:39 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:14:39 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:14:39 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:14:39 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:14:39 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789275253,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:14:39 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:14:39 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:14:39 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:14:39 [syncGoodsPricing] 标记失败: id=4, fail_count=115, new_price=0不启用兜底
2026/06/30 11:14:44 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:14:44 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=115
2026/06/30 11:14:44 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:14:44 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:14:44 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:14:44 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:14:44 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789280262,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:14:44 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:14:44 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:14:44 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:14:44 [syncGoodsPricing] 标记失败: id=4, fail_count=116, new_price=0不启用兜底
2026/06/30 11:14:49 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:14:49 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=116
2026/06/30 11:14:49 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:14:49 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:14:49 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:14:49 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:14:49 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789285259,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:14:49 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:14:49 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:14:49 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:14:49 [syncGoodsPricing] 标记失败: id=4, fail_count=117, new_price=0不启用兜底
2026/06/30 11:14:54 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:14:54 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=117
2026/06/30 11:14:54 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:14:54 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:14:54 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:14:54 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:14:54 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789290280,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:14:54 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:14:54 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:14:54 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:14:54 [syncGoodsPricing] 标记失败: id=4, fail_count=118, new_price=0不启用兜底
2026/06/30 11:14:59 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:14:59 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=118
2026/06/30 11:14:59 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:14:59 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:14:59 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:14:59 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:14:59 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789295268,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:14:59 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:14:59 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:14:59 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:14:59 [syncGoodsPricing] 标记失败: id=4, fail_count=119, new_price=0不启用兜底
2026/06/30 11:15:04 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:15:04 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=119
2026/06/30 11:15:04 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:15:04 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:15:04 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:15:04 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:15:04 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789300270,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:15:04 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:15:04 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:15:04 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:15:04 [syncGoodsPricing] 标记失败: id=4, fail_count=120, new_price=0不启用兜底
2026/06/30 11:15:09 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:15:09 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=120
2026/06/30 11:15:09 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:15:09 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:15:09 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:15:09 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:15:09 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789305279,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:15:09 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:15:09 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:15:09 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:15:09 [syncGoodsPricing] 标记失败: id=4, fail_count=121, new_price=0不启用兜底
2026/06/30 11:15:14 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:15:14 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=121
2026/06/30 11:15:14 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:15:14 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:15:14 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:15:14 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:15:14 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789310260,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:15:14 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:15:14 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:15:14 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:15:14 [syncGoodsPricing] 标记失败: id=4, fail_count=122, new_price=0不启用兜底
2026/06/30 11:15:19 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:15:19 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=122
2026/06/30 11:15:19 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:15:19 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:15:19 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:15:19 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:15:19 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789315285,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:15:19 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:15:19 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:15:19 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:15:19 [syncGoodsPricing] 标记失败: id=4, fail_count=123, new_price=0不启用兜底
2026/06/30 11:15:24 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:15:24 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=123
2026/06/30 11:15:24 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:15:24 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:15:24 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:15:24 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:15:24 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789320284,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:15:24 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:15:24 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:15:24 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:15:24 [syncGoodsPricing] 标记失败: id=4, fail_count=124, new_price=0不启用兜底
2026/06/30 11:15:29 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:15:29 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=124
2026/06/30 11:15:29 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:15:29 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:15:29 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:15:29 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:15:29 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789325279,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:15:29 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:15:29 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:15:29 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:15:29 [syncGoodsPricing] 标记失败: id=4, fail_count=125, new_price=0不启用兜底
2026/06/30 11:15:34 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:15:34 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=125
2026/06/30 11:15:34 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:15:34 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:15:34 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:15:34 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:15:34 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789330275,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:15:34 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:15:34 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:15:34 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:15:34 [syncGoodsPricing] 标记失败: id=4, fail_count=126, new_price=0不启用兜底
2026/06/30 11:15:39 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:15:39 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=126
2026/06/30 11:15:39 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:15:39 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:15:39 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:15:39 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:15:39 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789335262,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:15:39 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:15:39 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:15:39 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:15:39 [syncGoodsPricing] 标记失败: id=4, fail_count=127, new_price=0不启用兜底
2026/06/30 11:15:44 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:15:44 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=127
2026/06/30 11:15:44 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:15:44 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:15:44 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:15:44 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:15:44 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789340263,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:15:44 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:15:44 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:15:44 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:15:44 [syncGoodsPricing] 标记失败: id=4, fail_count=128, new_price=0不启用兜底
2026/06/30 11:15:49 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:15:49 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=128
2026/06/30 11:15:49 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:15:49 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:15:49 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:15:49 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:15:49 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789345267,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:15:49 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:15:49 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:15:49 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:15:49 [syncGoodsPricing] 标记失败: id=4, fail_count=129, new_price=0不启用兜底
2026/06/30 11:15:54 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:15:54 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=129
2026/06/30 11:15:54 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:15:54 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:15:54 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:15:54 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:15:54 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789350275,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:15:54 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:15:54 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:15:54 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:15:54 [syncGoodsPricing] 标记失败: id=4, fail_count=130, new_price=0不启用兜底
2026/06/30 11:15:59 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:15:59 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=130
2026/06/30 11:15:59 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:15:59 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:15:59 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:15:59 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:15:59 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789355259,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:15:59 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:15:59 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:15:59 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:15:59 [syncGoodsPricing] 标记失败: id=4, fail_count=131, new_price=0不启用兜底
2026/06/30 11:16:04 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:16:04 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=131
2026/06/30 11:16:04 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:16:04 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:16:04 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:16:04 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:16:04 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789360254,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:16:04 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:16:04 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:16:04 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:16:04 [syncGoodsPricing] 标记失败: id=4, fail_count=132, new_price=0不启用兜底
2026/06/30 11:16:09 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:16:09 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=132
2026/06/30 11:16:09 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:16:09 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:16:09 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:16:09 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:16:09 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789365265,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:16:09 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:16:09 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:16:09 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:16:09 [syncGoodsPricing] 标记失败: id=4, fail_count=133, new_price=0不启用兜底
2026/06/30 11:16:14 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:16:14 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=133
2026/06/30 11:16:14 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:16:14 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:16:14 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:16:14 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:16:14 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789370285,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:16:14 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:16:14 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:16:14 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:16:14 [syncGoodsPricing] 标记失败: id=4, fail_count=134, new_price=0不启用兜底
2026/06/30 11:16:19 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:16:19 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=134
2026/06/30 11:16:19 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:16:19 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:16:19 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:16:19 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:16:19 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789375291,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:16:19 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:16:19 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:16:19 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:16:19 [syncGoodsPricing] 标记失败: id=4, fail_count=135, new_price=0不启用兜底
2026/06/30 11:16:24 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:16:24 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=135
2026/06/30 11:16:24 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:16:24 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:16:24 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:16:24 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:16:24 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789380273,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:16:24 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:16:24 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:16:24 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:16:24 [syncGoodsPricing] 标记失败: id=4, fail_count=136, new_price=0不启用兜底
2026/06/30 11:16:29 [Repo/Config] 查询成功: new_price=0.00, placeholder_down_price=0.00, min_shipping_fee=0.00, min_price=0.00, query_index=0
2026/06/30 11:16:29 [Repo/Goods] 查询到待处理记录: id=4, isbn=112233445566, book_name=测试图书, fail_count=136
2026/06/30 11:16:29 [syncGoodsPricing] 开始查询孔网数据: id=4, isbn=112233445566, book_name=测试图书
2026/06/30 11:16:29 [outGetAllGoods] 可用token数量: 1
2026/06/30 11:16:29 [outGetAllGoods] 使用token索引: 0/1, username=甄选图书
2026/06/30 11:16:29 [outGetAllGoods] 请求孔网URL: https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?dataType=0&page=1&sortType=7&userArea=13003000000&quaSelect=2&keyword=112233445566&keyword=测试图书&author=测试作者&quality=100~&actionPath=sortType,quality
2026/06/30 11:16:29 [outGetAllGoods] 孔网响应数据: {"status":0,"errType":"102","message":"请登录后再进行访问。","systemTime":1782789385262,"data":{"requestRejectCause":"请登录后再进行访问。","requestRejectAction":"GO_LOGIN"}}
2026/06/30 11:16:29 [outGetAllGoods] 孔网API返回错误: message=请登录后再进行访问。, errType=102
2026/06/30 11:16:29 [syncGoodsPricing] 查询孔网失败: id=4, 错误=错误信息: 请登录后再进行访问。,状态码: 102
2026/06/30 11:16:29 [Repo/Goods] 标记失败成功: id=4
2026/06/30 11:16:29 [syncGoodsPricing] 标记失败: id=4, fail_count=137, new_price=0不启用兜底