91 lines
2.0 KiB
Go
91 lines
2.0 KiB
Go
package dao
|
|
|
|
import (
|
|
"crm/global"
|
|
"crm/models"
|
|
"time"
|
|
)
|
|
|
|
const (
|
|
Closed = 2
|
|
)
|
|
|
|
type MailConfigDao struct {
|
|
}
|
|
|
|
func NewMailConfigDao() *MailConfigDao {
|
|
return &MailConfigDao{}
|
|
}
|
|
|
|
func (m *MailConfigDao) Save(param *models.MailConfigSaveParam) error {
|
|
if !m.IsExists(param.Creator) {
|
|
return create(param)
|
|
}
|
|
return update(param)
|
|
}
|
|
|
|
func (m *MailConfigDao) Delete(param *models.MailConfigDeleteParam) error {
|
|
return global.Db.Delete(&models.MailConfig{}, param.Id).Error
|
|
}
|
|
|
|
func (m *MailConfigDao) GetInfo(uid int64) (*models.MailConfig, error) {
|
|
var mc models.MailConfig
|
|
err := global.Db.Table(MAIL_CONFIG).Where("creator = ?", uid).First(&mc).Error
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &mc, nil
|
|
}
|
|
|
|
func (m *MailConfigDao) UpdateStatus(param *models.MailConfigStatusParam) error {
|
|
mailConfig := models.MailConfig{
|
|
Status: param.Status,
|
|
Updated: time.Now().Unix(),
|
|
}
|
|
db := global.Db.Model(&mailConfig).Where("id = ? and creator = ?", param.Id, param.Creator)
|
|
if err := db.Updates(&mailConfig).Error; err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *MailConfigDao) IsExists(uid int64) bool {
|
|
var mc models.MailConfig
|
|
db := global.Db.Table(MAIL_CONFIG).Where("creator = ?", uid).First(&mc)
|
|
return db.RowsAffected != NumberNull
|
|
}
|
|
|
|
func create(param *models.MailConfigSaveParam) error {
|
|
mailConfig := models.MailConfig{
|
|
Stmp: param.Stmp,
|
|
Port: param.Port,
|
|
AuthCode: param.AuthCode,
|
|
Email: param.Email,
|
|
Status: Closed,
|
|
Creator: param.Creator,
|
|
Created: time.Now().Unix(),
|
|
}
|
|
if err := global.Db.Create(&mailConfig).Error; err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func update(param *models.MailConfigSaveParam) error {
|
|
mailConfig := models.MailConfig{
|
|
Id: param.Id,
|
|
Stmp: param.Stmp,
|
|
Port: param.Port,
|
|
AuthCode: param.AuthCode,
|
|
Email: param.Email,
|
|
Status: param.Status,
|
|
Creator: param.Creator,
|
|
Updated: time.Now().Unix(),
|
|
}
|
|
db := global.Db.Model(&mailConfig).Select("*").Omit("id", "creator", "created")
|
|
if err := db.Updates(&mailConfig).Error; err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|