|
@@ -15,7 +15,7 @@ import (
|
|
|
"strings"
|
|
|
)
|
|
|
|
|
|
-func Fix() {
|
|
|
+func FixEmailBaseInfo() {
|
|
|
mailAddress := fmt.Sprintf("%s:%d", global.CONFIG.Email.Host, global.CONFIG.Email.Port)
|
|
|
|
|
|
|
|
@@ -63,7 +63,7 @@ func Fix() {
|
|
|
}
|
|
|
|
|
|
|
|
|
- mbox, err := c.Select(global.CONFIG.Email.Folder, false)
|
|
|
+ mbox, err := c.Select(global.CONFIG.Email.Folder, true)
|
|
|
if err != nil {
|
|
|
err = errors.New(fmt.Sprintf("选择邮件箱失败: %+v", err))
|
|
|
return
|
|
@@ -75,25 +75,13 @@ func Fix() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- list, err := report.GetNoSysUserNameOutsideReport()
|
|
|
+ to := mbox.Messages
|
|
|
+
|
|
|
+ err = mail.ListenMailV2(c, to)
|
|
|
if err != nil {
|
|
|
- fmt.Println("获取没有用户的信息失败:", err)
|
|
|
- return
|
|
|
+ fmt.Println("处理失败:", err)
|
|
|
}
|
|
|
|
|
|
- for _, v := range list {
|
|
|
- _, fromName, tmpErr := mail.ListenMailV2(c, v.EmailMessageUID)
|
|
|
- if tmpErr != nil {
|
|
|
- fmt.Println(v.Title, ",获取失败:", tmpErr)
|
|
|
- continue
|
|
|
- }
|
|
|
- v.SysUserName = fromName
|
|
|
- tmpErr = v.Update([]string{"SysUserName"})
|
|
|
- if tmpErr != nil {
|
|
|
- fmt.Println(v.Title, ",更新信息失败:", tmpErr)
|
|
|
- continue
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
func FixHistory() {
|
|
@@ -422,3 +410,138 @@ func FixHistory1226() {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+func FixUserName() {
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ idList := []int{409, 398, 395, 406, 411, 404, 402, 397, 410, 403, 407, 391, 392, 393, 394, 390, 388, 389, 396, 399, 400, 401, 405, 408, 415, 416}
|
|
|
+ condition += " AND classify_id IN ? "
|
|
|
+ pars = append(pars, idList)
|
|
|
+
|
|
|
+ list, err := report.GetOutsideReportListByCondition(condition, pars)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("获取报告失败:", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ obj := report.OutsideEmailBaseInfo{}
|
|
|
+ for _, v := range list {
|
|
|
+
|
|
|
+ if v.EmailMessageUID <= 0 {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ emailMessage, err := obj.GetByEmailMessageIdAndFolder(uint32(v.EmailMessageUID), "INBOX")
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("查找邮件失败:", err)
|
|
|
+ continue
|
|
|
+ }
|
|
|
+
|
|
|
+ title := emailMessage.Title
|
|
|
+ var abstract string
|
|
|
+ var classifyId 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 _, ruleInfo := range ruleList {
|
|
|
+ tmpTitle := strings.ToLower(emailMessage.Title)
|
|
|
+ rule := strings.ToLower(ruleInfo.Rule)
|
|
|
+ if strings.Contains(tmpTitle, rule) {
|
|
|
+ title = ruleInfo.Title
|
|
|
+ abstract = ruleInfo.Abstract
|
|
|
+ classifyId = ruleInfo.ClassifyId
|
|
|
+ classify, e := report.GetClassifyByClassifyId(ruleInfo.ClassifyId)
|
|
|
+ if e != nil {
|
|
|
+ err = e
|
|
|
+ global.FILE_LOG.Error("获取分类失败:", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ classifyName = classify.ClassifyName
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if ruleInfo.Author != `` {
|
|
|
+ if strings.Contains(ruleInfo.Author, "@") {
|
|
|
+ sysUser, tmpErr := eta.GetSysUserByEmail(ruleInfo.Author)
|
|
|
+ if tmpErr != nil && !utils.IsErrNoRow(tmpErr) {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if sysUser.AdminId > 0 {
|
|
|
+ sysUserId = sysUser.AdminId
|
|
|
+ sysUserName = sysUser.RealName
|
|
|
+ } else {
|
|
|
+ sysUserName = ruleInfo.Author
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ sysUserName = ruleInfo.Author
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ updateCols := make([]string, 0)
|
|
|
+ if v.SysUserID != sysUserId {
|
|
|
+ v.SysUserID = sysUserId
|
|
|
+ updateCols = append(updateCols, "sys_user_id")
|
|
|
+ }
|
|
|
+ if v.SysUserName != sysUserName {
|
|
|
+ v.SysUserName = sysUserName
|
|
|
+ updateCols = append(updateCols, "sys_user_name")
|
|
|
+ }
|
|
|
+ if v.Abstract != abstract {
|
|
|
+ v.Abstract = abstract
|
|
|
+ updateCols = append(updateCols, "abstract")
|
|
|
+ }
|
|
|
+ if v.ClassifyID != classifyId {
|
|
|
+ v.ClassifyID = classifyId
|
|
|
+ updateCols = append(updateCols, "classify_id")
|
|
|
+ }
|
|
|
+ if v.ClassifyName != classifyName {
|
|
|
+ v.ClassifyName = classifyName
|
|
|
+ updateCols = append(updateCols, "classify_name")
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(updateCols) > 0 {
|
|
|
+ err = v.Update(updateCols)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(v.OutsideReportID, "更新失败:", err)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ fmt.Println("修复完成")
|
|
|
+}
|