注释旧批量
This commit is contained in:
parent
ad3d48eeba
commit
82daef6bb8
@ -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
20
main.go
@ -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)
|
||||||
// 多条件高级搜索
|
// 多条件高级搜索
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user