Files
2023-01-26 11:25:49 +08:00

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
}