package services import ( "fmt" "github.com/tealeg/xlsx" "hongze/hongze_task/models" "hongze/hongze_task/utils" "os" "time" ) // 报告历史访问次数 func ReportViewTimes() (err error) { defer func() { if err != nil { fmt.Println("crete ReportViewTimes err:", err.Error()) utils.FileLog.Info("crete ReportViewTimes err: %s", err.Error()) } }() //创建excel file := xlsx.NewFile() sheet, err := file.AddSheet("用户访问次数") if err != nil { return err } //标头 rowTitle := sheet.AddRow() cellA := rowTitle.AddCell() cellA.Value = "用户名称" cellB := rowTitle.AddCell() cellB.Value = "公司名称" cellC := rowTitle.AddCell() cellC.Value = "历史访问次数" cellD := rowTitle.AddCell() cellD.Value = "最近一次访问日期" rddpItems, err := models.GetRddpHistoryViewTimes() items, err := models.GetHistoryViewTimes() if err != nil { return err } for _, item := range items { row := sheet.AddRow() cellA := row.AddCell() cellA.Value = item.RealName cellB := row.AddCell() cellB.Value = item.CompanyName cellC := row.AddCell() cellC.SetInt(item.ViewCount) cellD := row.AddCell() cellD.Value = item.CreateTime } for _, item := range rddpItems { row := sheet.AddRow() cellA := row.AddCell() cellA.Value = item.RealName cellB := row.AddCell() cellB.Value = item.CompanyName cellC := row.AddCell() cellC.SetInt(item.ViewCount) cellD := row.AddCell() cellD.Value = item.CreateTime } title := "用户访问次数" savePath := "report_view_times" + time.Now().Format(utils.FormatDateTimeUnSpace) + ".xlsx" err = file.Save("./" + savePath) if err != nil { return } //发送邮件 content := "你好,上周用户访问次数见附件。" fmt.Println("start send email") sendResult := utils.SendEmailByHongze(title, content, utils.EmailSendToHzUsers, savePath, title+".xlsx") //sendResult:=utils.SendEmailByHongze(title,content,utils.EmailSendToMe,savePath) if sendResult { os.Remove(savePath) } fmt.Println("send result:", sendResult) fmt.Println("end send email") return nil } // 报告访问详情 func ReportViewDetail() (err error) { defer func() { if err != nil { fmt.Println("crete ReportViewDetail err:", err.Error()) utils.FileLog.Info("crete ReportViewDetail err: %s", err.Error()) } }() typeList := make([]*models.ReportType, 0) day := new(models.ReportType) day.TypeName = "晨报" day.TypeValue = "day" typeList = append(typeList, day) advisory := new(models.ReportType) advisory.TypeName = "每日商品聚焦" advisory.TypeValue = "advisory" typeList = append(typeList, advisory) week := new(models.ReportType) week.TypeName = "周报" week.TypeValue = "week" typeList = append(typeList, week) two_week := new(models.ReportType) two_week.TypeName = "双周报" two_week.TypeValue = "two_week" typeList = append(typeList, two_week) month := new(models.ReportType) month.TypeName = "月报" month.TypeValue = "month" typeList = append(typeList, month) other := new(models.ReportType) other.TypeName = "数据点评" other.TypeValue = "other" typeList = append(typeList, other) rddp := new(models.ReportType) rddp.TypeName = "日度点评" rddp.TypeValue = "rddp" typeList = append(typeList, rddp) startTime := time.Now().AddDate(0, 0, -7).Format(utils.FormatDateTime) endTime := time.Now().Format(utils.FormatDateTime) //创建excel file := xlsx.NewFile() for _, v := range typeList { fmt.Println(v.TypeName, v.TypeValue) if v.TypeName == `晨报` { sheet, err := file.AddSheet(v.TypeName + "研报阅读统计") if err != nil { return err } //标头 rowTitle := sheet.AddRow() cellA := rowTitle.AddCell() cellA.Value = "用户名称" cellB := rowTitle.AddCell() cellB.Value = "公司名称" cellC := rowTitle.AddCell() cellC.Value = "访问时间" cellD := rowTitle.AddCell() cellD.Value = "访问标题" cellE := rowTitle.AddCell() cellE.Value = "访问页面" cellF := rowTitle.AddCell() cellF.Value = "报告类型" items, err := models.GetResearchReportViewersDetail(startTime, endTime, v.TypeValue) if err != nil { return err } for _, item := range items { row := sheet.AddRow() cellA := row.AddCell() cellA.Value = item.RealName cellB := row.AddCell() cellB.Value = item.CompanyName cellC := row.AddCell() cellC.Value = item.CreatedTime cellD := row.AddCell() cellD.Value = item.ResearchReportName cellE := row.AddCell() cellE.Value = item.ReportVariety cellF := row.AddCell() cellF.Value = v.TypeName } //新晨报的数据 weekItems, err := models.GetRddpDayReportViewersDetail(startTime, endTime) if err != nil { return err } for _, item := range weekItems { row := sheet.AddRow() cellA := row.AddCell() cellA.Value = item.RealName cellB := row.AddCell() cellB.Value = item.CompanyName cellC := row.AddCell() cellC.Value = item.CreatedTime cellD := row.AddCell() cellD.Value = item.ResearchReportName + "(" + item.ReportCreateDate + ")" cellE := row.AddCell() cellE.Value = item.ReportVariety cellF := row.AddCell() cellF.Value = v.TypeName } continue } else if v.TypeName == `周报` { sheet, err := file.AddSheet(v.TypeName + "研报阅读统计") if err != nil { return err } //标头 rowTitle := sheet.AddRow() cellA := rowTitle.AddCell() cellA.Value = "用户名称" cellB := rowTitle.AddCell() cellB.Value = "公司名称" cellC := rowTitle.AddCell() cellC.Value = "访问时间" cellD := rowTitle.AddCell() cellD.Value = "访问标题" cellE := rowTitle.AddCell() cellE.Value = "访问页面" cellF := rowTitle.AddCell() cellF.Value = "报告类型" items, err := models.GetResearchReportViewersDetail(startTime, endTime, v.TypeValue) if err != nil { return err } for _, item := range items { row := sheet.AddRow() cellA := row.AddCell() cellA.Value = item.RealName cellB := row.AddCell() cellB.Value = item.CompanyName cellC := row.AddCell() cellC.Value = item.CreatedTime cellD := row.AddCell() cellD.Value = item.ResearchReportName cellE := row.AddCell() cellE.Value = item.ReportVariety cellF := row.AddCell() cellF.Value = v.TypeName } //新周报的数据 weekItems, err := models.GetRddpWeekReportViewersDetail(startTime, endTime) if err != nil { return err } for _, item := range weekItems { row := sheet.AddRow() cellA := row.AddCell() cellA.Value = item.RealName cellB := row.AddCell() cellB.Value = item.CompanyName cellC := row.AddCell() cellC.Value = item.CreatedTime cellD := row.AddCell() cellD.Value = item.ResearchReportName + "(" + item.ReportCreateDate + ")" cellE := row.AddCell() cellE.Value = item.ReportVariety cellF := row.AddCell() cellF.Value = v.TypeName } continue } else if v.TypeName == `双周报` { sheet, err := file.AddSheet(v.TypeName + "研报阅读统计") if err != nil { return err } //标头 rowTitle := sheet.AddRow() cellA := rowTitle.AddCell() cellA.Value = "用户名称" cellB := rowTitle.AddCell() cellB.Value = "公司名称" cellC := rowTitle.AddCell() cellC.Value = "访问时间" cellD := rowTitle.AddCell() cellD.Value = "访问标题" cellE := rowTitle.AddCell() cellE.Value = "访问页面" cellF := rowTitle.AddCell() cellF.Value = "报告类型" items, err := models.GetResearchReportViewersDetail(startTime, endTime, v.TypeValue) if err != nil { return err } for _, item := range items { row := sheet.AddRow() cellA := row.AddCell() cellA.Value = item.RealName cellB := row.AddCell() cellB.Value = item.CompanyName cellC := row.AddCell() cellC.Value = item.CreatedTime cellD := row.AddCell() cellD.Value = item.ResearchReportName cellE := row.AddCell() cellE.Value = item.ReportVariety cellF := row.AddCell() cellF.Value = v.TypeName } //新双周报的数据 weekItems, err := models.GetRddpTwoWeekReportViewersDetail(startTime, endTime) if err != nil { return err } for _, item := range weekItems { row := sheet.AddRow() cellA := row.AddCell() cellA.Value = item.RealName cellB := row.AddCell() cellB.Value = item.CompanyName cellC := row.AddCell() cellC.Value = item.CreatedTime cellD := row.AddCell() cellD.Value = `【弘则` + item.ClassifyNameSecond + `】` + item.ResearchReportName cellE := row.AddCell() cellE.Value = item.ClassifyNameSecond cellF := row.AddCell() cellF.Value = `大宗商品` } continue } else if v.TypeName == `月报` { sheet, err := file.AddSheet(v.TypeName + "研报阅读统计") if err != nil { return err } //标头 rowTitle := sheet.AddRow() cellA := rowTitle.AddCell() cellA.Value = "用户名称" cellB := rowTitle.AddCell() cellB.Value = "公司名称" cellC := rowTitle.AddCell() cellC.Value = "访问时间" cellD := rowTitle.AddCell() cellD.Value = "访问标题" cellE := rowTitle.AddCell() cellE.Value = "访问页面" cellF := rowTitle.AddCell() cellF.Value = "报告类型" items, err := models.GetResearchReportViewersDetail(startTime, endTime, v.TypeValue) if err != nil { return err } for _, item := range items { row := sheet.AddRow() cellA := row.AddCell() cellA.Value = item.RealName cellB := row.AddCell() cellB.Value = item.CompanyName cellC := row.AddCell() cellC.Value = item.CreatedTime cellD := row.AddCell() cellD.Value = item.ResearchReportName cellE := row.AddCell() cellE.Value = item.ReportVariety cellF := row.AddCell() cellF.Value = v.TypeName } //新月报的数据 monthItems, err := models.GetRddpMonthReportViewersDetail(startTime, endTime) if err != nil { return err } for _, item := range monthItems { row := sheet.AddRow() cellA := row.AddCell() cellA.Value = item.RealName cellB := row.AddCell() cellB.Value = item.CompanyName cellC := row.AddCell() cellC.Value = item.CreatedTime cellD := row.AddCell() cellD.Value = `【弘则` + item.ClassifyNameSecond + `】` + item.ResearchReportName cellE := row.AddCell() cellE.Value = item.ClassifyNameSecond cellF := row.AddCell() cellF.Value = `月报` } continue } else if v.TypeName == `数据点评` { sheet, err := file.AddSheet(v.TypeName + "研报阅读统计") if err != nil { return err } //标头 rowTitle := sheet.AddRow() cellA := rowTitle.AddCell() cellA.Value = "用户名称" cellB := rowTitle.AddCell() cellB.Value = "公司名称" cellC := rowTitle.AddCell() cellC.Value = "访问时间" cellD := rowTitle.AddCell() cellD.Value = "访问标题" cellE := rowTitle.AddCell() cellE.Value = "访问页面" cellF := rowTitle.AddCell() cellF.Value = "报告类型" items, err := models.GetResearchReportViewersDetail(startTime, endTime, v.TypeValue) if err != nil { return err } for _, item := range items { row := sheet.AddRow() cellA := row.AddCell() cellA.Value = item.RealName cellB := row.AddCell() cellB.Value = item.CompanyName cellC := row.AddCell() cellC.Value = item.CreatedTime cellD := row.AddCell() cellD.Value = item.ResearchReportName cellE := row.AddCell() cellE.Value = item.ReportVariety cellF := row.AddCell() cellF.Value = v.TypeName } //新数据点评的数据 monthItems, err := models.GetRddpDataReviewReportViewersDetail(startTime, endTime) if err != nil { return err } for _, item := range monthItems { row := sheet.AddRow() cellA := row.AddCell() cellA.Value = item.RealName cellB := row.AddCell() cellB.Value = item.CompanyName cellC := row.AddCell() cellC.Value = item.CreatedTime cellD := row.AddCell() cellD.Value = `【弘则` + item.ClassifyNameSecond + `】` + item.ResearchReportName cellE := row.AddCell() cellE.Value = item.ClassifyNameSecond cellF := row.AddCell() cellF.Value = item.ClassifyNameFirst } continue } if v.TypeValue == "rddp" { sheet, err := file.AddSheet(v.TypeName + "阅读统计") if err != nil { return err } //标头 rowTitle := sheet.AddRow() cellA := rowTitle.AddCell() cellA.Value = "用户名称" cellB := rowTitle.AddCell() cellB.Value = "公司名称" cellC := rowTitle.AddCell() cellC.Value = "访问时间" cellD := rowTitle.AddCell() cellD.Value = "访问标题" cellF := rowTitle.AddCell() cellF.Value = "报告类型" items, err := models.GetRddpReportViewersDetail(startTime, endTime) if err != nil { return err } for _, item := range items { row := sheet.AddRow() cellA := row.AddCell() cellA.Value = item.RealName cellB := row.AddCell() cellB.Value = item.CompanyName cellC := row.AddCell() cellC.Value = item.CreatedTime cellD := row.AddCell() cellD.Value = item.ResearchReportName + "(" + item.ReportCreateDate + ")" cellE := row.AddCell() cellE.Value = v.TypeName } } else if v.TypeValue == "advisory" { sheet, err := file.AddSheet(v.TypeName + "研报阅读统计") if err != nil { return err } //标头 rowTitle := sheet.AddRow() cellA := rowTitle.AddCell() cellA.Value = "用户名称" cellB := rowTitle.AddCell() cellB.Value = "公司名称" cellC := rowTitle.AddCell() cellC.Value = "访问时间" cellD := rowTitle.AddCell() cellD.Value = "访问标题" cellE := rowTitle.AddCell() cellE.Value = "报告类型" items, err := models.GetAdvisoryViewersDetail(startTime, endTime) if err != nil { return err } for _, item := range items { row := sheet.AddRow() cellA := row.AddCell() cellA.Value = item.RealName cellB := row.AddCell() cellB.Value = item.CompanyName cellC := row.AddCell() cellC.Value = item.CreatedTime cellD := row.AddCell() cellD.Value = item.ResearchReportName cellE := row.AddCell() cellE.Value = v.TypeName } } else { sheet, err := file.AddSheet(v.TypeName + "研报阅读统计") if err != nil { return err } //标头 rowTitle := sheet.AddRow() cellA := rowTitle.AddCell() cellA.Value = "用户名称" cellB := rowTitle.AddCell() cellB.Value = "公司名称" cellC := rowTitle.AddCell() cellC.Value = "访问时间" cellD := rowTitle.AddCell() cellD.Value = "访问标题" cellE := rowTitle.AddCell() cellE.Value = "访问页面" cellF := rowTitle.AddCell() cellF.Value = "报告类型" items, err := models.GetResearchReportViewersDetail(startTime, endTime, v.TypeValue) if err != nil { return err } for _, item := range items { row := sheet.AddRow() cellA := row.AddCell() cellA.Value = item.RealName cellB := row.AddCell() cellB.Value = item.CompanyName cellC := row.AddCell() cellC.Value = item.CreatedTime cellD := row.AddCell() cellD.Value = item.ResearchReportName cellE := row.AddCell() cellE.Value = item.ReportVariety cellF := row.AddCell() cellF.Value = v.TypeName } } } title := "研报阅读统计报表" savePath := "report_view_detail" + time.Now().Format(utils.FormatDateTimeUnSpace) + ".xlsx" err = file.Save("./" + savePath) fmt.Println(err) if err != nil { return } //发送邮件 fmt.Println("start send email") sendResult := utils.SendEmailByHongze(title, "你好,上周研报阅读统计见附件。", utils.EmailSendToHzUsers, savePath, title+".xlsx") //sendResult:=utils.SendEmailByHongze(title,"你好,上周研报阅读统计见附件。",utils.EmailSendToMe,savePath) if sendResult { os.Remove(savePath) } //fmt.Println("send result:", sendResult) //fmt.Println("end send email") return nil }