micro-document/internel/dao/emailAlerts.go

49 lines
1.3 KiB
Go

package dao
import (
"errors"
"micro-document/api/emailAlerts"
"micro-document/internel/model"
"micro-document/pkg/db"
)
type emailAlertsDao struct{}
var EmailAlertsDao = new(emailAlertsDao)
func (emailAlertsDao) Submit(req *emailAlerts.EmailAlertsSubmitReq) (err error) {
err = db.DocDB.Model(&model.EmailAlerts{}).Create(&model.EmailAlerts{
FirstName: req.FirstName,
LastName: req.LastName,
FullName: req.FirstName + req.LastName,
Email: req.Email,
Company: req.Company,
Phone: req.Phone,
}).Error
if err != nil {
return errors.New("新增邮件提醒失败")
}
return
}
func (emailAlertsDao) GetEmailInformationList(req *emailAlerts.GetEmailInformationListReq) (data []model.EmailAlerts, total int64, err error) {
dbQuery := db.DocDB.Model(&model.EmailAlerts{})
if req.Filtrate != nil {
if req.Filtrate.Name != "" {
dbQuery = dbQuery.Where("full_name LIKE ?", "%"+req.Filtrate.Name+"%")
}
if req.Filtrate.Email != "" {
dbQuery = dbQuery.Where("email LIKE ?", "%"+req.Filtrate.Email+"%")
}
if req.Filtrate.Company != "" {
dbQuery = dbQuery.Where("company LIKE ?", "%"+req.Filtrate.Company+"%")
}
}
dbQuery.Count(&total)
err = dbQuery.Scopes(db.Pagination(req.Page, req.PageSize)).Find(&data).Error
if err != nil {
return
}
return
}