feat(user):基本完成用户重设密码,待测。

This commit is contained in:
徐涛
2022-08-12 13:20:23 +08:00
parent 8dd9654d82
commit cd18170ee6
5 changed files with 174 additions and 23 deletions

View File

@@ -1,10 +1,5 @@
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
@@ -26,21 +21,3 @@ 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...))
}

View File

@@ -1,6 +1,7 @@
package repository
import (
"electricity_bill_calc/cache"
"electricity_bill_calc/global"
"electricity_bill_calc/model"
)
@@ -10,13 +11,40 @@ type _UserRepository struct{}
var UserRepo _UserRepository
func (_UserRepository) FindUserByUsername(username string) (*model.User, error) {
cachedUser, _ := cache.RetreiveData[model.User]("user", username)
if cachedUser != nil {
return cachedUser, nil
}
user := new(model.User)
has, err := global.DBConn.Where("username=?", username).Get(user)
if has {
cache.CacheData(user, "user", username)
}
return _postProcessSingle(user, has, err)
}
func (_UserRepository) RetreiveUserDetail(uid string) (*model.UserDetail, error) {
cachedUser, _ := cache.RetreiveData[model.UserDetail]("user", uid)
if cachedUser != nil {
return cachedUser, nil
}
user := new(model.UserDetail)
has, err := global.DBConn.Where("id=?", uid).Get(user)
if has {
cache.CacheData(user, "user_detail", uid)
}
return _postProcessSingle(user, has, err)
}
func (_UserRepository) FindUserByID(uid string) (*model.User, error) {
cachedUser, _ := cache.RetreiveData[model.User]("user", uid)
if cachedUser != nil {
return cachedUser, nil
}
user := new(model.User)
has, err := global.DBConn.ID(uid).Get(user)
if has {
cache.CacheData(user, "user", uid)
}
return _postProcessSingle(user, has, err)
}