Files
PandaX/apps/resource/api/email.go
2022-08-03 17:21:07 +08:00

105 lines
2.6 KiB
Go

package api
import (
"github.com/XM-GO/PandaKit/biz"
email "github.com/XM-GO/PandaKit/mail"
"github.com/XM-GO/PandaKit/restfulx"
"github.com/XM-GO/PandaKit/utils"
"pandax/apps/resource/api/from"
"pandax/apps/resource/entity"
"pandax/apps/resource/services"
)
/**
* @Description 添加qq群467890197 交流学习
* @Author 熊猫
* @Date 2022/1/14 15:23
**/
type ResEmailsApi struct {
ResEmailsApp services.ResEmailsModel
}
// GetResEmailsList ResEmails列表数据
func (p *ResEmailsApi) GetResEmailsList(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")
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]any{
"data": list,
"total": total,
"pageNum": pageNum,
"pageSize": pageSize,
}
}
// GetResEmails 获取ResEmails
func (p *ResEmailsApi) GetResEmails(rc *restfulx.ReqCtx) {
mailId := restfulx.PathParamInt(rc, "mailId")
p.ResEmailsApp.FindOne(int64(mailId))
}
// InsertResEmails 添加ResEmails
func (p *ResEmailsApi) InsertResEmails(rc *restfulx.ReqCtx) {
var data entity.ResEmail
restfulx.BindQuery(rc, &data)
p.ResEmailsApp.Insert(data)
}
// UpdateResEmails 修改ResEmails
func (p *ResEmailsApi) UpdateResEmails(rc *restfulx.ReqCtx) {
var data entity.ResEmail
restfulx.BindQuery(rc, &data)
if utils.ISDdmMail(data.From) {
data.From = ""
}
if utils.IsDdmPassword(data.Secret) {
data.Secret = ""
}
p.ResEmailsApp.Update(data)
}
// DeleteResEmails 删除ResEmails
func (p *ResEmailsApi) DeleteResEmails(rc *restfulx.ReqCtx) {
mailId := restfulx.PathParam(rc, "mailId")
mailIds := utils.IdsStrToIdsIntGroup(mailId)
p.ResEmailsApp.Delete(mailIds)
}
// UpdateMailStatus 删除ResEmails
func (p *ResEmailsApi) UpdateMailStatus(rc *restfulx.ReqCtx) {
var data entity.ResEmail
restfulx.BindQuery(rc, &data)
p.ResEmailsApp.Update(entity.ResEmail{MailId: data.MailId, Status: data.Status})
}
// DebugMail 测试发邮件
func (p *ResEmailsApi) DebugMail(rc *restfulx.ReqCtx) {
var data from.SendMail
restfulx.BindQuery(rc, &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, data.Subject, data.Body), "邮件发送失败")
}