Files
2026-05-01 12:56:08 +08:00

66 lines
1.4 KiB
Go

package logic
import (
"context"
"github.com/zeromicro/go-zero/core/logx"
"sundynix-micro-go/app/file/model"
"sundynix-micro-go/app/file/rpc/file"
"sundynix-micro-go/app/file/rpc/internal/svc"
)
type GetFileListLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewGetFileListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetFileListLogic {
return &GetFileListLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
// 获取文件列表
func (l *GetFileListLogic) GetFileList(in *file.GetFileListReq) (*file.GetFileListResp, error) {
var list []model.SundynixOss
var total int64
db := l.svcCtx.DB.Model(&model.SundynixOss{})
if in.Name != "" {
db = db.Where("name LIKE ?", "%"+in.Name+"%")
}
db.Count(&total)
if in.Current > 0 && in.PageSize > 0 {
offset := (in.Current - 1) * in.PageSize
db = db.Offset(int(offset)).Limit(int(in.PageSize))
}
if err := db.Find(&list).Error; err != nil {
return nil, err
}
var respList []*file.FileInfo
for _, item := range list {
respList = append(respList, &file.FileInfo{
Id: item.ID,
Name: item.Name,
Url: item.Url,
Tag: item.Tag,
Key: item.Key,
Suffix: item.Suffix,
Md5: item.MD5,
CreatedAt: item.CreatedAt.Unix(),
})
}
return &file.GetFileListResp{
List: respList,
Total: total,
}, nil
}