eab列表

pull/117/head
zhangchenhao 2025-05-21 11:41:52 +08:00
parent f64d2b2764
commit a9210cb3b6
1 changed files with 122 additions and 0 deletions

View File

@ -0,0 +1,122 @@
package access
import (
"ALLinSSL/backend/public"
"time"
)
func GetSqliteEAB() (*public.Sqlite, error) {
s, err := public.NewSqlite("data/data.db", "")
if err != nil {
return nil, err
}
s.TableName = "_eab"
return s, nil
}
func GetAllEAB(ca string) ([]map[string]any, error) {
var data []map[string]any
s, err := GetSqliteEAB()
if err != nil {
return data, err
}
defer s.Close()
if ca != "" {
data, err = s.Where("ca=?", []interface{}{ca}).Order("update_time", "desc").Select()
} else {
data, err = s.Order("update_time", "desc").Select()
}
if err != nil {
return data, err
}
return data, nil
}
func GetEABList(search string, p, limit int64) ([]map[string]any, int, error) {
var data []map[string]any
var count int64
s, err := GetSqliteEAB()
if err != nil {
return data, 0, err
}
defer s.Close()
var limits []int64
if p >= 0 && limit >= 0 {
limits = []int64{0, limit}
if p > 1 {
limits[0] = (p - 1) * limit
limits[1] = p * limit
}
}
if search != "" {
count, err = s.Where("name like ?", []interface{}{"%" + search + "%"}).Count()
data, err = s.Where("name like ?", []interface{}{"%" + search + "%"}).Order("update_time", "desc").Limit(limits).Select()
} else {
count, err = s.Count()
data, err = s.Order("update_time", "desc").Limit(limits).Select()
}
if err != nil {
return data, 0, err
}
return data, int(count), nil
}
func AddEAB(name, Kid, HmacEncoded, ca string) error {
s, err := GetSqliteEAB()
if err != nil {
return err
}
defer s.Close()
now := time.Now().Format("2006-01-02 15:04:05")
_, err = s.Insert(map[string]interface{}{
"name": name,
"Kid": Kid,
"HmacEncoded": HmacEncoded,
"ca": ca,
"update_time": now,
"create_time": now,
})
return err
}
func UpdEAB(id, name, Kid, HmacEncoded, ca string) error {
s, err := GetSqliteEAB()
if err != nil {
return err
}
defer s.Close()
now := time.Now().Format("2006-01-02 15:04:05")
_, err = s.Where("id=?", []interface{}{id}).Update(map[string]interface{}{
"name": name,
"Kid": Kid,
"HmacEncoded": HmacEncoded,
"ca": ca,
"update_time": now,
})
return err
}
func DelEAB(id string) error {
s, err := GetSqliteEAB()
if err != nil {
return err
}
defer s.Close()
_, err = s.Where("id=?", []interface{}{id}).Delete()
return err
}
func GetEAB(id string) (map[string]interface{}, error) {
s, err := GetSqliteEAB()
if err != nil {
return nil, err
}
s.Close()
data, err := s.Where("id = ?", []interface{}{id}).Find()
if err != nil {
return nil, err
}
return data, nil
}