浏览代码

中石油规则修改,数据修复

xiziwen 3 月之前
父节点
当前提交
09a3d9131e
共有 2 个文件被更改,包括 100 次插入5 次删除
  1. 6 0
      models/report/outside_report.go
  2. 94 5
      services/pcsg/fix.go

+ 6 - 0
models/report/outside_report.go

@@ -159,3 +159,9 @@ func GetMailOutsideReportHistory2() (items []*OutsideReport, err error) {
 
 	return
 }
+
+func GetMailOutsideReportHistory3() (items []*OutsideReport, err error) {
+	err = global.DEFAULT_MYSQL.Where("source = 3 AND classify_id =0 ").Find(&items).Error
+
+	return
+}

+ 94 - 5
services/pcsg/fix.go

@@ -206,10 +206,9 @@ func FixHistory2() {
 	}
 	fmt.Println("规则数量:", len(ruleList))
 
-
 	for _, reportInfo := range list {
-		fmt.Println("标题:",reportInfo.Title)
-		fmt.Println("作者:",reportInfo.SysUserName)
+		fmt.Println("标题:", reportInfo.Title)
+		fmt.Println("作者:", reportInfo.SysUserName)
 		// 特殊规则
 		if strings.Contains(reportInfo.Title, "海外分公司市场信息月报") || strings.Contains(reportInfo.Title, "区域市场信息月报") {
 			if reportInfo.SysUserName == "report.pcanalyst00@petrochina-usa.com" {
@@ -228,7 +227,7 @@ func FixHistory2() {
 					return
 				}
 				if sysUser.AdminId > 0 {
-					fmt.Println(reportInfo.SysUserName," 有对应用户:", sysUser.RealName)
+					fmt.Println(reportInfo.SysUserName, " 有对应用户:", sysUser.RealName)
 					reportInfo.SysUserID = sysUser.AdminId
 					reportInfo.SysUserName = sysUser.RealName
 				}
@@ -332,4 +331,94 @@ func FixHistory3() {
 			fmt.Println(reportInfo.Title, "去除前缀成功")
 		}
 	}
-}
+}
+
+func FixHistory1226() {
+	list, err := report.GetMailOutsideReportHistory3()
+	if err != nil {
+		fmt.Println("获取没有分类的信息失败:", err)
+		return
+	}
+
+	ruleJson, err := eta.GetBusinessConfByKey("MailCheckRule")
+	if err != nil {
+		global.FILE_LOG.Error("获取规则配置失败:%v", err)
+		return
+	}
+	var ruleList []report.MailRule
+	err = json.Unmarshal([]byte(ruleJson.ConfVal), &ruleList)
+	if err != nil {
+		global.FILE_LOG.Error("解析规则配置失败:%v", err)
+		return
+	}
+	ruleMap := make(map[string]report.MailRule)
+	for _, v := range ruleList {
+		ruleMap[v.Rule] = v
+	}
+
+	classifyAll, e := report.GetClassifyAll()
+	if e != nil {
+		err = e
+		global.FILE_LOG.Error("获取分类失败:", err)
+		return
+	}
+	calssifyMap := make(map[int]*report.Classify)
+	for _, v := range classifyAll {
+		calssifyMap[v.Id] = v
+	}
+
+	for _, reportInfo := range list {
+		for _, v := range ruleList {
+			title := strings.ToLower(reportInfo.Title)
+			rule := strings.ToLower(v.Rule)
+			if strings.Contains(title, rule) {
+				fmt.Println(reportInfo.Title, "匹配到规则:", v.Rule)
+				reportInfo.Title = v.Title
+				reportInfo.Abstract = v.Abstract
+				reportInfo.ClassifyID = v.ClassifyId
+				if calssifyMap[v.ClassifyId] != nil {
+					reportInfo.ClassifyName = calssifyMap[v.ClassifyId].ClassifyName
+				}
+				// 特殊规则
+				if strings.Contains(title, "海外分公司市场信息月报") || strings.Contains(title, "区域市场信息月报") {
+					if reportInfo.SysUserName == "report.pcanalyst00@petrochina-usa.com" {
+						v.Author = "PCI"
+					} else {
+						v.Author = reportInfo.SysUserName
+					}
+				}
+				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
+				}
+				err = reportInfo.Update([]string{"Title", "Abstract", "ClassifyID", "ClassifyName", "SysUserID", "SysUserName"})
+				if err != nil {
+					fmt.Println("更新失败:", err)
+					return
+				}
+				fmt.Println(reportInfo.Title, "更新成功")
+				break
+			}
+		}
+		if strings.Contains(reportInfo.Title, "[PCI ANALYTICS CLOUD PLATFORM(00) Fwd] - ") {
+			reportInfo.Title = strings.Replace(reportInfo.Title, "[PCI ANALYTICS CLOUD PLATFORM(00) Fwd] - ", "", -1)
+			err = reportInfo.Update([]string{"Title"})
+			if err != nil {
+				fmt.Println("更新失败:", err)
+				return
+			}
+			fmt.Println(reportInfo.Title, "去除前缀成功")
+		}
+	}
+}