feat: mail config and mail send
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"crm/common"
|
||||
"crm/dao"
|
||||
"crm/models"
|
||||
"crm/response"
|
||||
)
|
||||
|
||||
type MailConfigService struct {
|
||||
mailConfigDao *dao.MailConfigDao
|
||||
}
|
||||
|
||||
func NewMailConfigService() *MailConfigService {
|
||||
return &MailConfigService{
|
||||
mailConfigDao: dao.NewMailConfigDao(),
|
||||
}
|
||||
}
|
||||
|
||||
// 保存邮件服务配置
|
||||
func (m *MailConfigService) Save(param *models.MailConfigSaveParam) int {
|
||||
if err := m.mailConfigDao.Save(param); err != nil {
|
||||
return response.ErrCodeFailed
|
||||
}
|
||||
return response.ErrCodeSuccess
|
||||
}
|
||||
|
||||
// 开启或关闭邮件服务
|
||||
func (m *MailConfigService) UpdateStatus(param *models.MailConfigStatusParam) int {
|
||||
if err := m.mailConfigDao.UpdateStatus(param); err != nil {
|
||||
return response.ErrCodeFailed
|
||||
}
|
||||
return response.ErrCodeSuccess
|
||||
}
|
||||
|
||||
// 获取邮件配置信息
|
||||
func (m *MailConfigService) GetInfo(uid int64) (*models.MailConfigInfo, int) {
|
||||
mc, err := m.mailConfigDao.GetInfo(uid)
|
||||
if err != nil {
|
||||
return nil, response.ErrCodeFailed
|
||||
}
|
||||
mailConfig := models.MailConfigInfo{
|
||||
Id: mc.Id,
|
||||
Stmp: mc.Stmp,
|
||||
Port: mc.Port,
|
||||
AuthCode: mc.AuthCode,
|
||||
Email: mc.Email,
|
||||
Status: mc.Status,
|
||||
}
|
||||
return &mailConfig, response.ErrCodeSuccess
|
||||
}
|
||||
|
||||
// 检查邮件配置的有效性
|
||||
func (m *MailConfigService) Check(uid int64) int {
|
||||
mc, err := m.mailConfigDao.GetInfo(uid)
|
||||
if err != nil {
|
||||
return response.ErrCodeMailConfigInvalid
|
||||
}
|
||||
if err = common.DialMail(mc.Stmp, mc.Port, mc.Email, mc.AuthCode); err != nil {
|
||||
return response.ErrCodeMailConfigInvalid
|
||||
}
|
||||
return response.ErrCodeSuccess
|
||||
}
|
||||
@@ -9,6 +9,11 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
const (
|
||||
Open = 1
|
||||
Close = 2
|
||||
)
|
||||
|
||||
type CustomerService struct {
|
||||
}
|
||||
|
||||
@@ -57,6 +62,31 @@ func (c *CustomerService) Update(param *models.CustomerUpdateParam) int {
|
||||
return response.ErrCodeSuccess
|
||||
}
|
||||
|
||||
// 发送邮件给客户
|
||||
func (c *CustomerService) SendMail(param *models.CustomerSendMailParam) int {
|
||||
var mc models.MailConfig
|
||||
err := global.Db.Model(&models.MailConfig{}).Where("creator = ?", param.Uid).First(&mc).Error
|
||||
if err != nil {
|
||||
return response.ErrCodeMailSendFailed
|
||||
}
|
||||
if mc.Status == Close {
|
||||
return response.ErrCodeMailSendUnEnable
|
||||
}
|
||||
mailParam := models.MailParam{
|
||||
Smtp: mc.Stmp,
|
||||
Port: mc.Port,
|
||||
AuthCode: mc.AuthCode,
|
||||
Sender: mc.Email,
|
||||
Subject: param.Subject,
|
||||
Content: param.Content,
|
||||
Receiver: param.Receiver,
|
||||
}
|
||||
if err := common.SendMailToCustomer(mailParam); err != nil {
|
||||
return response.ErrCodeMailSendFailed
|
||||
}
|
||||
return response.ErrCodeSuccess
|
||||
}
|
||||
|
||||
// 删除客户
|
||||
func (c *CustomerService) Delete(param *models.CustomerDeleteParam) int {
|
||||
if err := global.Db.Delete(&models.Customer{}, param.Ids).Error; err != nil {
|
||||
|
||||
Reference in New Issue
Block a user