注释旧批量

This commit is contained in:
97694731 2026-03-07 10:45:37 +08:00
parent ad3d48eeba
commit 82daef6bb8
2 changed files with 64 additions and 26 deletions

View File

@ -6,6 +6,7 @@ import (
"centerBook/image" "centerBook/image"
"centerBook/kongfz" "centerBook/kongfz"
"centerBook/tail" "centerBook/tail"
"centerBook/util/redisClient"
"context" "context"
"encoding/json" "encoding/json"
"fmt" "fmt"
@ -1446,7 +1447,7 @@ func (svc *ESSearchService) BatchGetBookBaseInfoES(c *gin.Context) ([]ESBook, in
} }
// ===== saleSelect 对应字段映射 ===== // ===== saleSelect 对应字段映射 =====
saleSelect := c.DefaultQuery("saleSelect", "") saleSelect := c.DefaultQuery("saleSelect", "2")
saleField := map[string]string{ saleField := map[string]string{
"7": "day_sale_7", "7": "day_sale_7",
"15": "day_sale_15", "15": "day_sale_15",
@ -1848,6 +1849,8 @@ func (svc *ESSearchService) BatchGetBookBaseInfoES(c *gin.Context) ([]ESBook, in
svc.ES.Client.Search.WithTrackTotalHits(true), svc.ES.Client.Search.WithTrackTotalHits(true),
) )
fmt.Printf("[DEBUG] ES Query Response:\n%s\n", res)
if err != nil { if err != nil {
fmt.Printf("[ERROR] ES.Client.Search error: %v\n", err) fmt.Printf("[ERROR] ES.Client.Search error: %v\n", err)
return nil, 0, err return nil, 0, err
@ -1867,6 +1870,7 @@ func (svc *ESSearchService) BatchGetBookBaseInfoES(c *gin.Context) ([]ESBook, in
if err != nil { if err != nil {
return nil, 0, fmt.Errorf("读取响应失败: %v", err) return nil, 0, fmt.Errorf("读取响应失败: %v", err)
} }
// 检查是否有数据 // 检查是否有数据
if len(rawData) == 0 { if len(rawData) == 0 {
return nil, 0, fmt.Errorf("ES返回空响应") return nil, 0, fmt.Errorf("ES返回空响应")
@ -1969,13 +1973,33 @@ func (svc *ESSearchService) SearchBooksHandler(c *gin.Context) {
return return
} }
ctx := context.Background()
db4Client, err := redisClient.GetClientByName("db4")
if err == nil {
val, err := db4Client.Get(ctx, isbn).Result()
if err == nil && val != "" {
log.Printf("[SearchBooksHandler] 从 Redis db4 查询到数据: %s", isbn)
var esBook ESBook
if err := json.Unmarshal([]byte(val), &esBook); err == nil {
responseList := []ESBookResponse{esBook.ConvertToResponse()}
c.JSON(200, gin.H{
"count": 1,
"data": responseList,
})
return
} else {
log.Printf("[SearchBooksHandler] Redis 数据解析失败: %v", err)
}
}
}
result, err := svc.SearchBooks(isbn) result, err := svc.SearchBooks(isbn)
if err != nil { if err != nil {
c.JSON(500, gin.H{"error": "ES 查询失败", "details": err.Error()}) c.JSON(500, gin.H{"error": "ES 查询失败", "details": err.Error()})
return return
} }
// 转换为Java兼容的响应格式
responseList := make([]ESBookResponse, 0, len(result)) responseList := make([]ESBookResponse, 0, len(result))
for _, book := range result { for _, book := range result {
responseList = append(responseList, book.ConvertToResponse()) responseList = append(responseList, book.ConvertToResponse())
@ -1987,14 +2011,6 @@ func (svc *ESSearchService) SearchBooksHandler(c *gin.Context) {
}) })
} }
func (svc *ESSearchService) SearchBookByISBNHandler(c *gin.Context) { func (svc *ESSearchService) SearchBookByISBNHandler(c *gin.Context) {
// 访问 http://localhost:8095 连接
//resp, err := http.Get("http://localhost:8095")
//if err != nil {
// // 请求失败时处理错误
// fmt.Println("Error:", err)
// return
//}
//defer resp.Body.Close() // 确保响应体被关闭
isbn := c.Query("isbn") isbn := c.Query("isbn")
if isbn == "" { if isbn == "" {
@ -2005,7 +2021,32 @@ func (svc *ESSearchService) SearchBookByISBNHandler(c *gin.Context) {
log.Printf("[SearchBookByISBNHandler] 查询 ISBN: %s", isbn) log.Printf("[SearchBookByISBNHandler] 查询 ISBN: %s", isbn)
// 1. 先从 ES 查询 ctx := context.Background()
db4Client, err := redisClient.GetClientByName("db4")
fmt.Println(db4Client)
if err != nil {
log.Printf("[SearchBookByISBNHandler] 获取 Redis db4 客户端失败: %v", err)
} else {
val, err := db4Client.Get(ctx, isbn).Result()
if err == nil && val != "" {
log.Printf("[SearchBookByISBNHandler] 从 Redis db4 查询到数据: %s", isbn)
var esBook ESBook
if err := json.Unmarshal([]byte(val), &esBook); err == nil {
responseData := esBook.ConvertToResponse()
c.JSON(200, gin.H{
"data": responseData,
})
return
} else {
log.Printf("[SearchBookByISBNHandler] Redis 数据解析失败: %v", err)
}
} else {
log.Printf("[SearchBookByISBNHandler] Redis db4 中未找到 ISBN: %s", isbn)
}
}
result, err := svc.SearchBookByISBN(isbn) result, err := svc.SearchBookByISBN(isbn)
if err != nil { if err != nil {
log.Printf("[SearchBookByISBNHandler] ES 查询失败: %v", err) log.Printf("[SearchBookByISBNHandler] ES 查询失败: %v", err)
@ -2016,7 +2057,6 @@ func (svc *ESSearchService) SearchBookByISBNHandler(c *gin.Context) {
if result == nil { if result == nil {
log.Printf("[SearchBookByISBNHandler] ES 中未找到 ISBN: %s从孔夫子抓取", isbn) log.Printf("[SearchBookByISBNHandler] ES 中未找到 ISBN: %s从孔夫子抓取", isbn)
// 2. ES 没有,从孔夫子获取
apiBook, err := kongfz.GetBookImageByISBN(isbn, "CALF_ELEPHANT_PROXY", "1297757178467602432", "QgQBvP7f") apiBook, err := kongfz.GetBookImageByISBN(isbn, "CALF_ELEPHANT_PROXY", "1297757178467602432", "QgQBvP7f")
if err != nil { if err != nil {
log.Printf("[SearchBookByISBNHandler] 孔夫子 API 查询失败: %v", err) log.Printf("[SearchBookByISBNHandler] 孔夫子 API 查询失败: %v", err)
@ -2031,7 +2071,6 @@ func (svc *ESSearchService) SearchBookByISBNHandler(c *gin.Context) {
log.Printf("[SearchBookByISBNHandler] 获取到图书信息: %+v", apiBook.Data) log.Printf("[SearchBookByISBNHandler] 获取到图书信息: %+v", apiBook.Data)
// 3. 下载并上传 book_pic
pddBookPicURL := "" pddBookPicURL := ""
if apiBook.Data.BookPic != "" { if apiBook.Data.BookPic != "" {
url, err := image.DownloadAndUploadBookImage(apiBook.Data.BookPic, isbn, "true", apiBook.Data.BookName, "true") url, err := image.DownloadAndUploadBookImage(apiBook.Data.BookPic, isbn, "true", apiBook.Data.BookName, "true")
@ -2043,7 +2082,6 @@ func (svc *ESSearchService) SearchBookByISBNHandler(c *gin.Context) {
} }
} }
// 4. 下载并上传 book_pic_s
pddBookPicSURL := "" pddBookPicSURL := ""
if apiBook.Data.BookPicS != "" { if apiBook.Data.BookPicS != "" {
url, err := image.DownloadAndUploadBookImage(apiBook.Data.BookPicS, isbn, "true", apiBook.Data.BookName, "true") url, err := image.DownloadAndUploadBookImage(apiBook.Data.BookPicS, isbn, "true", apiBook.Data.BookName, "true")
@ -2055,15 +2093,12 @@ func (svc *ESSearchService) SearchBookByISBNHandler(c *gin.Context) {
} }
} }
// 5. 转换为 ESBook
esBook := ConvertKongfzToESBook(apiBook) esBook := ConvertKongfzToESBook(apiBook)
// 替换 BookPicS 和 BookPic 的 PDD URL
esBook.BookPicS.PddResponse = pddBookPicSURL esBook.BookPicS.PddResponse = pddBookPicSURL
esBook.BookPic.PddPath = pddBookPicURL esBook.BookPic.PddPath = pddBookPicURL
//log.Printf("[SearchBookByISBNHandler] 写入 ES: %+v", esBook) //log.Printf("[SearchBookByISBNHandler] 写入 ES: %+v", esBook)
// 6. 写入 ES
result, err = svc.AddBookToES(c.Request.Context(), esBook) result, err = svc.AddBookToES(c.Request.Context(), esBook)
if err != nil { if err != nil {
log.Printf("[SearchBookByISBNHandler] 写入 ES 失败: %v", err) log.Printf("[SearchBookByISBNHandler] 写入 ES 失败: %v", err)
@ -2076,7 +2111,6 @@ func (svc *ESSearchService) SearchBookByISBNHandler(c *gin.Context) {
//log.Printf("[SearchBookByISBNHandler] 从 ES 查询到图书: %+v", result) //log.Printf("[SearchBookByISBNHandler] 从 ES 查询到图书: %+v", result)
} }
// 转换为Java兼容的响应格式
responseData := result.ConvertToResponse() responseData := result.ConvertToResponse()
c.JSON(200, gin.H{ c.JSON(200, gin.H{
"data": responseData, "data": responseData,

20
main.go
View File

@ -27,6 +27,7 @@ import (
"github.com/go-redis/redis/v8" "github.com/go-redis/redis/v8"
"centerBook/es" "centerBook/es"
"centerBook/util/redisClient"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
_ "github.com/go-sql-driver/mysql" _ "github.com/go-sql-driver/mysql"
@ -174,22 +175,25 @@ func main() {
//) //)
/** 新ES任务2 **/ /** 新ES任务2 **/
//esClient, err := es.NewESClient(
// []string{"http://localhost:9200"},
// "elastic",
// "zDzSXel3PFwx9=6Ybmqv",
//)
/** ES2 本地测试 **/
esClient, err := es.NewESClient( esClient, err := es.NewESClient(
[]string{"http://36.212.1.63:9200"}, []string{"http://localhost:9200"},
"elastic", "elastic",
"zDzSXel3PFwx9=6Ybmqv", "zDzSXel3PFwx9=6Ybmqv",
) )
///** ES2 本地测试 **/
//esClient, err := es.NewESClient(
// []string{"http://36.212.1.63:9200"},
// "elastic",
// "zDzSXel3PFwx9=6Ybmqv",
//)
if err != nil { if err != nil {
log.Fatalf("初始化 ES 客户端失败: %s", err) log.Fatalf("初始化 ES 客户端失败: %s", err)
} }
esService := es.NewESSearchService(esClient) esService := es.NewESSearchService(esClient)
redisClient.AddClient("db4", "36.212.20.113:7963", "j8nZ4jra2E", 4)
// =================================================================== // ===================================================================
// 3. 初始化IP日志路径 // 3. 初始化IP日志路径
@ -295,7 +299,7 @@ func main() {
// 全字段搜索 // 全字段搜索
r.GET("/api/es/searchAll", esService.SearchBooksAllFieldsHandler) r.GET("/api/es/searchAll", esService.SearchBooksAllFieldsHandler)
// 根据条件查询 ES 图书信息 // 根据条件查询 ES 图书信息
r.GET("/api/es/getBookBaseInfoES", esService.SearchBookBaseInfoESHandler) //r.GET("/api/es/getBookBaseInfoES", esService.SearchBookBaseInfoESHandler)
// 新:核价软件用批量获取 // 新:核价软件用批量获取
r.GET("/api/es/batchGetBookBaseInfoES", esService.BatchGetBookBaseInfoESHandler) r.GET("/api/es/batchGetBookBaseInfoES", esService.BatchGetBookBaseInfoESHandler)
// 多条件高级搜索 // 多条件高级搜索