2025-03-21 11:05:42 +08:00

64 lines
1.3 KiB
Go

package cache
import (
"net/http"
"sort"
"strings"
"management/internal/pkg/redis"
"management/internal/router/manage/util"
"management/internal/tpl"
)
func List(w http.ResponseWriter, r *http.Request) {
tpl.HTML(w, r, "cache/list.tmpl", nil)
}
type Key struct {
Name string `json:"name"`
}
func PostList(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
keyword := strings.TrimSpace(r.PostFormValue("title"))
pageID := util.ConvertInt(r.PostFormValue("page"), 1)
pageSize := util.ConvertInt(r.PostFormValue("rows"), 10)
if len(keyword) == 0 {
keyword = "*"
} else {
keyword = keyword + "*"
}
result, count, err := redis.ListKeys(ctx, keyword, pageID, pageSize)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
sort.Sort(sort.StringSlice(result))
var res []Key
for _, key := range result {
res = append(res, Key{
Name: key,
})
}
data := tpl.ResponseList{
Code: 0,
Message: "ok",
Count: int64(count),
Data: res,
}
tpl.JSON(w, data)
}
func Refresh(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
name := strings.TrimSpace(r.PostFormValue("name"))
err := redis.Del(ctx, name)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
tpl.JSON(w, tpl.Response{Success: true, Message: "刷新成功"})
}