|
@@ -140,6 +140,80 @@ func handleMailMessage(emailMessage mail.MailMessage) (err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+ var title string
|
|
|
+ var abstract string
|
|
|
+ var classsifyId int
|
|
|
+ var classifyName string
|
|
|
+ var sysUserId int
|
|
|
+ var sysUserName string
|
|
|
+
|
|
|
+ sysUserName = emailMessage.FromAddress
|
|
|
+ // 查找用户
|
|
|
+ if emailMessage.From != `` {
|
|
|
+ tmpEmailStrList := strings.Split(sysUserName, "<")
|
|
|
+ if len(tmpEmailStrList) >= 2 {
|
|
|
+ sysUserName = tmpEmailStrList[1]
|
|
|
+ tmpEmailStrList = strings.Split(sysUserName, ">")
|
|
|
+ if len(tmpEmailStrList) >= 2 {
|
|
|
+ sysUserName = tmpEmailStrList[0]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ sysUser, tmpErr := eta.GetSysUserByEmail(sysUserName)
|
|
|
+ if tmpErr != nil && !utils.IsErrNoRow(tmpErr) {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if tmpErr == nil {
|
|
|
+ sysUserId = sysUser.AdminId
|
|
|
+ sysUserName = sysUser.RealName
|
|
|
+ }
|
|
|
+ }
|
|
|
+ title = strings.Replace(title, "[PCI ANALYTICS CLOUD PLATFORM(00) Fwd] - ", "", -1)
|
|
|
+
|
|
|
+ for _, v := range ruleList {
|
|
|
+ tmpTitle := strings.ToLower(emailMessage.Title)
|
|
|
+ rule := strings.ToLower(v.Rule)
|
|
|
+ if strings.Contains(tmpTitle, rule) {
|
|
|
+ title = v.Title
|
|
|
+ abstract = v.Abstract
|
|
|
+ classsifyId = v.ClassifyId
|
|
|
+ classify, e := report.GetClassifyByClassifyId(v.ClassifyId)
|
|
|
+ if e != nil {
|
|
|
+ err = e
|
|
|
+ global.FILE_LOG.Error("获取分类失败:", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ classifyName = classify.ClassifyName
|
|
|
+
|
|
|
+ // 特殊规则
|
|
|
+ if strings.Contains(title, "海外分公司市场信息月报") || strings.Contains(title, "区域市场信息月报"){
|
|
|
+ if emailMessage.From == "report.pcanalyst00@petrochina-usa.com" {
|
|
|
+ sysUserName = "PCI"
|
|
|
+ break
|
|
|
+ } else {
|
|
|
+ v.Author = emailMessage.From
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if strings.Contains(v.Author, "@") {
|
|
|
+ sysUser, tmpErr := eta.GetSysUserByEmail(v.Author)
|
|
|
+ if tmpErr != nil && !utils.IsErrNoRow(tmpErr) {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if sysUser.AdminId > 0 {
|
|
|
+ sysUserId = sysUser.AdminId
|
|
|
+ sysUserName = sysUser.RealName
|
|
|
+ } else {
|
|
|
+ sysUserName = v.Author
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ sysUserName = v.Author
|
|
|
+ }
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
for k, v := range emailMessage.Resources {
|
|
|
randStr := utils.GetRandStringNoSpecialChar(28)
|
|
|
ext := path.Ext(v)
|
|
@@ -194,29 +268,6 @@ func handleMailMessage(emailMessage mail.MailMessage) (err error) {
|
|
|
// fmt.Println(fileName, "生成失败;err:", err)
|
|
|
//}
|
|
|
|
|
|
- var sysUserId int
|
|
|
- sysUserName := emailMessage.FromAddress
|
|
|
- // 查找用户
|
|
|
- if emailMessage.From != `` {
|
|
|
- tmpEmailStrList := strings.Split(sysUserName, "<")
|
|
|
- if len(tmpEmailStrList) >= 2 {
|
|
|
- sysUserName = tmpEmailStrList[1]
|
|
|
- tmpEmailStrList = strings.Split(sysUserName, ">")
|
|
|
- if len(tmpEmailStrList) >= 2 {
|
|
|
- sysUserName = tmpEmailStrList[0]
|
|
|
- }
|
|
|
- }
|
|
|
- sysUser, tmpErr := eta.GetSysUserByEmail(sysUserName)
|
|
|
- if tmpErr != nil && !utils.IsErrNoRow(tmpErr) {
|
|
|
- err = tmpErr
|
|
|
- return
|
|
|
- }
|
|
|
- if tmpErr == nil {
|
|
|
- sysUserId = sysUser.AdminId
|
|
|
- sysUserName = sysUser.RealName
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
reportUpdateTime := emailMessage.Date
|
|
|
if reportUpdateTime.IsZero() {
|
|
|
reportUpdateTime = time.Now()
|
|
@@ -224,10 +275,10 @@ func handleMailMessage(emailMessage mail.MailMessage) (err error) {
|
|
|
reportInfo := &report.OutsideReport{
|
|
|
OutsideReportID: 0,
|
|
|
Source: 3,
|
|
|
- Title: emailMessage.Title,
|
|
|
- Abstract: "",
|
|
|
- ClassifyID: 0,
|
|
|
- ClassifyName: "",
|
|
|
+ Title: title,
|
|
|
+ Abstract: abstract,
|
|
|
+ ClassifyID: classsifyId,
|
|
|
+ ClassifyName: classifyName,
|
|
|
Content: htmlEscapeBody,
|
|
|
SysUserID: sysUserId,
|
|
|
SysUserName: sysUserName,
|
|
@@ -237,51 +288,6 @@ func handleMailMessage(emailMessage mail.MailMessage) (err error) {
|
|
|
CreateTime: time.Now(),
|
|
|
ReportCode: uuid.New().String(),
|
|
|
}
|
|
|
- reportInfo.Title = strings.Replace(reportInfo.Title, "[PCI ANALYTICS CLOUD PLATFORM(00) Fwd] - ", "", -1)
|
|
|
- for _, v := range ruleList {
|
|
|
- title := strings.ToLower(reportInfo.Title)
|
|
|
- rule := strings.ToLower(v.Rule)
|
|
|
- if strings.Contains(title, rule) {
|
|
|
- reportInfo.Title = v.Title
|
|
|
- reportInfo.Abstract = v.Abstract
|
|
|
- reportInfo.ClassifyID = v.ClassifyId
|
|
|
- classify, e := report.GetClassifyByClassifyId(v.ClassifyId)
|
|
|
- if e != nil {
|
|
|
- err = e
|
|
|
- global.FILE_LOG.Error("获取分类失败:", err)
|
|
|
- return
|
|
|
- }
|
|
|
- reportInfo.ClassifyName = classify.ClassifyName
|
|
|
-
|
|
|
- // 特殊规则
|
|
|
- if strings.Contains(reportInfo.Title, "海外分公司市场信息月报") || strings.Contains(reportInfo.Title, "区域市场信息月报"){
|
|
|
- if emailMessage.From == "report.pcanalyst00@petrochina-usa.com" {
|
|
|
- reportInfo.SysUserName = "PCI"
|
|
|
- break
|
|
|
- } else {
|
|
|
- v.Author = emailMessage.From
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if strings.Contains(v.Author, "@") {
|
|
|
- sysUser, tmpErr := eta.GetSysUserByEmail(v.Author)
|
|
|
- if tmpErr != nil && !utils.IsErrNoRow(tmpErr) {
|
|
|
- err = tmpErr
|
|
|
- return
|
|
|
- }
|
|
|
- if sysUser.AdminId > 0 {
|
|
|
- reportInfo.SysUserID = sysUser.AdminId
|
|
|
- reportInfo.SysUserName = sysUser.RealName
|
|
|
- } else {
|
|
|
- reportInfo.SysUserName = v.Author
|
|
|
- }
|
|
|
- } else {
|
|
|
- reportInfo.SysUserName = v.Author
|
|
|
- }
|
|
|
- break
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
|
|
|
err = report.CreateOutsideReport(reportInfo, outsideReportAttachmentList)
|
|
|
|