🚧 developing...
This commit is contained in:
@@ -0,0 +1,134 @@
|
||||
package storage
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"github.com/redis/go-redis/v9"
|
||||
"schisandra-album-cloud-microservices/app/auth/model/mysql/model"
|
||||
"schisandra-album-cloud-microservices/common/constant"
|
||||
"schisandra-album-cloud-microservices/common/encrypt"
|
||||
"schisandra-album-cloud-microservices/common/storage/config"
|
||||
|
||||
"schisandra-album-cloud-microservices/app/auth/api/internal/svc"
|
||||
"schisandra-album-cloud-microservices/app/auth/api/internal/types"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
)
|
||||
|
||||
type GetImageBedUploadListLogic struct {
|
||||
logx.Logger
|
||||
ctx context.Context
|
||||
svcCtx *svc.ServiceContext
|
||||
}
|
||||
|
||||
func NewGetImageBedUploadListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetImageBedUploadListLogic {
|
||||
return &GetImageBedUploadListLogic{
|
||||
Logger: logx.WithContext(ctx),
|
||||
ctx: ctx,
|
||||
svcCtx: svcCtx,
|
||||
}
|
||||
}
|
||||
|
||||
func (l *GetImageBedUploadListLogic) GetImageBedUploadList(req *types.ImageBedUploadListRequest) (resp *types.ImageBedUploadListResponse, err error) {
|
||||
uid, ok := l.ctx.Value("user_id").(string)
|
||||
if !ok {
|
||||
return nil, errors.New("user_id not found")
|
||||
}
|
||||
storageImgBed := l.svcCtx.DB.ScaStorageImgBed
|
||||
imgBeds, err := storageImgBed.Where(
|
||||
storageImgBed.UserID.Eq(uid),
|
||||
storageImgBed.Provider.Eq(req.Provider),
|
||||
storageImgBed.Bucket.Eq(req.Bucket)).Find()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
cacheKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider
|
||||
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheKey, uid, req.Provider)
|
||||
if err != nil {
|
||||
return nil, errors.New("get oss config failed")
|
||||
}
|
||||
//service, err := l.svcCtx.StorageManager.GetStorage(uid, ossConfig)
|
||||
//if err != nil {
|
||||
// return nil, errors.New("get storage failed")
|
||||
//}
|
||||
var records []types.ImageBedUploadMeta
|
||||
for _, imgBed := range imgBeds {
|
||||
|
||||
records = append(records, types.ImageBedUploadMeta{
|
||||
ID: imgBed.ID,
|
||||
FileName: imgBed.FileName,
|
||||
FileSize: imgBed.FileSize,
|
||||
FileType: imgBed.FileType,
|
||||
Path: ossConfig.Endpoint + "/" + ossConfig.BucketName + "/" + imgBed.Path,
|
||||
Thumbnail: ossConfig.Endpoint + "/" + ossConfig.BucketName + "/" + imgBed.ThumbPath,
|
||||
CreatedAt: imgBed.CreatedAt.Format("2006-01-02 15:04:05"),
|
||||
Width: int64(imgBed.Width),
|
||||
Height: int64(imgBed.Height),
|
||||
})
|
||||
}
|
||||
return &types.ImageBedUploadListResponse{
|
||||
Records: records,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// 提取解密操作为函数
|
||||
func (l *GetImageBedUploadListLogic) decryptConfig(dbConfig *model.ScaStorageConfig) (*config.StorageConfig, error) {
|
||||
accessKey, err := encrypt.Decrypt(dbConfig.AccessKey, l.svcCtx.Config.Encrypt.Key)
|
||||
if err != nil {
|
||||
return nil, errors.New("decrypt access key failed")
|
||||
}
|
||||
secretKey, err := encrypt.Decrypt(dbConfig.SecretKey, l.svcCtx.Config.Encrypt.Key)
|
||||
if err != nil {
|
||||
return nil, errors.New("decrypt secret key failed")
|
||||
}
|
||||
return &config.StorageConfig{
|
||||
Provider: dbConfig.Provider,
|
||||
Endpoint: dbConfig.Endpoint,
|
||||
AccessKey: accessKey,
|
||||
SecretKey: secretKey,
|
||||
BucketName: dbConfig.Bucket,
|
||||
Region: dbConfig.Region,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// 从缓存或数据库中获取 OSS 配置
|
||||
func (l *GetImageBedUploadListLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string) (*config.StorageConfig, error) {
|
||||
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
||||
if err != nil && !errors.Is(err, redis.Nil) {
|
||||
return nil, errors.New("get oss config failed")
|
||||
}
|
||||
|
||||
var ossConfig *config.StorageConfig
|
||||
if result != "" {
|
||||
var redisOssConfig model.ScaStorageConfig
|
||||
if err = json.Unmarshal([]byte(result), &redisOssConfig); err != nil {
|
||||
return nil, errors.New("unmarshal oss config failed")
|
||||
}
|
||||
return l.decryptConfig(&redisOssConfig)
|
||||
}
|
||||
|
||||
// 缓存未命中,从数据库中加载
|
||||
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
||||
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider)).First()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// 缓存数据库配置
|
||||
ossConfig, err = l.decryptConfig(dbOssConfig)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
marshalData, err := json.Marshal(dbOssConfig)
|
||||
if err != nil {
|
||||
return nil, errors.New("marshal oss config failed")
|
||||
}
|
||||
err = l.svcCtx.RedisClient.Set(l.ctx, cacheKey, marshalData, 0).Err()
|
||||
if err != nil {
|
||||
return nil, errors.New("set oss config failed")
|
||||
}
|
||||
|
||||
return ossConfig, nil
|
||||
}
|
177
app/auth/api/internal/logic/storage/image_bed_upload_logic.go
Normal file
177
app/auth/api/internal/logic/storage/image_bed_upload_logic.go
Normal file
@@ -0,0 +1,177 @@
|
||||
package storage
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/ccpwcn/kgo"
|
||||
"github.com/redis/go-redis/v9"
|
||||
"net/http"
|
||||
"path"
|
||||
"path/filepath"
|
||||
"schisandra-album-cloud-microservices/app/auth/model/mysql/model"
|
||||
"schisandra-album-cloud-microservices/common/constant"
|
||||
"schisandra-album-cloud-microservices/common/encrypt"
|
||||
"schisandra-album-cloud-microservices/common/storage/config"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"schisandra-album-cloud-microservices/app/auth/api/internal/svc"
|
||||
"schisandra-album-cloud-microservices/app/auth/api/internal/types"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
)
|
||||
|
||||
type ImageBedUploadLogic struct {
|
||||
logx.Logger
|
||||
ctx context.Context
|
||||
svcCtx *svc.ServiceContext
|
||||
}
|
||||
|
||||
func NewImageBedUploadLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ImageBedUploadLogic {
|
||||
return &ImageBedUploadLogic{
|
||||
Logger: logx.WithContext(ctx),
|
||||
ctx: ctx,
|
||||
svcCtx: svcCtx,
|
||||
}
|
||||
}
|
||||
|
||||
func (l *ImageBedUploadLogic) ImageBedUpload(r *http.Request) (resp *types.ImageBedUploadResponse, err error) {
|
||||
uid, ok := l.ctx.Value("user_id").(string)
|
||||
if !ok {
|
||||
return nil, errors.New("user_id not found")
|
||||
}
|
||||
formValue := r.PostFormValue("data")
|
||||
var result types.ImageBedMeta
|
||||
if err := json.Unmarshal([]byte(formValue), &result); err != nil {
|
||||
return nil, errors.New("invalid result")
|
||||
}
|
||||
file, header, err := r.FormFile("file")
|
||||
if err != nil {
|
||||
return nil, errors.New("file not found")
|
||||
}
|
||||
defer file.Close()
|
||||
// 解析缩略图
|
||||
thumbFile, _, err := r.FormFile("thumbnail")
|
||||
if err != nil {
|
||||
return nil, errors.New("thumbnail not found")
|
||||
}
|
||||
defer thumbFile.Close()
|
||||
|
||||
// 上传文件到OSS
|
||||
|
||||
cacheKey := constant.UserOssConfigPrefix + uid + ":" + result.Provider
|
||||
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheKey, uid, result.Provider)
|
||||
if err != nil {
|
||||
return nil, errors.New("get oss config failed")
|
||||
}
|
||||
service, err := l.svcCtx.StorageManager.GetStorage(uid, ossConfig)
|
||||
if err != nil {
|
||||
return nil, errors.New("get storage failed")
|
||||
}
|
||||
filePath := path.Join(
|
||||
constant.ImageBedSpace,
|
||||
constant.ImageSpace,
|
||||
uid,
|
||||
time.Now().Format("2006/01"), // 按年/月划分目录
|
||||
fmt.Sprintf("%s_%s%s", strings.TrimSuffix(header.Filename, filepath.Ext(header.Filename)), kgo.SimpleUuid(), filepath.Ext(header.Filename)),
|
||||
)
|
||||
_, err = service.UploadFileSimple(l.ctx, ossConfig.BucketName, filePath, file, map[string]string{
|
||||
"Content-Type": header.Header.Get("Content-Type")})
|
||||
// 上传缩略图到OSS
|
||||
if err != nil {
|
||||
return nil, errors.New("upload file failed")
|
||||
}
|
||||
thumbFilePath := path.Join(
|
||||
constant.ImageBedSpace,
|
||||
constant.ThumbnailSpace,
|
||||
uid,
|
||||
time.Now().Format("2006/01"), // 按年/月划分目录
|
||||
fmt.Sprintf("%s_%s%s", strings.TrimSuffix(header.Filename, filepath.Ext(header.Filename)), kgo.SimpleUuid(), filepath.Ext(header.Filename)),
|
||||
)
|
||||
_, err = service.UploadFileSimple(l.ctx, ossConfig.BucketName, thumbFilePath, thumbFile, map[string]string{
|
||||
"Content-Type": header.Header.Get("Content-Type")})
|
||||
if err != nil {
|
||||
return nil, errors.New("upload file failed")
|
||||
}
|
||||
|
||||
imgBed := model.ScaStorageImgBed{
|
||||
UserID: uid,
|
||||
Provider: result.Provider,
|
||||
Bucket: ossConfig.BucketName,
|
||||
Path: filePath,
|
||||
ThumbPath: thumbFilePath,
|
||||
FileSize: header.Size,
|
||||
FileType: header.Header.Get("Content-Type"),
|
||||
FileName: header.Filename,
|
||||
Width: float64(result.Width),
|
||||
Height: float64(result.Height),
|
||||
}
|
||||
err = l.svcCtx.DB.ScaStorageImgBed.Create(&imgBed)
|
||||
if err != nil {
|
||||
return nil, errors.New("create image bed failed")
|
||||
}
|
||||
|
||||
return &types.ImageBedUploadResponse{ID: imgBed.ID}, nil
|
||||
}
|
||||
|
||||
// 提取解密操作为函数
|
||||
func (l *ImageBedUploadLogic) decryptConfig(dbConfig *model.ScaStorageConfig) (*config.StorageConfig, error) {
|
||||
accessKey, err := encrypt.Decrypt(dbConfig.AccessKey, l.svcCtx.Config.Encrypt.Key)
|
||||
if err != nil {
|
||||
return nil, errors.New("decrypt access key failed")
|
||||
}
|
||||
secretKey, err := encrypt.Decrypt(dbConfig.SecretKey, l.svcCtx.Config.Encrypt.Key)
|
||||
if err != nil {
|
||||
return nil, errors.New("decrypt secret key failed")
|
||||
}
|
||||
return &config.StorageConfig{
|
||||
Provider: dbConfig.Provider,
|
||||
Endpoint: dbConfig.Endpoint,
|
||||
AccessKey: accessKey,
|
||||
SecretKey: secretKey,
|
||||
BucketName: dbConfig.Bucket,
|
||||
Region: dbConfig.Region,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// 从缓存或数据库中获取 OSS 配置
|
||||
func (l *ImageBedUploadLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string) (*config.StorageConfig, error) {
|
||||
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
||||
if err != nil && !errors.Is(err, redis.Nil) {
|
||||
return nil, errors.New("get oss config failed")
|
||||
}
|
||||
|
||||
var ossConfig *config.StorageConfig
|
||||
if result != "" {
|
||||
var redisOssConfig model.ScaStorageConfig
|
||||
if err = json.Unmarshal([]byte(result), &redisOssConfig); err != nil {
|
||||
return nil, errors.New("unmarshal oss config failed")
|
||||
}
|
||||
return l.decryptConfig(&redisOssConfig)
|
||||
}
|
||||
|
||||
// 缓存未命中,从数据库中加载
|
||||
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
||||
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider)).First()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// 缓存数据库配置
|
||||
ossConfig, err = l.decryptConfig(dbOssConfig)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
marshalData, err := json.Marshal(dbOssConfig)
|
||||
if err != nil {
|
||||
return nil, errors.New("marshal oss config failed")
|
||||
}
|
||||
err = l.svcCtx.RedisClient.Set(l.ctx, cacheKey, marshalData, 0).Err()
|
||||
if err != nil {
|
||||
return nil, errors.New("set oss config failed")
|
||||
}
|
||||
|
||||
return ossConfig, nil
|
||||
}
|
48
app/auth/api/internal/logic/storage/recover_image_logic.go
Normal file
48
app/auth/api/internal/logic/storage/recover_image_logic.go
Normal file
@@ -0,0 +1,48 @@
|
||||
package storage
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
|
||||
"schisandra-album-cloud-microservices/app/auth/api/internal/svc"
|
||||
"schisandra-album-cloud-microservices/app/auth/api/internal/types"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
)
|
||||
|
||||
type RecoverImageLogic struct {
|
||||
logx.Logger
|
||||
ctx context.Context
|
||||
svcCtx *svc.ServiceContext
|
||||
}
|
||||
|
||||
func NewRecoverImageLogic(ctx context.Context, svcCtx *svc.ServiceContext) *RecoverImageLogic {
|
||||
return &RecoverImageLogic{
|
||||
Logger: logx.WithContext(ctx),
|
||||
ctx: ctx,
|
||||
svcCtx: svcCtx,
|
||||
}
|
||||
}
|
||||
|
||||
func (l *RecoverImageLogic) RecoverImage(req *types.RecoverImageRequest) (resp string, err error) {
|
||||
uid, ok := l.ctx.Value("user_id").(string)
|
||||
if !ok {
|
||||
return "", errors.New("user_id not found")
|
||||
}
|
||||
storageInfo := l.svcCtx.DB.ScaStorageInfo
|
||||
|
||||
info, err := storageInfo.Where(
|
||||
storageInfo.UserID.Eq(uid),
|
||||
storageInfo.ID.Eq(req.ID),
|
||||
storageInfo.Provider.Eq(req.Provider),
|
||||
storageInfo.Bucket.Eq(req.Bucket),
|
||||
).Update(storageInfo.DeletedAt, nil)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
if info.RowsAffected == 0 {
|
||||
return "", errors.New("image not found")
|
||||
}
|
||||
|
||||
return "success", nil
|
||||
}
|
@@ -0,0 +1,36 @@
|
||||
package system
|
||||
|
||||
import (
|
||||
"context"
|
||||
"schisandra-album-cloud-microservices/app/auth/api/internal/svc"
|
||||
"schisandra-album-cloud-microservices/app/auth/api/internal/types"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
)
|
||||
|
||||
type GetAllCommentListLogic struct {
|
||||
logx.Logger
|
||||
ctx context.Context
|
||||
svcCtx *svc.ServiceContext
|
||||
}
|
||||
|
||||
func NewGetAllCommentListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetAllCommentListLogic {
|
||||
return &GetAllCommentListLogic{
|
||||
Logger: logx.WithContext(ctx),
|
||||
ctx: ctx,
|
||||
svcCtx: svcCtx,
|
||||
}
|
||||
}
|
||||
|
||||
func (l *GetAllCommentListLogic) GetAllCommentList() (resp *types.AllCommentListResponse, err error) {
|
||||
commentReply := l.svcCtx.DB.ScaCommentReply
|
||||
var records []types.CommentReplyMeta
|
||||
err = commentReply.Scan(&records)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &types.AllCommentListResponse{
|
||||
Records: records,
|
||||
}, nil
|
||||
}
|
@@ -0,0 +1,33 @@
|
||||
package system
|
||||
|
||||
import (
|
||||
"context"
|
||||
"schisandra-album-cloud-microservices/app/auth/api/internal/svc"
|
||||
"schisandra-album-cloud-microservices/app/auth/api/internal/types"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
)
|
||||
|
||||
type GetAllRoleListLogic struct {
|
||||
logx.Logger
|
||||
ctx context.Context
|
||||
svcCtx *svc.ServiceContext
|
||||
}
|
||||
|
||||
func NewGetAllRoleListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetAllRoleListLogic {
|
||||
return &GetAllRoleListLogic{
|
||||
Logger: logx.WithContext(ctx),
|
||||
ctx: ctx,
|
||||
svcCtx: svcCtx,
|
||||
}
|
||||
}
|
||||
|
||||
func (l *GetAllRoleListLogic) GetAllRoleList() (resp *types.RoleListResponse, err error) {
|
||||
authRole := l.svcCtx.DB.ScaAuthRole
|
||||
var roles []types.RoleMeta
|
||||
err = authRole.Scan(&roles)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &types.RoleListResponse{Records: roles}, nil
|
||||
}
|
@@ -0,0 +1,30 @@
|
||||
package system
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"schisandra-album-cloud-microservices/app/auth/api/internal/svc"
|
||||
"schisandra-album-cloud-microservices/app/auth/api/internal/types"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
)
|
||||
|
||||
type GetAllStorageListLogic struct {
|
||||
logx.Logger
|
||||
ctx context.Context
|
||||
svcCtx *svc.ServiceContext
|
||||
}
|
||||
|
||||
func NewGetAllStorageListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetAllStorageListLogic {
|
||||
return &GetAllStorageListLogic{
|
||||
Logger: logx.WithContext(ctx),
|
||||
ctx: ctx,
|
||||
svcCtx: svcCtx,
|
||||
}
|
||||
}
|
||||
|
||||
func (l *GetAllStorageListLogic) GetAllStorageList() (resp *types.AllStorageListResponse, err error) {
|
||||
// todo: add your logic here and delete this line
|
||||
|
||||
return
|
||||
}
|
@@ -0,0 +1,36 @@
|
||||
package system
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"schisandra-album-cloud-microservices/app/auth/api/internal/svc"
|
||||
"schisandra-album-cloud-microservices/app/auth/api/internal/types"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
)
|
||||
|
||||
type GetPermissionRuleListLogic struct {
|
||||
logx.Logger
|
||||
ctx context.Context
|
||||
svcCtx *svc.ServiceContext
|
||||
}
|
||||
|
||||
func NewGetPermissionRuleListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetPermissionRuleListLogic {
|
||||
return &GetPermissionRuleListLogic{
|
||||
Logger: logx.WithContext(ctx),
|
||||
ctx: ctx,
|
||||
svcCtx: svcCtx,
|
||||
}
|
||||
}
|
||||
|
||||
func (l *GetPermissionRuleListLogic) GetPermissionRuleList() (resp *types.PermissionRuleListResponse, err error) {
|
||||
|
||||
permissionRule := l.svcCtx.DB.ScaAuthPermissionRule
|
||||
var permissionRuleList []types.PermissionRuleMeta
|
||||
err = permissionRule.Scan(&permissionRuleList)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &types.PermissionRuleListResponse{Records: permissionRuleList}, nil
|
||||
}
|
@@ -2,7 +2,6 @@ package system
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"schisandra-album-cloud-microservices/app/auth/api/internal/svc"
|
||||
"schisandra-album-cloud-microservices/app/auth/api/internal/types"
|
||||
|
||||
@@ -24,7 +23,28 @@ func NewGetUserListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetUs
|
||||
}
|
||||
|
||||
func (l *GetUserListLogic) GetUserList() (resp *types.UserInfoListResponse, err error) {
|
||||
// todo: add your logic here and delete this line
|
||||
|
||||
return
|
||||
authUser := l.svcCtx.DB.ScaAuthUser
|
||||
var userMetaList []types.UserMeta
|
||||
err = authUser.Select(
|
||||
authUser.ID,
|
||||
authUser.UID,
|
||||
authUser.Username,
|
||||
authUser.Nickname,
|
||||
authUser.Email,
|
||||
authUser.Phone,
|
||||
authUser.Gender,
|
||||
authUser.Avatar,
|
||||
authUser.Location,
|
||||
authUser.Company,
|
||||
authUser.Blog,
|
||||
authUser.Introduce,
|
||||
authUser.Status,
|
||||
authUser.CreatedAt,
|
||||
authUser.UpdatedAt,
|
||||
authUser.DeletedAt,
|
||||
).Scan(&userMetaList)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &types.UserInfoListResponse{Records: userMetaList}, nil
|
||||
}
|
||||
|
@@ -0,0 +1,35 @@
|
||||
package system
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"schisandra-album-cloud-microservices/app/auth/api/internal/svc"
|
||||
"schisandra-album-cloud-microservices/app/auth/api/internal/types"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
)
|
||||
|
||||
type GetUserLoginLogListLogic struct {
|
||||
logx.Logger
|
||||
ctx context.Context
|
||||
svcCtx *svc.ServiceContext
|
||||
}
|
||||
|
||||
func NewGetUserLoginLogListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetUserLoginLogListLogic {
|
||||
return &GetUserLoginLogListLogic{
|
||||
Logger: logx.WithContext(ctx),
|
||||
ctx: ctx,
|
||||
svcCtx: svcCtx,
|
||||
}
|
||||
}
|
||||
|
||||
func (l *GetUserLoginLogListLogic) GetUserLoginLogList() (resp *types.UserLoginLogListResponse, err error) {
|
||||
userDevice := l.svcCtx.DB.ScaAuthUserDevice
|
||||
var userLoginLogs []types.UserLoginLogMeta
|
||||
err = userDevice.Scan(&userLoginLogs)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &types.UserLoginLogListResponse{Records: userLoginLogs}, nil
|
||||
}
|
@@ -0,0 +1,34 @@
|
||||
package system
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"schisandra-album-cloud-microservices/app/auth/api/internal/svc"
|
||||
"schisandra-album-cloud-microservices/app/auth/api/internal/types"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
)
|
||||
|
||||
type GetUserThirdPartyLoginListLogic struct {
|
||||
logx.Logger
|
||||
ctx context.Context
|
||||
svcCtx *svc.ServiceContext
|
||||
}
|
||||
|
||||
func NewGetUserThirdPartyLoginListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetUserThirdPartyLoginListLogic {
|
||||
return &GetUserThirdPartyLoginListLogic{
|
||||
Logger: logx.WithContext(ctx),
|
||||
ctx: ctx,
|
||||
svcCtx: svcCtx,
|
||||
}
|
||||
}
|
||||
|
||||
func (l *GetUserThirdPartyLoginListLogic) GetUserThirdPartyLoginList() (resp *types.UserThirdPartyLoginListResponse, err error) {
|
||||
|
||||
userSocial := l.svcCtx.DB.ScaAuthUserSocial
|
||||
var userSocialList []types.UserThirdPartyLoginMeta
|
||||
err = userSocial.Scan(&userSocialList)
|
||||
if err != nil {
|
||||
}
|
||||
return &types.UserThirdPartyLoginListResponse{Records: userSocialList}, nil
|
||||
}
|
Reference in New Issue
Block a user