From a9210cb3b622075b6f12dee9b314fbcc047c00e0 Mon Sep 17 00:00:00 2001 From: zhangchenhao Date: Wed, 21 May 2025 11:41:52 +0800 Subject: [PATCH] =?UTF-8?q?eab=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/internal/access/eab.go | 122 +++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 backend/internal/access/eab.go diff --git a/backend/internal/access/eab.go b/backend/internal/access/eab.go new file mode 100644 index 0000000..b721854 --- /dev/null +++ b/backend/internal/access/eab.go @@ -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 +}