单条搜索
This commit is contained in:
parent
6dd5815666
commit
551a234de1
102
es/es_search.go
102
es/es_search.go
@ -2059,16 +2059,20 @@ func (svc *ESSearchService) SearchBooksHandler(c *gin.Context) {
|
||||
val, err := db4Client.Get(ctx, isbn).Result()
|
||||
if err == nil && val != "" {
|
||||
log.Printf("[SearchBooksHandler] 从 Redis db1 查询到数据: %s", isbn)
|
||||
var esBook ESBook
|
||||
if err := json.Unmarshal([]byte(val), &esBook); err == nil {
|
||||
responseList := []ESBookResponse{esBook.ConvertToResponse()}
|
||||
// 使用 RedisBookInfo 结构体解析
|
||||
var redisBook request.BookInfo
|
||||
if err := json.Unmarshal([]byte(val), &redisBook); err == nil {
|
||||
// 转换为 ESBook
|
||||
esBook := ConvertRedisBookToESBook(&redisBook)
|
||||
if esBook != nil {
|
||||
responseData := esBook.ConvertToResponse()
|
||||
c.JSON(200, gin.H{
|
||||
"count": 1,
|
||||
"data": responseList,
|
||||
"data": responseData,
|
||||
})
|
||||
return
|
||||
}
|
||||
} else {
|
||||
log.Printf("[SearchBooksHandler] Redis 数据解析失败: %v", err)
|
||||
log.Printf("[SearchBookByISBNHandler] Redis 数据解析失败:%v", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2111,15 +2115,20 @@ func (svc *ESSearchService) SearchBookByISBNHandler(c *gin.Context) {
|
||||
val, err := db4Client.Get(ctx, isbn).Result()
|
||||
if err == nil && val != "" {
|
||||
log.Printf("[SearchBookByISBNHandler] 从 Redis db1 查询到数据: %s", isbn)
|
||||
var esBook ESBook
|
||||
if err := json.Unmarshal([]byte(val), &esBook); err == nil {
|
||||
// 使用 RedisBookInfo 结构体解析
|
||||
var redisBook request.BookInfo
|
||||
if err := json.Unmarshal([]byte(val), &redisBook); err == nil {
|
||||
// 转换为 ESBook
|
||||
esBook := ConvertRedisBookToESBook(&redisBook)
|
||||
if esBook != nil {
|
||||
responseData := esBook.ConvertToResponse()
|
||||
c.JSON(200, gin.H{
|
||||
"data": responseData,
|
||||
})
|
||||
return
|
||||
}
|
||||
} else {
|
||||
log.Printf("[SearchBookByISBNHandler] Redis 数据解析失败: %v", err)
|
||||
log.Printf("[SearchBookByISBNHandler] Redis 数据解析失败:%v", err)
|
||||
}
|
||||
} else {
|
||||
log.Printf("[SearchBookByISBNHandler] Redis db1 中未找到 ISBN: %s", isbn)
|
||||
@ -3866,4 +3875,79 @@ func (svc *ESSearchService) CheckBookExistsByISBNHandler(c *gin.Context) {
|
||||
"success": result.Exists,
|
||||
"data": result,
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
// ConvertRedisBookToESBook 将 Redis 中的 BookInfo 转换为 ESBook
|
||||
func ConvertRedisBookToESBook(redisBook *request.BookInfo) *ESBook {
|
||||
if redisBook == nil || redisBook.Isbn == "" {
|
||||
return nil
|
||||
}
|
||||
|
||||
// 构建图片对象
|
||||
carouselUrls := []string{}
|
||||
if len(redisBook.ImageObject.CarouselUrlArray) > 0 {
|
||||
carouselUrls = redisBook.ImageObject.CarouselUrlArray
|
||||
}
|
||||
|
||||
liveShootingUrls := []string{}
|
||||
if len(redisBook.ImageObject.DetailUrlObject.LiveShootingUrl) > 0 {
|
||||
liveShootingUrls = redisBook.ImageObject.DetailUrlObject.LiveShootingUrl
|
||||
}
|
||||
|
||||
// 提取第一张轮播图作为 book_pic
|
||||
bookPicPath := ""
|
||||
if len(carouselUrls) > 0 {
|
||||
bookPicPath = carouselUrls[0]
|
||||
}
|
||||
|
||||
// 提取第一张实拍图作为 book_pic_s
|
||||
bookPicSResponse := ""
|
||||
if len(liveShootingUrls) > 0 {
|
||||
bookPicSResponse = liveShootingUrls[0]
|
||||
}
|
||||
|
||||
return &ESBook{
|
||||
ISBN: redisBook.Isbn,
|
||||
BookName: FlexibleString{Value: redisBook.BookName},
|
||||
Author: redisBook.Author,
|
||||
Publisher: redisBook.Publishing,
|
||||
PublicationTime: redisBook.PublicationDate,
|
||||
BindingLayout: redisBook.Binding,
|
||||
PageCount: NumberOrString(strconv.FormatInt(redisBook.PagesCount, 10)),
|
||||
WordCount: NumberOrString(strconv.FormatInt(redisBook.WordsCount, 10)),
|
||||
BookFormat: NumberOrString(strconv.FormatInt(redisBook.Format, 10)),
|
||||
FixPrice: Float64OrString(redisBook.Price),
|
||||
BookPic: BookPicObj{
|
||||
LocalPath: "",
|
||||
PddPath: bookPicPath,
|
||||
},
|
||||
BookPicS: BookPicSObj{
|
||||
LocalPath: "",
|
||||
PddResponse: bookPicSResponse,
|
||||
},
|
||||
BookDefPic: BookDefPicObj{
|
||||
LocalPath: "",
|
||||
PddPath: redisBook.ImageObject.DefaultImageUrl,
|
||||
},
|
||||
BookPicB: redisBook.ImageObject.WhiteBackgroundUrl,
|
||||
CatId: redisBook.CatIdObject,
|
||||
// 销量等字段默认为 0
|
||||
DaySale7: 0,
|
||||
DaySale15: 0,
|
||||
DaySale30: 0,
|
||||
DaySale60: 0,
|
||||
DaySale90: 0,
|
||||
DaySale180: 0,
|
||||
DaySale365: 0,
|
||||
ThisYearSale: 0,
|
||||
LastYearSale: 0,
|
||||
TotalSale: 0,
|
||||
BuyCounts: 0,
|
||||
SellCounts: 0,
|
||||
IsSuit: 0,
|
||||
IsIllegal: 0,
|
||||
IsReturn: 0,
|
||||
IsFilter: "000000",
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user