From b55e056316b6149588872377747c7a0cfef3241f Mon Sep 17 00:00:00 2001 From: sagit Date: Fri, 13 Feb 2026 02:41:38 +0000 Subject: [PATCH] fix(backend): implement keyword search in user list Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus --- go-backend/internal/http/handler/handler.go | 24 +++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/go-backend/internal/http/handler/handler.go b/go-backend/internal/http/handler/handler.go index 4bfec49..2416e7e 100644 --- a/go-backend/internal/http/handler/handler.go +++ b/go-backend/internal/http/handler/handler.go @@ -301,11 +301,35 @@ func (h *Handler) userList(w http.ResponseWriter, r *http.Request) { return } + var req struct { + Current int `json:"current"` + Size int `json:"size"` + Keyword string `json:"keyword"` + } + if err := decodeJSON(r.Body, &req); err != nil && err != io.EOF { + response.WriteJSON(w, response.ErrDefault("请求参数错误")) + return + } + users, err := h.repo.ListUsers() if err != nil { response.WriteJSON(w, response.Err(-2, err.Error())) return } + + keyword := strings.ToLower(strings.TrimSpace(req.Keyword)) + if keyword != "" { + filtered := make([]map[string]interface{}, 0, len(users)) + for _, item := range users { + username := strings.ToLower(strings.TrimSpace(fmt.Sprint(item["user"]))) + displayName := strings.ToLower(strings.TrimSpace(fmt.Sprint(item["name"]))) + if strings.Contains(username, keyword) || strings.Contains(displayName, keyword) { + filtered = append(filtered, item) + } + } + users = filtered + } + response.WriteJSON(w, response.OK(users)) }