feat: 添加搜索收藏微服务
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
// Code scaffolded by goctl. Safe to edit.
|
||||
// goctl 1.10.1
|
||||
|
||||
package favorites
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/zeromicro/go-zero/rest/httpx"
|
||||
"juwan-backend/app/search/api/internal/logic/favorites"
|
||||
"juwan-backend/app/search/api/internal/svc"
|
||||
"juwan-backend/app/search/api/internal/types"
|
||||
)
|
||||
|
||||
// 添加收藏
|
||||
func AddFavoriteHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
var req types.FavoriteReq
|
||||
if err := httpx.Parse(r, &req); err != nil {
|
||||
httpx.ErrorCtx(r.Context(), w, err)
|
||||
return
|
||||
}
|
||||
|
||||
l := favorites.NewAddFavoriteLogic(r.Context(), svcCtx)
|
||||
resp, err := l.AddFavorite(&req)
|
||||
if err != nil {
|
||||
httpx.ErrorCtx(r.Context(), w, err)
|
||||
} else {
|
||||
httpx.OkJsonCtx(r.Context(), w, resp)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
// Code scaffolded by goctl. Safe to edit.
|
||||
// goctl 1.10.1
|
||||
|
||||
package favorites
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/zeromicro/go-zero/rest/httpx"
|
||||
"juwan-backend/app/search/api/internal/logic/favorites"
|
||||
"juwan-backend/app/search/api/internal/svc"
|
||||
"juwan-backend/app/search/api/internal/types"
|
||||
)
|
||||
|
||||
// 检查收藏状态
|
||||
func CheckFavoriteHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
var req types.FavoriteCheckReq
|
||||
if err := httpx.Parse(r, &req); err != nil {
|
||||
httpx.ErrorCtx(r.Context(), w, err)
|
||||
return
|
||||
}
|
||||
|
||||
l := favorites.NewCheckFavoriteLogic(r.Context(), svcCtx)
|
||||
resp, err := l.CheckFavorite(&req)
|
||||
if err != nil {
|
||||
httpx.ErrorCtx(r.Context(), w, err)
|
||||
} else {
|
||||
httpx.OkJsonCtx(r.Context(), w, resp)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
// Code scaffolded by goctl. Safe to edit.
|
||||
// goctl 1.10.1
|
||||
|
||||
package favorites
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/zeromicro/go-zero/rest/httpx"
|
||||
"juwan-backend/app/search/api/internal/logic/favorites"
|
||||
"juwan-backend/app/search/api/internal/svc"
|
||||
"juwan-backend/app/search/api/internal/types"
|
||||
)
|
||||
|
||||
// 获取收藏列表
|
||||
func ListFavoritesHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
var req types.PageReq
|
||||
if err := httpx.Parse(r, &req); err != nil {
|
||||
httpx.ErrorCtx(r.Context(), w, err)
|
||||
return
|
||||
}
|
||||
|
||||
l := favorites.NewListFavoritesLogic(r.Context(), svcCtx)
|
||||
resp, err := l.ListFavorites(&req)
|
||||
if err != nil {
|
||||
httpx.ErrorCtx(r.Context(), w, err)
|
||||
} else {
|
||||
httpx.OkJsonCtx(r.Context(), w, resp)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
// Code scaffolded by goctl. Safe to edit.
|
||||
// goctl 1.10.1
|
||||
|
||||
package favorites
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/zeromicro/go-zero/rest/httpx"
|
||||
"juwan-backend/app/search/api/internal/logic/favorites"
|
||||
"juwan-backend/app/search/api/internal/svc"
|
||||
"juwan-backend/app/search/api/internal/types"
|
||||
)
|
||||
|
||||
// 取消收藏
|
||||
func RemoveFavoriteHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
var req types.PathIDReq
|
||||
if err := httpx.Parse(r, &req); err != nil {
|
||||
httpx.ErrorCtx(r.Context(), w, err)
|
||||
return
|
||||
}
|
||||
|
||||
l := favorites.NewRemoveFavoriteLogic(r.Context(), svcCtx)
|
||||
resp, err := l.RemoveFavorite(&req)
|
||||
if err != nil {
|
||||
httpx.ErrorCtx(r.Context(), w, err)
|
||||
} else {
|
||||
httpx.OkJsonCtx(r.Context(), w, resp)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
// Code generated by goctl. DO NOT EDIT.
|
||||
// goctl 1.10.1
|
||||
|
||||
package handler
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
favorites "juwan-backend/app/search/api/internal/handler/favorites"
|
||||
search "juwan-backend/app/search/api/internal/handler/search"
|
||||
"juwan-backend/app/search/api/internal/svc"
|
||||
|
||||
"github.com/zeromicro/go-zero/rest"
|
||||
)
|
||||
|
||||
func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
|
||||
server.AddRoutes(
|
||||
[]rest.Route{
|
||||
{
|
||||
// 获取收藏列表
|
||||
Method: http.MethodGet,
|
||||
Path: "/favorites",
|
||||
Handler: favorites.ListFavoritesHandler(serverCtx),
|
||||
},
|
||||
{
|
||||
// 添加收藏
|
||||
Method: http.MethodPost,
|
||||
Path: "/favorites",
|
||||
Handler: favorites.AddFavoriteHandler(serverCtx),
|
||||
},
|
||||
{
|
||||
// 取消收藏
|
||||
Method: http.MethodDelete,
|
||||
Path: "/favorites/:id",
|
||||
Handler: favorites.RemoveFavoriteHandler(serverCtx),
|
||||
},
|
||||
{
|
||||
// 检查收藏状态
|
||||
Method: http.MethodGet,
|
||||
Path: "/users/:id/favorites/check",
|
||||
Handler: favorites.CheckFavoriteHandler(serverCtx),
|
||||
},
|
||||
},
|
||||
rest.WithPrefix("/api/v1"),
|
||||
)
|
||||
|
||||
server.AddRoutes(
|
||||
[]rest.Route{
|
||||
{
|
||||
// 首页推荐
|
||||
Method: http.MethodGet,
|
||||
Path: "/recommendations/home",
|
||||
Handler: search.RecommendationsHandler(serverCtx),
|
||||
},
|
||||
{
|
||||
// 统一搜索
|
||||
Method: http.MethodGet,
|
||||
Path: "/search",
|
||||
Handler: search.SearchHandler(serverCtx),
|
||||
},
|
||||
},
|
||||
rest.WithPrefix("/api/v1"),
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
// Code scaffolded by goctl. Safe to edit.
|
||||
// goctl 1.10.1
|
||||
|
||||
package search
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/zeromicro/go-zero/rest/httpx"
|
||||
"juwan-backend/app/search/api/internal/logic/search"
|
||||
"juwan-backend/app/search/api/internal/svc"
|
||||
"juwan-backend/app/search/api/internal/types"
|
||||
)
|
||||
|
||||
// 首页推荐
|
||||
func RecommendationsHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
var req types.PageReq
|
||||
if err := httpx.Parse(r, &req); err != nil {
|
||||
httpx.ErrorCtx(r.Context(), w, err)
|
||||
return
|
||||
}
|
||||
|
||||
l := search.NewRecommendationsLogic(r.Context(), svcCtx)
|
||||
resp, err := l.Recommendations(&req)
|
||||
if err != nil {
|
||||
httpx.ErrorCtx(r.Context(), w, err)
|
||||
} else {
|
||||
httpx.OkJsonCtx(r.Context(), w, resp)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
// Code scaffolded by goctl. Safe to edit.
|
||||
// goctl 1.10.1
|
||||
|
||||
package search
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/zeromicro/go-zero/rest/httpx"
|
||||
"juwan-backend/app/search/api/internal/logic/search"
|
||||
"juwan-backend/app/search/api/internal/svc"
|
||||
"juwan-backend/app/search/api/internal/types"
|
||||
)
|
||||
|
||||
// 统一搜索
|
||||
func SearchHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
var req types.SearchReq
|
||||
if err := httpx.Parse(r, &req); err != nil {
|
||||
httpx.ErrorCtx(r.Context(), w, err)
|
||||
return
|
||||
}
|
||||
|
||||
l := search.NewSearchLogic(r.Context(), svcCtx)
|
||||
resp, err := l.Search(&req)
|
||||
if err != nil {
|
||||
httpx.ErrorCtx(r.Context(), w, err)
|
||||
} else {
|
||||
httpx.OkJsonCtx(r.Context(), w, resp)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user