From 5234ed88defc3a7052e5c360f15c322356b23439 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Fri, 12 Aug 2022 11:39:19 +0800 Subject: [PATCH] =?UTF-8?q?enhance(repo):=E6=94=B9=E8=BF=9B=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E6=96=B9=E6=B3=95=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- repository/abstract.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/repository/abstract.go b/repository/abstract.go index 50d137c..62760ba 100644 --- a/repository/abstract.go +++ b/repository/abstract.go @@ -1,5 +1,10 @@ package repository +import ( + "electricity_bill_calc/cache" + "time" +) + func _postProcessSingle[T interface{}](instance *T, has bool, err error) (*T, error) { if err != nil { return nil, err @@ -21,3 +26,21 @@ func _postProcessList[T interface{}](instance []*T, has bool, err error) ([]*T, return nil, nil } } + +func cacheData[T interface{}](instance T, category string, key ...string) error { + var keys = make([]string, 0) + keys = append(keys, category) + keys = append(keys, key...) + cacheKey := cache.CacheKey("cache", keys...) + if exists, _ := cache.Exists(cacheKey); exists { + cache.Delete(cacheKey) + } + return cache.Cache(cacheKey, &instance, 5*time.Minute) +} + +func retreiveData[T interface{}](category string, key ...string) (*T, error) { + var keys = make([]string, 0) + keys = append(keys, category) + keys = append(keys, key...) + return cache.Retreive[T](cache.CacheKey("cache", keys...)) +}