单条搜索
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()
|
val, err := db4Client.Get(ctx, isbn).Result()
|
||||||
if err == nil && val != "" {
|
if err == nil && val != "" {
|
||||||
log.Printf("[SearchBooksHandler] 从 Redis db1 查询到数据: %s", isbn)
|
log.Printf("[SearchBooksHandler] 从 Redis db1 查询到数据: %s", isbn)
|
||||||
var esBook ESBook
|
// 使用 RedisBookInfo 结构体解析
|
||||||
if err := json.Unmarshal([]byte(val), &esBook); err == nil {
|
var redisBook request.BookInfo
|
||||||
responseList := []ESBookResponse{esBook.ConvertToResponse()}
|
if err := json.Unmarshal([]byte(val), &redisBook); err == nil {
|
||||||
|
// 转换为 ESBook
|
||||||
|
esBook := ConvertRedisBookToESBook(&redisBook)
|
||||||
|
if esBook != nil {
|
||||||
|
responseData := esBook.ConvertToResponse()
|
||||||
c.JSON(200, gin.H{
|
c.JSON(200, gin.H{
|
||||||
"count": 1,
|
"data": responseData,
|
||||||
"data": responseList,
|
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
|
}
|
||||||
} else {
|
} 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()
|
val, err := db4Client.Get(ctx, isbn).Result()
|
||||||
if err == nil && val != "" {
|
if err == nil && val != "" {
|
||||||
log.Printf("[SearchBookByISBNHandler] 从 Redis db1 查询到数据: %s", isbn)
|
log.Printf("[SearchBookByISBNHandler] 从 Redis db1 查询到数据: %s", isbn)
|
||||||
var esBook ESBook
|
// 使用 RedisBookInfo 结构体解析
|
||||||
if err := json.Unmarshal([]byte(val), &esBook); err == nil {
|
var redisBook request.BookInfo
|
||||||
|
if err := json.Unmarshal([]byte(val), &redisBook); err == nil {
|
||||||
|
// 转换为 ESBook
|
||||||
|
esBook := ConvertRedisBookToESBook(&redisBook)
|
||||||
|
if esBook != nil {
|
||||||
responseData := esBook.ConvertToResponse()
|
responseData := esBook.ConvertToResponse()
|
||||||
c.JSON(200, gin.H{
|
c.JSON(200, gin.H{
|
||||||
"data": responseData,
|
"data": responseData,
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
log.Printf("[SearchBookByISBNHandler] Redis 数据解析失败: %v", err)
|
log.Printf("[SearchBookByISBNHandler] Redis 数据解析失败:%v", err)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log.Printf("[SearchBookByISBNHandler] Redis db1 中未找到 ISBN: %s", isbn)
|
log.Printf("[SearchBookByISBNHandler] Redis db1 中未找到 ISBN: %s", isbn)
|
||||||
@ -3866,4 +3875,79 @@ func (svc *ESSearchService) CheckBookExistsByISBNHandler(c *gin.Context) {
|
|||||||
"success": result.Exists,
|
"success": result.Exists,
|
||||||
"data": result,
|
"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