Skip to content

Commit b0d4f17

Browse files
committed
fix: 新增模糊查询教师搜索建议
1 parent db91538 commit b0d4f17

File tree

5 files changed

+53
-16
lines changed

5 files changed

+53
-16
lines changed

api/router/register.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,9 @@ func SetupRoutes() *gin.Engine {
4848

4949
// LikeApi
5050
likeGroup := router.Group("/api/like")
51-
likeGroup.POST("/:likeId", handler.ToggleLike) // 为评论点赞
51+
{
52+
likeGroup.POST("/:likeId", handler.ToggleLike) // 为评论点赞
53+
}
5254

5355
// CourseApi
5456
courseGroup := router.Group("/api/course")
@@ -60,9 +62,10 @@ func SetupRoutes() *gin.Engine {
6062
}
6163

6264
// TeacherApi
63-
//teacherGroup := router.Group("/api/teacher")
64-
//{
65-
//}
65+
teacherGroup := router.Group("/api/teacher")
66+
{
67+
teacherGroup.GET("/suggest", handler.GetTeacherSuggestions) // 获取教师搜索建议
68+
}
6669

6770
// ProposalApi
6871
proposalGroup := router.Group("/api/proposal")
@@ -74,5 +77,6 @@ func SetupRoutes() *gin.Engine {
7477
proposalGroup.POST("/:proposalId/delete", handler.DeleteProposal)
7578
proposalGroup.POST("/suggest", handler.GetProposalSuggestions)
7679
}
80+
7781
return router
7882
}

application/dto/teacher.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,13 @@ type TeacherVO struct {
4141
Title string `json:"title"`
4242
Department string `json:"department"`
4343
}
44+
45+
type GetTeacherSuggestionsReq struct {
46+
Keyword string `form:"keyword" binding:"required"`
47+
*PageParam
48+
}
49+
50+
type GetTeacherSuggestionsResp struct {
51+
*Resp
52+
Teachers []*TeacherVO `json:"teachers"`
53+
}

application/service/teacher.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ var _ ITeacherService = (*TeacherService)(nil)
3434

3535
type ITeacherService interface {
3636
CreateTeacher(ctx context.Context, req *dto.CreateTeacherReq) (*dto.CreateTeacherResp, error)
37+
GetTeacherSuggestions(ctx context.Context, req *dto.GetTeacherSuggestionsReq) (*dto.GetTeacherSuggestionsResp, error)
3738
}
3839

