123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261 |
- package services
- import (
- "fmt"
- "github.com/tealeg/xlsx"
- "hongze/hongze_task/models"
- "hongze/hongze_task/utils"
- "os"
- "strconv"
- "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())
- }
- }()
- typeList:=make([]*models.ReportType,0)
- day:=new(models.ReportType)
- day.TypeName="晨报"
- day.TypeValue="day"
- typeList=append(typeList,day)
- 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)
- //创建excel
- file:=xlsx.NewFile()
- for _, v := range typeList {
- fmt.Println(v.TypeValue,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="历史访问人数"
- fmt.Println(v.TypeName, v.TypeValue)
- if v.TypeValue == "rddp" {
- items, err := models.GetRddpReportViewers()
- if err != nil {
- return err
- }
- for _, item := range items {
- row := sheet.AddRow()
- cellA:=row.AddCell()
- cellA.Value=item.ResearchReportName+"("+item.CreateDate+")"
- cellB:=row.AddCell()
- cellB.Value=v.TypeName
- cellC:=row.AddCell()
- cellC.Value=strconv.Itoa(item.Count)
- cellD:=row.AddCell()
- cellD.Value=strconv.Itoa(item.UserCount)
- }
- } else {
- items, err := models.GetResearchReportViewers(v.TypeValue)
- if err != nil {
- return err
- }
- for _, item := range items {
- row := sheet.AddRow()
- cellA:=row.AddCell()
- cellA.Value=item.ResearchReportName
- cellB:=row.AddCell()
- cellB.Value=v.TypeName
- cellC:=row.AddCell()
- cellC.Value=strconv.Itoa(item.Count)
- cellD:=row.AddCell()
- cellD.Value=strconv.Itoa(item.UserCount)
- }
- }
- }
- savePath:="report_view_times"+time.Now().Format(utils.FormatDateTimeUnSpace)+".xlsx"
- err=file.Save("./"+savePath)
- if err!=nil {
- return
- }
- //发送邮件
- title:="用户访问次数',\"你好,上周用户访问次数见附件。"
- fmt.Println("start send email")
- sendResult:=utils.SendEmailByHongze(title,"",utils.EmailSendToHzUsers,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)
- 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.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 {
- 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
- }
- }
- }
- savePath:="report_viewer_details"+time.Now().Format(utils.FormatDateTimeUnSpace)+".xlsx"
- err=file.Save("./"+savePath)
- if err!=nil {
- return
- }
- //发送邮件
- title:="研报阅读统计报表"
- fmt.Println("start send email")
- sendResult:=utils.SendEmailByHongze(title,"你好,上周研报阅读统计见附件。",utils.EmailSendToHzUsers,savePath)
- //sendResult:=utils.SendEmailByHongze(title,"你好,上周研报阅读统计见附件。",utils.EmailSendToMe,savePath)
- if sendResult {
- os.Remove(savePath)
- }
- fmt.Println("send result:",sendResult)
- fmt.Println("end send email")
- return nil
- }
|