mirror of
https://gitee.com/XM-GO/PandaX.git
synced 2026-04-23 02:48:34 +08:00
122 lines
3.2 KiB
Go
122 lines
3.2 KiB
Go
package api
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/XM-GO/PandaKit/biz"
|
|
"github.com/XM-GO/PandaKit/oss"
|
|
"github.com/XM-GO/PandaKit/restfulx"
|
|
"github.com/XM-GO/PandaKit/utils"
|
|
"pandax/apps/resource/entity"
|
|
"pandax/apps/resource/services"
|
|
"time"
|
|
)
|
|
|
|
/**
|
|
* @Description 添加qq群467890197 交流学习
|
|
* @Author 熊猫
|
|
* @Date 2022/1/13 15:19
|
|
**/
|
|
|
|
type ResOssesApi struct {
|
|
ResOssesApp services.ResOssesModel
|
|
}
|
|
|
|
// GetResOssesList ResOsses列表数据
|
|
func (p *ResOssesApi) GetResOssesList(rc *restfulx.ReqCtx) {
|
|
|
|
pageNum := restfulx.QueryInt(rc, "pageNum", 1)
|
|
pageSize := restfulx.QueryInt(rc, "pageSize", 10)
|
|
status := restfulx.QueryParam(rc, "status")
|
|
category := restfulx.QueryParam(rc, "category")
|
|
ossCode := restfulx.QueryParam(rc, "ossCode")
|
|
|
|
data := entity.ResOss{Status: status, Category: category, OssCode: ossCode}
|
|
list, total := p.ResOssesApp.FindListPage(pageNum, pageSize, data)
|
|
li := *list
|
|
for i, data := range li {
|
|
data.AccessKey = utils.DdmKey(data.AccessKey)
|
|
data.SecretKey = utils.DdmKey(data.SecretKey)
|
|
li[i] = data
|
|
}
|
|
rc.ResData = map[string]any{
|
|
"data": list,
|
|
"total": total,
|
|
"pageNum": pageNum,
|
|
"pageSize": pageSize,
|
|
}
|
|
}
|
|
|
|
// GetResOsses 获取ResOsses
|
|
func (p *ResOssesApi) GetResOsses(rc *restfulx.ReqCtx) {
|
|
ossId := restfulx.PathParamInt(rc, "ossId")
|
|
p.ResOssesApp.FindOne(int64(ossId))
|
|
}
|
|
|
|
// InsertResOsses 添加ResOsses
|
|
func (p *ResOssesApi) InsertResOsses(rc *restfulx.ReqCtx) {
|
|
var data entity.ResOss
|
|
restfulx.BindQuery(rc, &data)
|
|
|
|
p.ResOssesApp.Insert(data)
|
|
}
|
|
|
|
// UpdateResOsses 修改ResOsses
|
|
func (p *ResOssesApi) UpdateResOsses(rc *restfulx.ReqCtx) {
|
|
var data entity.ResOss
|
|
restfulx.BindQuery(rc, &data)
|
|
if utils.IsDdmKey(data.AccessKey) {
|
|
data.AccessKey = ""
|
|
}
|
|
if utils.IsDdmKey(data.SecretKey) {
|
|
data.SecretKey = ""
|
|
}
|
|
p.ResOssesApp.Update(data)
|
|
}
|
|
|
|
// DeleteResOsses 删除ResOsses
|
|
func (p *ResOssesApi) DeleteResOsses(rc *restfulx.ReqCtx) {
|
|
ossId := restfulx.PathParam(rc, "ossId")
|
|
ossIds := utils.IdsStrToIdsIntGroup(ossId)
|
|
p.ResOssesApp.Delete(ossIds)
|
|
}
|
|
|
|
// UplaodResOsses 上传文件ResOsses
|
|
func (p *ResOssesApi) UplaodResOsses(rc *restfulx.ReqCtx) {
|
|
_, handler, _ := rc.Request.Request.FormFile("file")
|
|
ossCode := restfulx.QueryParam(rc, "ossCode")
|
|
list := p.ResOssesApp.FindList(entity.ResOss{OssCode: ossCode})
|
|
li := *list
|
|
yunFileTmpPath := "uploads/" + time.Now().Format("2006-01-02") + "/" + handler.Filename
|
|
// 读取本地文件。
|
|
f, openError := handler.Open()
|
|
biz.ErrIsNil(openError, "function file.Open() Failed")
|
|
biz.ErrIsNil(NewOss(li[0]).PutObj(yunFileTmpPath, f), "上传OSS失败")
|
|
|
|
rc.ResData = fmt.Sprintf("https://%s.%s/%s", li[0].BucketName, li[0].Endpoint, yunFileTmpPath)
|
|
}
|
|
|
|
// UpdateOssStatus 修改ResOsses状态
|
|
func (p *ResOssesApi) UpdateOssStatus(rc *restfulx.ReqCtx) {
|
|
var data entity.ResOss
|
|
restfulx.BindQuery(rc, &data)
|
|
|
|
p.ResOssesApp.Update(entity.ResOss{OssId: data.OssId, Status: data.Status})
|
|
}
|
|
|
|
func NewOss(ens entity.ResOss) oss.Driver {
|
|
switch ens.Category {
|
|
case "0":
|
|
return oss.NewAliOss(oss.AliConfig{
|
|
AccessKey: ens.AccessKey,
|
|
SecretKey: ens.SecretKey,
|
|
Bucket: ens.BucketName,
|
|
Endpoint: ens.Endpoint,
|
|
})
|
|
case "1":
|
|
//return oss.NewQnOss()
|
|
case "2":
|
|
//return oss.NewTencentOss()
|
|
}
|
|
return nil
|
|
}
|