🎨 update code structure

This commit is contained in:
landaiqing
2024-09-29 17:08:18 +08:00
parent 87f1ff6961
commit 4ec1ea40bb
23 changed files with 672 additions and 761 deletions

View File

@@ -1,14 +1,36 @@
package impl
import (
"encoding/json"
"schisandra-cloud-album/common/constant"
"schisandra-cloud-album/common/redis"
"schisandra-cloud-album/dao/impl"
"schisandra-cloud-album/global"
"schisandra-cloud-album/model"
"schisandra-cloud-album/utils"
"time"
)
var userDao = impl.UserDaoImpl{}
type UserServiceImpl struct{}
// ResponseData 返回数据
type ResponseData struct {
AccessToken string `json:"access_token"`
RefreshToken string `json:"refresh_token"`
ExpiresAt int64 `json:"expires_at"`
UID *string `json:"uid"`
}
func (res ResponseData) MarshalBinary() ([]byte, error) {
return json.Marshal(res)
}
func (res ResponseData) UnmarshalBinary(data []byte) error {
return json.Unmarshal(data, &res)
}
// GetUserListService 返回用户列表
func (UserServiceImpl) GetUserListService() []*model.ScaAuthUser {
return userDao.GetUserList()
@@ -52,3 +74,32 @@ func (UserServiceImpl) AddUserService(user model.ScaAuthUser) (*model.ScaAuthUse
func (UserServiceImpl) UpdateUserService(phone, encrypt string) error {
return userDao.UpdateUser(phone, encrypt)
}
// RefreshTokenService 刷新用户token
func (UserServiceImpl) RefreshTokenService(refreshToken string) (*ResponseData, bool) {
parseRefreshToken, isUpd, err := utils.ParseRefreshToken(refreshToken)
if err != nil || !isUpd {
global.LOG.Errorln(err)
return nil, false
}
accessTokenString, err := utils.GenerateAccessToken(utils.AccessJWTPayload{UserID: parseRefreshToken.UserID})
if err != nil {
return nil, false
}
tokenKey := constant.UserLoginTokenRedisKey + *parseRefreshToken.UserID
token, err := redis.Get(tokenKey).Result()
if err != nil || token == "" {
global.LOG.Errorln(err)
return nil, false
}
data := ResponseData{
AccessToken: accessTokenString,
RefreshToken: refreshToken,
UID: parseRefreshToken.UserID,
}
if err = redis.Set(tokenKey, data, time.Hour*24*7).Err(); err != nil {
global.LOG.Errorln(err)
return nil, false
}
return &data, true
}