mirror of
https://gitee.com/XM-GO/PandaX.git
synced 2026-04-24 03:18:35 +08:00
【新增】资源管理模块
This commit is contained in:
157
apps/resource/api/email.go
Normal file
157
apps/resource/api/email.go
Normal file
@@ -0,0 +1,157 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"pandax/apps/resource/api/from"
|
||||
"pandax/apps/resource/entity"
|
||||
"pandax/apps/resource/services"
|
||||
"pandax/base/biz"
|
||||
"pandax/base/ctx"
|
||||
"pandax/base/ginx"
|
||||
email "pandax/base/mail"
|
||||
"pandax/base/utils"
|
||||
)
|
||||
|
||||
/**
|
||||
* @Description 添加qq群467890197 交流学习
|
||||
* @Author 熊猫
|
||||
* @Date 2022/1/14 15:23
|
||||
**/
|
||||
|
||||
type ResEmailsApi struct {
|
||||
ResEmailsApp services.ResEmailsModel
|
||||
}
|
||||
|
||||
// @Summary ResEmails列表数据
|
||||
// @Tags ResEmails
|
||||
// @Param pageSize query int false "页条数"
|
||||
// @Param pageNum query int false "页码"
|
||||
// @Param status query string false "状态"
|
||||
// @Param category query string false "分类"
|
||||
// @Success 200 {string} string "{"code": 200, "data": [...]}"
|
||||
// @Router /resource/email/list [get]
|
||||
// @Security
|
||||
func (p *ResEmailsApi) GetResEmailsList(rc *ctx.ReqCtx) {
|
||||
|
||||
pageNum := ginx.QueryInt(rc.GinCtx, "pageNum", 1)
|
||||
pageSize := ginx.QueryInt(rc.GinCtx, "pageSize", 10)
|
||||
status := rc.GinCtx.Query("status")
|
||||
category := rc.GinCtx.Query("category")
|
||||
|
||||
data := entity.ResEmail{Status: status, Category: category}
|
||||
list, total := p.ResEmailsApp.FindListPage(pageNum, pageSize, data)
|
||||
li := *list
|
||||
for i, data := range li {
|
||||
data.From = utils.DdmMail(data.From)
|
||||
data.Secret = utils.DdmPassword(data.Secret)
|
||||
li[i] = data
|
||||
}
|
||||
rc.ResData = map[string]interface{}{
|
||||
"data": list,
|
||||
"total": total,
|
||||
"pageNum": pageNum,
|
||||
"pageSize": pageSize,
|
||||
}
|
||||
}
|
||||
|
||||
// @Summary 获取ResEmails
|
||||
// @Description 获取JSON
|
||||
// @Tags ResEmails
|
||||
// @Param mailId path int true "mailId"
|
||||
// @Success 200 {string} string "{"code": 200, "data": [...]}"
|
||||
// @Router /resource/email/{mailId }[get]
|
||||
// @Security
|
||||
func (p *ResEmailsApi) GetResEmails(rc *ctx.ReqCtx) {
|
||||
mailId := ginx.PathParamInt(rc.GinCtx, "mailId")
|
||||
p.ResEmailsApp.FindOne(int64(mailId))
|
||||
}
|
||||
|
||||
// @Summary 添加ResEmails
|
||||
// @Description 获取JSON
|
||||
// @Tags ResEmails
|
||||
// @Accept application/json
|
||||
// @Product application/json
|
||||
// @Param data body entity.ResEmail true "data"
|
||||
// @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
|
||||
// @Success 200 {string} string "{"code": 400, "message": "添加失败"}"
|
||||
// @Router /resource/email [post]
|
||||
// @Security X-TOKEN
|
||||
func (p *ResEmailsApi) InsertResEmails(rc *ctx.ReqCtx) {
|
||||
var data entity.ResEmail
|
||||
ginx.BindJsonAndValid(rc.GinCtx, &data)
|
||||
|
||||
p.ResEmailsApp.Insert(data)
|
||||
}
|
||||
|
||||
// @Summary 修改ResEmails
|
||||
// @Description 获取JSON
|
||||
// @Tags ResEmails
|
||||
// @Accept application/json
|
||||
// @Product application/json
|
||||
// @Param data body entity.ResEmail true "body"
|
||||
// @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
|
||||
// @Success 200 {string} string "{"code": 400, "message": "添加失败"}"
|
||||
// @Router /resource/email [put]
|
||||
// @Security X-TOKEN
|
||||
func (p *ResEmailsApi) UpdateResEmails(rc *ctx.ReqCtx) {
|
||||
var data entity.ResEmail
|
||||
ginx.BindJsonAndValid(rc.GinCtx, &data)
|
||||
|
||||
p.ResEmailsApp.Update(data)
|
||||
}
|
||||
|
||||
// @Summary 删除ResEmails
|
||||
// @Description 删除数据
|
||||
// @Tags ResEmails
|
||||
// @Param mailId path string true "mailId"
|
||||
// @Success 200 {string} string "{"code": 200, "message": "删除成功"}"
|
||||
// @Success 200 {string} string "{"code": 400, "message": "删除失败"}"
|
||||
// @Router /resource/email/{mailId } [delete]
|
||||
func (p *ResEmailsApi) DeleteResEmails(rc *ctx.ReqCtx) {
|
||||
|
||||
mailId := rc.GinCtx.Param("mailId")
|
||||
mailIds := utils.IdsStrToIdsIntGroup(mailId)
|
||||
p.ResEmailsApp.Delete(mailIds)
|
||||
}
|
||||
|
||||
// @Summary 删除ResEmails
|
||||
// @Description 获取JSON
|
||||
// @Tags ResOsses
|
||||
// @Accept application/json
|
||||
// @Product application/json
|
||||
// @Param data body entity.ResEmail true "body"
|
||||
// @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
|
||||
// @Success 200 {string} string "{"code": 400, "message": "添加失败"}"
|
||||
// @Router /resource/oss [put]
|
||||
// @Security X-TOKEN
|
||||
func (p *ResEmailsApi) UpdateMailStatus(rc *ctx.ReqCtx) {
|
||||
var data entity.ResEmail
|
||||
ginx.BindJsonAndValid(rc.GinCtx, &data)
|
||||
|
||||
p.ResEmailsApp.Update(entity.ResEmail{MailId: data.MailId, Status: data.Status})
|
||||
}
|
||||
|
||||
// @Summary 测试发邮件
|
||||
// @Description 获取JSON
|
||||
// @Tags ResEmails
|
||||
// @Accept application/json
|
||||
// @Product application/json
|
||||
// @Param data body from.SendMail true "data"
|
||||
// @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
|
||||
// @Success 200 {string} string "{"code": 400, "message": "添加失败"}"
|
||||
// @Router /resource/email/debugMail [post]
|
||||
// @Security X-TOKEN
|
||||
func (p *ResEmailsApi) DebugMail(rc *ctx.ReqCtx) {
|
||||
var data from.SendMail
|
||||
ginx.BindJsonAndValid(rc.GinCtx, &data)
|
||||
|
||||
one := p.ResEmailsApp.FindOne(data.MailId)
|
||||
ml := email.Mail{
|
||||
Host: one.Host,
|
||||
Port: one.Port,
|
||||
From: one.From,
|
||||
Nickname: one.Nickname,
|
||||
Secret: one.Secret,
|
||||
IsSSL: one.IsSSL,
|
||||
}
|
||||
biz.ErrIsNil(ml.Email(data.To, email.TEXTTYPE, data.Subject, data.Body), "邮件发送失败")
|
||||
}
|
||||
14
apps/resource/api/from/mail.go
Normal file
14
apps/resource/api/from/mail.go
Normal file
@@ -0,0 +1,14 @@
|
||||
package from
|
||||
|
||||
/**
|
||||
* @Description 添加qq群467890197 交流学习
|
||||
* @Author 熊猫
|
||||
* @Date 2022/1/14 16:53
|
||||
**/
|
||||
|
||||
type SendMail struct {
|
||||
MailId int64 `json:"mailId"`
|
||||
To string `json:"to"`
|
||||
Subject string `json:"subject"`
|
||||
Body string `json:"body"`
|
||||
}
|
||||
@@ -1,11 +1,15 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"pandax/apps/resource/entity"
|
||||
"pandax/apps/resource/services"
|
||||
"pandax/base/biz"
|
||||
"pandax/base/ctx"
|
||||
"pandax/base/ginx"
|
||||
"pandax/base/oss"
|
||||
"pandax/base/utils"
|
||||
"time"
|
||||
)
|
||||
|
||||
/**
|
||||
@@ -22,8 +26,11 @@ type ResOssesApi struct {
|
||||
// @Tags ResOsses
|
||||
// @Param pageSize query int false "页条数"
|
||||
// @Param pageNum query int false "页码"
|
||||
// @Param status query string false "状态"
|
||||
// @Param category query string false "分类"
|
||||
// @Param ossCode query string false "编号"
|
||||
// @Success 200 {string} string "{"code": 200, "data": [...]}"
|
||||
// @Router /admin/resOsses/list [get]
|
||||
// @Router /resource/oss/list [get]
|
||||
// @Security
|
||||
func (p *ResOssesApi) GetResOssesList(rc *ctx.ReqCtx) {
|
||||
|
||||
@@ -37,8 +44,8 @@ func (p *ResOssesApi) GetResOssesList(rc *ctx.ReqCtx) {
|
||||
list, total := p.ResOssesApp.FindListPage(pageNum, pageSize, data)
|
||||
li := *list
|
||||
for i, data := range li {
|
||||
data.AccessKey = utils.Ddm(data.AccessKey)
|
||||
data.SecretKey = utils.Ddm(data.SecretKey)
|
||||
data.AccessKey = utils.DdmKey(data.AccessKey)
|
||||
data.SecretKey = utils.DdmKey(data.SecretKey)
|
||||
li[i] = data
|
||||
}
|
||||
rc.ResData = map[string]interface{}{
|
||||
@@ -54,7 +61,7 @@ func (p *ResOssesApi) GetResOssesList(rc *ctx.ReqCtx) {
|
||||
// @Tags ResOsses
|
||||
// @Param ossId path int true "ossId"
|
||||
// @Success 200 {string} string "{"code": 200, "data": [...]}"
|
||||
// @Router /admin/resOsses/{ossId }[get]
|
||||
// @Router /resource/oss/{ossId }[get]
|
||||
// @Security
|
||||
func (p *ResOssesApi) GetResOsses(rc *ctx.ReqCtx) {
|
||||
ossId := ginx.PathParamInt(rc.GinCtx, "ossId")
|
||||
@@ -66,10 +73,10 @@ func (p *ResOssesApi) GetResOsses(rc *ctx.ReqCtx) {
|
||||
// @Tags ResOsses
|
||||
// @Accept application/json
|
||||
// @Product application/json
|
||||
// @Param data body entity.ResOsses true "data"
|
||||
// @Param data body entity.ResOss true "data"
|
||||
// @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
|
||||
// @Success 200 {string} string "{"code": 400, "message": "添加失败"}"
|
||||
// @Router /admin/resOsses [post]
|
||||
// @Router /resource/oss [post]
|
||||
// @Security X-TOKEN
|
||||
func (p *ResOssesApi) InsertResOsses(rc *ctx.ReqCtx) {
|
||||
var data entity.ResOss
|
||||
@@ -83,10 +90,10 @@ func (p *ResOssesApi) InsertResOsses(rc *ctx.ReqCtx) {
|
||||
// @Tags ResOsses
|
||||
// @Accept application/json
|
||||
// @Product application/json
|
||||
// @Param data body entity.ResOsses true "body"
|
||||
// @Param data body entity.ResOss true "body"
|
||||
// @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
|
||||
// @Success 200 {string} string "{"code": 400, "message": "添加失败"}"
|
||||
// @Router /admin/resOsses [put]
|
||||
// @Router /resource/oss [put]
|
||||
// @Security X-TOKEN
|
||||
func (p *ResOssesApi) UpdateResOsses(rc *ctx.ReqCtx) {
|
||||
var data entity.ResOss
|
||||
@@ -101,10 +108,64 @@ func (p *ResOssesApi) UpdateResOsses(rc *ctx.ReqCtx) {
|
||||
// @Param ossId path string true "ossId"
|
||||
// @Success 200 {string} string "{"code": 200, "message": "删除成功"}"
|
||||
// @Success 200 {string} string "{"code": 400, "message": "删除失败"}"
|
||||
// @Router /admin/resOsses/{ossId } [delete]
|
||||
// @Router /resource/oss/{ossId} [delete]
|
||||
func (p *ResOssesApi) DeleteResOsses(rc *ctx.ReqCtx) {
|
||||
|
||||
ossId := rc.GinCtx.Param("ossId")
|
||||
ossIds := utils.IdsStrToIdsIntGroup(ossId)
|
||||
p.ResOssesApp.Delete(ossIds)
|
||||
}
|
||||
|
||||
// @Summary 上传文件ResOsses
|
||||
// @Description 上传文件
|
||||
// @Tags ResOsses
|
||||
// @Success 200 {string} string "{"code": 200, "message": "删除成功"}"
|
||||
// @Success 200 {string} string "{"code": 400, "message": "删除失败"}"
|
||||
// @Router /resource/oss/uploadFile [post]
|
||||
func (p *ResOssesApi) UplaodResOsses(rc *ctx.ReqCtx) {
|
||||
file, _ := rc.GinCtx.FormFile("file")
|
||||
ossCode, _ := rc.GinCtx.GetQuery("ossCode")
|
||||
list := p.ResOssesApp.FindList(entity.ResOss{OssCode: ossCode})
|
||||
li := *list
|
||||
yunFileTmpPath := "uploads/" + time.Now().Format("2006-01-02") + "/" + file.Filename
|
||||
// 读取本地文件。
|
||||
f, openError := file.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)
|
||||
}
|
||||
|
||||
// @Summary 修改ResOsses状态
|
||||
// @Description 获取JSON
|
||||
// @Tags ResOsses
|
||||
// @Accept application/json
|
||||
// @Product application/json
|
||||
// @Param data body entity.ResOss true "body"
|
||||
// @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
|
||||
// @Success 200 {string} string "{"code": 400, "message": "添加失败"}"
|
||||
// @Router /resource/oss [put]
|
||||
// @Security X-TOKEN
|
||||
func (p *ResOssesApi) UpdateOssStatus(rc *ctx.ReqCtx) {
|
||||
var data entity.ResOss
|
||||
ginx.BindJsonAndValid(rc.GinCtx, &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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user