3940
type TeacherService struct {
@@ -92,3 +93,25 @@ func (s *TeacherService) CreateTeacher(ctx context.Context, req *dto.CreateTeach
9293

9394
return &dto.CreateTeacherResp{Resp: dto.Success(), TeacherVO: vo}, nil
9495
}
96+
97+
// GetTeacherSuggestions 获取教师建议列表
98+
func (s *TeacherService) GetTeacherSuggestions(ctx context.Context, req *dto.GetTeacherSuggestionsReq) (*dto.GetTeacherSuggestionsResp, error) {
99+
// 鉴权
100+
userId, ok := ctx.Value(consts.CtxUserID).(string)
101+
if !ok || userId == "" {
102+
return nil, errorx.New(errno.ErrUserNotLogin)
103+
}
104+
105+
// 获取教师建议列表
106+
dbs, err := s.TeacherRepo.GetSuggestionsByName(ctx, req.Keyword, req.PageParam)
107+
if err != nil {
108+
return nil, errorx.WrapByCode(err, errno.ErrTeacherGetSuggestionsFailed, errorx.KV("keyword", req.Keyword))
109+
}
110+
111+
vos := s.TeacherAssembler.ToTeacherVOArray(ctx, dbs)
112+
113+
return &dto.GetTeacherSuggestionsResp{
114+
Resp: dto.Success(),
115+
Teachers: vos,
116+
}, nil
117+
}

go.mod

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ require (
2121
github.com/KyleBanks/depth v1.2.1 // indirect
2222
github.com/beorn7/perks v1.0.1 // indirect
2323
github.com/bytedance/gopkg v0.1.3 // indirect
24-
github.com/bytedance/sonic v1.14.2 // indirect
25-
github.com/bytedance/sonic/loader v0.4.0 // indirect
24+
github.com/bytedance/sonic v1.15.0 // indirect
25+
github.com/bytedance/sonic/loader v0.5.0 // indirect
2626
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
2727
github.com/cespare/xxhash/v2 v2.3.0 // indirect
2828
github.com/cloudwego/base64x v0.1.6 // indirect
@@ -91,11 +91,11 @@ require (
9191
go.uber.org/automaxprocs v1.6.0 // indirect
9292
go.uber.org/mock v0.6.0 // indirect
9393
go.yaml.in/yaml/v3 v3.0.4 // indirect
94-
golang.org/x/arch v0.23.0 // indirect
94+
golang.org/x/arch v0.24.0 // indirect
9595
golang.org/x/crypto v0.46.0 // indirect
9696
golang.org/x/mod v0.31.0 // indirect
9797
golang.org/x/net v0.48.0 // indirect
98-
golang.org/x/sys v0.39.0 // indirect
98+
golang.org/x/sys v0.41.0 // indirect
9999
golang.org/x/text v0.32.0 // indirect
100100
golang.org/x/tools v0.40.0 // indirect
101101
google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 // indirect

go.sum

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA=
1212
github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0=
1313
github.com/bytedance/gopkg v0.1.3 h1:TPBSwH8RsouGCBcMBktLt1AymVo2TVsBVCY4b6TnZ/M=
1414
github.com/bytedance/gopkg v0.1.3/go.mod h1:576VvJ+eJgyCzdjS+c4+77QF3p7ubbtiKARP3TxducM=
15-
github.com/bytedance/sonic v1.14.2 h1:k1twIoe97C1DtYUo+fZQy865IuHia4PR5RPiuGPPIIE=
16-
github.com/bytedance/sonic v1.14.2/go.mod h1:T80iDELeHiHKSc0C9tubFygiuXoGzrkjKzX2quAx980=
17-
github.com/bytedance/sonic/loader v0.4.0 h1:olZ7lEqcxtZygCK9EKYKADnpQoYkRQxaeY2NYzevs+o=
18-
github.com/bytedance/sonic/loader v0.4.0/go.mod h1:AR4NYCk5DdzZizZ5djGqQ92eEhCCcdf5x77udYiSJRo=
15+
github.com/bytedance/sonic v1.15.0 h1:/PXeWFaR5ElNcVE84U0dOHjiMHQOwNIx3K4ymzh/uSE=
16+
github.com/bytedance/sonic v1.15.0/go.mod h1:tFkWrPz0/CUCLEF4ri4UkHekCIcdnkqXw9VduqpJh0k=
17+
github.com/bytedance/sonic/loader v0.5.0 h1:gXH3KVnatgY7loH5/TkeVyXPfESoqSBSBEiDd5VjlgE=
18+
github.com/bytedance/sonic/loader v0.5.0/go.mod h1:AR4NYCk5DdzZizZ5djGqQ92eEhCCcdf5x77udYiSJRo=
1919
github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
2020
github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
2121
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
@@ -224,8 +224,8 @@ go.uber.org/mock v0.6.0 h1:hyF9dfmbgIX5EfOdasqLsWD6xqpNZlXblLB/Dbnwv3Y=
224224
go.uber.org/mock v0.6.0/go.mod h1:KiVJ4BqZJaMj4svdfmHM0AUx4NJYO8ZNpPnZn1Z+BBU=
225225
go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=
226226
go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
227-
golang.org/x/arch v0.23.0 h1:lKF64A2jF6Zd8L0knGltUnegD62JMFBiCPBmQpToHhg=
228-
golang.org/x/arch v0.23.0/go.mod h1:dNHoOeKiyja7GTvF9NJS1l3Z2yntpQNzgrjh1cU103A=
227+
golang.org/x/arch v0.24.0 h1:qlJ3M9upxvFfwRM51tTg3Yl+8CP9vCC1E7vlFpgv99Y=
228+
golang.org/x/arch v0.24.0/go.mod h1:dNHoOeKiyja7GTvF9NJS1l3Z2yntpQNzgrjh1cU103A=
229229
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
230230
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
231231
golang.org/x/crypto v0.46.0 h1:cKRW/pmt1pKAfetfu+RCEvjvZkA9RimPbh7bhFjGVBU=
@@ -251,8 +251,8 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc
251251
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
252252
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
253253
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
254-
golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk=
255-
golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
254+
golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k=
255+
golang.org/x/sys v0.41.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
256256
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
257257
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
258258
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=

0 commit comments

Comments
 (0)