浏览代码

代码优化

xiziwen 4 月之前
父节点
当前提交
b3a700535d
共有 1 个文件被更改,包括 78 次插入72 次删除
  1. 78 72
      services/pcsg/mail.go

+ 78 - 72
services/pcsg/mail.go

@@ -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)