forked from free-lancers/electricity_bill_calc_service
enhance(user):增加专门用于用户登录的用户缓存设计。
This commit is contained in:
@@ -21,7 +21,7 @@ type _UserService struct{}
|
||||
var UserService _UserService
|
||||
|
||||
func (u _UserService) ProcessEnterpriseUserLogin(username, password string) (*model.Session, error) {
|
||||
user, err := u.findUserByUsername(username)
|
||||
user, err := u.findUserWithCredentialsByUsername(username)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -63,7 +63,7 @@ func (u _UserService) ProcessEnterpriseUserLogin(username, password string) (*mo
|
||||
}
|
||||
|
||||
func (u _UserService) ProcessManagementUserLogin(username, password string) (*model.Session, error) {
|
||||
user, err := u.findUserByUsername(username)
|
||||
user, err := u.findUserWithCredentialsByUsername(username)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -266,6 +266,18 @@ func (_UserService) SearchLimitUsers(keyword string, limit int) ([]model.JoinedU
|
||||
return users, nil
|
||||
}
|
||||
|
||||
func (_UserService) findUserWithCredentialsByUsername(username string) (*model.UserWithCredentials, error) {
|
||||
if cachedUser, _ := cache.RetreiveSearch[model.UserWithCredentials]("user_with_credentials", username); cachedUser != nil {
|
||||
return cachedUser, nil
|
||||
}
|
||||
user := new(model.UserWithCredentials)
|
||||
has, err := global.DBConn.Where(builder.Eq{"username": username}).NoAutoCondition().Get(user)
|
||||
if has {
|
||||
cache.CacheSearch(*user, []string{"user"}, "user_with_credentials", username)
|
||||
}
|
||||
return _postProcessSingle(user, has, err)
|
||||
}
|
||||
|
||||
func (_UserService) findUserByUsername(username string) (*model.User, error) {
|
||||
if cachedUser, _ := cache.RetreiveSearch[model.User]("user", username); cachedUser != nil {
|
||||
return cachedUser, nil
|
||||
|
Reference in New Issue
Block a user