64 lines
1.3 KiB
Go
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: "刷新成功"})
|
|
}
|