|
@@ -1,142 +0,0 @@
|
|
|
-package models
|
|
|
-
|
|
|
-import (
|
|
|
- "github.com/beego/beego/v2/client/orm"
|
|
|
- "github.com/rdlucklib/rdluck_tools/paging"
|
|
|
- "hongze/hongze_yb_en_api/utils"
|
|
|
- "time"
|
|
|
-)
|
|
|
-
|
|
|
-const (
|
|
|
- EnglishReportEmailLogSourceAli = 1 // 来源-阿里云
|
|
|
- EnglishReportEmailLogSourceTencent = 2 // 来源-腾讯云
|
|
|
-
|
|
|
- EnglishReportEmailLogStatusIng = -1 // 推送状态-已发送
|
|
|
- EnglishReportEmailLogStatusFail = 0 // 推送状态-发送失败
|
|
|
- EnglishReportEmailLogStatusSuccess = 1 // 推送状态-发送成功
|
|
|
-)
|
|
|
-
|
|
|
-// EnglishReportEmailLog 英文研报-邮件推送记录
|
|
|
-type EnglishReportEmailLog struct {
|
|
|
- Id int `orm:"column(id);pk;auto" description:"邮箱ID"`
|
|
|
- ReportId int `description:"报告ID或者线上路演ID"`
|
|
|
- ReportType int `description:"类型:0英文研报,1英文线上路演"`
|
|
|
- EmailId int `description:"邮箱ID"`
|
|
|
- Email string `description:"邮箱地址"`
|
|
|
- SendData string `description:"请求信息"`
|
|
|
- Result string `description:"响应信息"`
|
|
|
- SendStatus int `description:"发送状态:-1-已发送(一个中间状态,重新推送时可能会产生这种状态);0-发送失败;1-发送成功"`
|
|
|
- CreateTime time.Time `description:"请求时间"`
|
|
|
- Source int `description:"服务商:1-阿里云;2-腾讯云"`
|
|
|
- IsDeleted int `description:"是否已删除: 0-正常; 1-已删除"`
|
|
|
- CallbackData string `description:"回调信息"`
|
|
|
- ErrMsg string `description:"错误信息(Result/CallbackData里面的取起来麻烦=_=!)"`
|
|
|
-}
|
|
|
-
|
|
|
-func (item *EnglishReportEmailLog) TableName() string {
|
|
|
- return "english_report_email_log"
|
|
|
-}
|
|
|
-
|
|
|
-func (item *EnglishReportEmailLog) Create() (err error) {
|
|
|
- o := orm.NewOrmUsingDB("rddp")
|
|
|
- _, err = o.Insert(item)
|
|
|
- return
|
|
|
-}
|
|
|
-
|
|
|
-func (item *EnglishReportEmailLog) Update(cols []string) (err error) {
|
|
|
- o := orm.NewOrmUsingDB("rddp")
|
|
|
- _, err = o.Update(item, cols...)
|
|
|
- return
|
|
|
-}
|
|
|
-
|
|
|
-func (item *EnglishReportEmailLog) InsertMulti(items []*EnglishReportEmailLog) (err error) {
|
|
|
- o := orm.NewOrmUsingDB("rddp")
|
|
|
- _, err = o.InsertMulti(len(items), items)
|
|
|
- return
|
|
|
-}
|
|
|
-
|
|
|
-// EnglishReportEmailLogPageListResp 英文研报-邮件推送记录分页列表响应体
|
|
|
-type EnglishReportEmailLogPageListResp struct {
|
|
|
- List []*EnglishReportEmailLogPageList `description:"列表数据"`
|
|
|
- Paging *paging.PagingItem `description:"分页数据"`
|
|
|
-}
|
|
|
-
|
|
|
-// EnglishReportEmailLogPageList 英文研报-邮件推送记录分页列表
|
|
|
-type EnglishReportEmailLogPageList struct {
|
|
|
- SendId int `description:"推送ID"`
|
|
|
- ReportId int `description:"报告ID"`
|
|
|
- EmailId int `description:"邮箱ID"`
|
|
|
- Email string `description:"邮箱地址"`
|
|
|
- ResultMsg string `description:"结果详情"`
|
|
|
- SendStatus int `description:"发送状态:-1-已发送;0-发送失败;1-发送成功"`
|
|
|
- Source int `description:"服务商:1-阿里云;2-腾讯云"`
|
|
|
- CreateTime string `description:"创建时间"`
|
|
|
-}
|
|
|
-
|
|
|
-// GetEnglishReportEmailLogPageList 获取日志列表-分页
|
|
|
-func GetEnglishReportEmailLogPageList(condition string, pars []interface{}, order string, startSize, pageSize int) (total int, list []*EnglishReportEmailLog, err error) {
|
|
|
- o := orm.NewOrmUsingDB("rddp")
|
|
|
- sql := `SELECT * FROM english_report_email_log WHERE is_deleted = 0 `
|
|
|
- sql += condition
|
|
|
- if order != "" {
|
|
|
- sql += order
|
|
|
- } else {
|
|
|
- sql += ` ORDER BY send_status ASC, create_time DESC`
|
|
|
- }
|
|
|
- totalSQl := `SELECT COUNT(1) total FROM (` + sql + `) z`
|
|
|
- if err = o.Raw(totalSQl, pars).QueryRow(&total); err != nil {
|
|
|
- return
|
|
|
- }
|
|
|
- sql += ` LIMIT ?,?`
|
|
|
- _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
|
|
|
- return
|
|
|
-}
|
|
|
-
|
|
|
-// GetEnglishReportEmailLogById 主键获取日志
|
|
|
-func GetEnglishReportEmailLogById(id int) (item *EnglishReportEmailLog, err error) {
|
|
|
- o := orm.NewOrmUsingDB("rddp")
|
|
|
- sql := `SELECT * FROM english_report_email_log WHERE is_deleted = 0 AND id = ? LIMIT 1`
|
|
|
- err = o.Raw(sql, id).QueryRow(&item)
|
|
|
- return
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-// EnglishReportEmailLogFail 群发消息日志失败列表
|
|
|
-type EnglishReportEmailLogFail struct {
|
|
|
- HasFail int `description:"是否有失败记录: 0-无; 1-有"`
|
|
|
- ReportId int `description:"报告ID"`
|
|
|
-}
|
|
|
-
|
|
|
-// GetEnglishReportEmailLogFailList 获取群发消息日志失败列表
|
|
|
-func GetEnglishReportEmailLogFailList(reportType int) (list []*EnglishReportEmailLogFail, err error) {
|
|
|
- o := orm.NewOrmUsingDB("rddp")
|
|
|
- sql := `SELECT 1 AS has_fail, report_id FROM english_report_email_log WHERE report_type=? and is_deleted = 0 AND send_status = 0 GROUP BY report_id`
|
|
|
- _, err = o.Raw(sql, reportType).QueryRows(&list)
|
|
|
- return
|
|
|
-}
|
|
|
-
|
|
|
-// GetEnglishReportEmailLog 获取邮件推送日志
|
|
|
-func GetEnglishReportEmailLog(condition string, pars []interface{}) (item *EnglishReportEmailLog, err error) {
|
|
|
- o := orm.NewOrmUsingDB("rddp")
|
|
|
- sql := `SELECT * FROM english_report_email_log WHERE 1 = 1 `
|
|
|
- sql += condition
|
|
|
- sql += ` ORDER BY id DESC LIMIT 1`
|
|
|
- err = o.Raw(sql, pars).QueryRow(&item)
|
|
|
- return
|
|
|
-}
|
|
|
-
|
|
|
-// GetHasFailEmailLogReportIds 获取存在邮件推送失败记录的英文报告IDs
|
|
|
-func GetHasFailEmailLogReportIds() (reportIds []int, err error) {
|
|
|
- o := orm.NewOrmUsingDB("rddp")
|
|
|
- sql := `SELECT DISTINCT report_id FROM english_report_email_log WHERE is_deleted = 0 AND send_status = 0`
|
|
|
- _, err = o.Raw(sql).QueryRows(&reportIds)
|
|
|
- return
|
|
|
-}
|
|
|
-
|
|
|
-// GetSuccessEmailLogReportIds 获取邮件推送记录均为成功的英文报告IDs
|
|
|
-func GetSuccessEmailLogReportIds() (reportIds []int, err error) {
|
|
|
- o := orm.NewOrmUsingDB("rddp")
|
|
|
- sql := `SELECT DISTINCT report_id FROM english_report_email_log WHERE is_deleted = 0 AND (send_status != 0 AND send_status != -1)`
|
|
|
- _, err = o.Raw(sql).QueryRows(&reportIds)
|
|
|
- return
|
|
|
-}
|