49 lines
1.3 KiB
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
|
|
}
|