|
@@ -2,13 +2,14 @@ package services
|
|
|
|
|
|
import (
|
|
|
"context"
|
|
|
+ "fmt"
|
|
|
"hongze/hongze_task/models"
|
|
|
"hongze/hongze_task/utils"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
|
|
|
-func StatisticsUserView(cont context.Context) (err error) {
|
|
|
+func StatisticsUserViewBak(cont context.Context) (err error) {
|
|
|
dateTime := time.Now().AddDate(0, 0, -1)
|
|
|
dateStr := dateTime.Format(utils.FormatDate)
|
|
|
count, err := models.GetUserViewStatisticsCount(dateStr)
|
|
@@ -150,5 +151,391 @@ func StatisticsUserView(cont context.Context) (err error) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ StatisticsCompanyView(dateTime)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+func StatisticsCompanyViewBak(dateTime time.Time) (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("err:", err)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ dateStr := dateTime.Format(utils.FormatDate)
|
|
|
+
|
|
|
+ count, err := models.GetCompanyViewStatisticsCount(dateStr)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if count > 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ companyViewMap := make(map[int]*models.CompanyViewTotalSlice)
|
|
|
+ {
|
|
|
+ list, tmpErr := models.GetCompanyViewMobileTotalList(dateStr)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range list {
|
|
|
+ companyViewMap[v.CompanyId] = v
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ {
|
|
|
+ list, tmpErr := models.GetCompanyViewEmailTotalList(dateStr)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range list {
|
|
|
+
|
|
|
+ if userViewStatistics, ok := companyViewMap[v.CompanyId]; ok {
|
|
|
+ userViewStatistics.Total += v.Total
|
|
|
+ } else {
|
|
|
+ companyViewMap[v.CompanyId] = v
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(companyViewMap) > 0 {
|
|
|
+ tmpList := make([]*models.CompanyViewStatistics, 0)
|
|
|
+ for _, companyView := range companyViewMap {
|
|
|
+ item := &models.CompanyViewStatistics{
|
|
|
+ CompanyId: companyView.CompanyId,
|
|
|
+ ViewNum: companyView.Total,
|
|
|
+ Date: dateTime,
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ }
|
|
|
+ tmpList = append(tmpList, item)
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(tmpList) > 0 {
|
|
|
+ err = models.AddMultiCompanyViewStatistics(tmpList)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ fmt.Println(dateStr, "end")
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+func StatisticsUserView(cont context.Context) (err error) {
|
|
|
+ dateTime := time.Now().AddDate(0, 0, -1)
|
|
|
+ statisticsUserView1Hour(dateTime)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+func StatisticsCompanyView(dateTime time.Time) (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("err:", err)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ dateStr := dateTime.Format(utils.FormatDate)
|
|
|
+
|
|
|
+ count, err := models.GetCompanyViewStatisticsCount(dateStr)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if count > 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ companyViewMap := make(map[int]*models.CompanyViewTotalSlice)
|
|
|
+ {
|
|
|
+ list, tmpErr := models.GetCompanyViewMobileTotalList(dateStr)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range list {
|
|
|
+ companyViewMap[v.CompanyId] = v
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ {
|
|
|
+ list, tmpErr := models.GetCompanyViewEmailTotalList(dateStr)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range list {
|
|
|
+
|
|
|
+ if userViewStatistics, ok := companyViewMap[v.CompanyId]; ok {
|
|
|
+ userViewStatistics.Total += v.Total
|
|
|
+ } else {
|
|
|
+ companyViewMap[v.CompanyId] = v
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(companyViewMap) > 0 {
|
|
|
+ for _, companyView := range companyViewMap {
|
|
|
+ tmpCompanyViewStatistics, tmpErr := models.GetCompanyViewStatisticsByCompanyId(companyView.CompanyId, dateStr)
|
|
|
+ if tmpErr != nil {
|
|
|
+ if tmpErr.Error() == utils.ErrNoRow() {
|
|
|
+ item := &models.CompanyViewStatistics{
|
|
|
+ CompanyId: companyView.CompanyId,
|
|
|
+ ViewNum: companyView.Total,
|
|
|
+ Date: dateTime,
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ }
|
|
|
+ models.AddCompanyViewStatistics(item)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ tmpCompanyViewStatistics.ViewNum = companyView.Total
|
|
|
+ tmpCompanyViewStatistics.Update([]string{"ViewNum"})
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ fmt.Println(dateStr, "end")
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+func StatisticsUserView1Hour(cont context.Context) (err error) {
|
|
|
+
|
|
|
+ dateTime := time.Now()
|
|
|
+ statisticsUserView1Hour(dateTime)
|
|
|
+
|
|
|
+ StatisticsCompanyView1Hour(dateTime)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+func statisticsUserView1Hour(dateTime time.Time) (err error) {
|
|
|
+
|
|
|
+ dateStr := dateTime.Format(utils.FormatDate)
|
|
|
+
|
|
|
+ {
|
|
|
+ mobileViewMap := make(map[string]*models.UserViewMobileTotalSlice)
|
|
|
+
|
|
|
+ list, tmpErr := models.GetCountUserViewHistoryByMobiles(dateStr)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range list {
|
|
|
+ mobileViewMap[v.Mobile] = v
|
|
|
+ }
|
|
|
+
|
|
|
+ list, tmpErr = models.GetReportViewMaxTimeByMobiles(dateStr)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range list {
|
|
|
+ if userViewStatistics, ok := mobileViewMap[v.Mobile]; ok {
|
|
|
+ userViewStatistics.Total += v.Total
|
|
|
+ if v.ViewTime.After(userViewStatistics.ViewTime) {
|
|
|
+ userViewStatistics.ViewTime = v.ViewTime
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ mobileViewMap[v.Mobile] = v
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ list, tmpErr = models.GetAdvisoryCountUserViewHistoryByMobiles(dateStr)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range list {
|
|
|
+ if userViewStatistics, ok := mobileViewMap[v.Mobile]; ok {
|
|
|
+ userViewStatistics.Total += v.Total
|
|
|
+ if v.ViewTime.After(userViewStatistics.ViewTime) {
|
|
|
+ userViewStatistics.ViewTime = v.ViewTime
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ mobileViewMap[v.Mobile] = v
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(mobileViewMap) > 0 {
|
|
|
+ for mobile, userViewStatistics := range mobileViewMap {
|
|
|
+ tmpUserViewStatistics, tmpErr := models.GetUserViewStatisticsByMobile(mobile, dateStr)
|
|
|
+ if tmpErr != nil {
|
|
|
+ if tmpErr.Error() == utils.ErrNoRow() {
|
|
|
+ item := &models.UserViewStatistics{
|
|
|
+ Mobile: mobile,
|
|
|
+ RealName: userViewStatistics.RealName,
|
|
|
+ CompanyName: userViewStatistics.CompanyName,
|
|
|
+ ViewNum: userViewStatistics.Total,
|
|
|
+ LastViewTime: userViewStatistics.ViewTime,
|
|
|
+ Date: dateTime,
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ }
|
|
|
+ models.AddUserViewStatistics(item)
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ tmpUserViewStatistics.ViewNum = userViewStatistics.Total
|
|
|
+ tmpUserViewStatistics.LastViewTime = userViewStatistics.ViewTime
|
|
|
+ tmpUserViewStatistics.Update([]string{"ViewNum", "LastViewTime"})
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ {
|
|
|
+ emailViewMap := make(map[string]*models.UserViewEmailTotalSlice)
|
|
|
+
|
|
|
+ list, tmpErr := models.GetCountUserViewHistoryByEmails(dateStr)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range list {
|
|
|
+ emailViewMap[v.Email] = v
|
|
|
+ }
|
|
|
+
|
|
|
+ list, tmpErr = models.GetReportViewMaxTimeByEmails(dateStr)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range list {
|
|
|
+ if userViewStatistics, ok := emailViewMap[v.Email]; ok {
|
|
|
+ userViewStatistics.Total += v.Total
|
|
|
+ if v.ViewTime.After(userViewStatistics.ViewTime) {
|
|
|
+ userViewStatistics.ViewTime = v.ViewTime
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ emailViewMap[v.Email] = v
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ list, tmpErr = models.GetAdvisoryCountUserViewHistoryByEmails(dateStr)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range list {
|
|
|
+ if userViewStatistics, ok := emailViewMap[v.Email]; ok {
|
|
|
+ userViewStatistics.Total += v.Total
|
|
|
+ if v.ViewTime.After(userViewStatistics.ViewTime) {
|
|
|
+ userViewStatistics.ViewTime = v.ViewTime
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ emailViewMap[v.Email] = v
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(emailViewMap) > 0 {
|
|
|
+ for email, userViewStatistics := range emailViewMap {
|
|
|
+ tmpUserViewStatistics, tmpErr := models.GetUserViewStatisticsByEmail(email, dateStr)
|
|
|
+ if tmpErr != nil {
|
|
|
+ if tmpErr.Error() == utils.ErrNoRow() {
|
|
|
+ item := &models.UserViewStatistics{
|
|
|
+ Email: email,
|
|
|
+ RealName: userViewStatistics.RealName,
|
|
|
+ CompanyName: userViewStatistics.CompanyName,
|
|
|
+ ViewNum: userViewStatistics.Total,
|
|
|
+ LastViewTime: userViewStatistics.ViewTime,
|
|
|
+ Date: dateTime,
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ }
|
|
|
+ models.AddUserViewStatistics(item)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ tmpUserViewStatistics.ViewNum = userViewStatistics.Total
|
|
|
+ tmpUserViewStatistics.LastViewTime = userViewStatistics.ViewTime
|
|
|
+ tmpUserViewStatistics.Update([]string{"ViewNum", "LastViewTime"})
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ StatisticsCompanyView1Hour(dateTime)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+func StatisticsCompanyView1Hour(dateTime time.Time) (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("err:", err)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ dateStr := dateTime.Format(utils.FormatDate)
|
|
|
+
|
|
|
+
|
|
|
+ companyViewMap := make(map[int]*models.CompanyViewTotalSlice)
|
|
|
+ {
|
|
|
+ list, tmpErr := models.GetCompanyViewMobileTotalList(dateStr)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range list {
|
|
|
+ companyViewMap[v.CompanyId] = v
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ {
|
|
|
+ list, tmpErr := models.GetCompanyViewEmailTotalList(dateStr)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range list {
|
|
|
+
|
|
|
+ if userViewStatistics, ok := companyViewMap[v.CompanyId]; ok {
|
|
|
+ userViewStatistics.Total += v.Total
|
|
|
+ } else {
|
|
|
+ companyViewMap[v.CompanyId] = v
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(companyViewMap) > 0 {
|
|
|
+ for _, companyView := range companyViewMap {
|
|
|
+ tmpCompanyViewStatistics, tmpErr := models.GetCompanyViewStatisticsByCompanyId(companyView.CompanyId, dateStr)
|
|
|
+ if tmpErr != nil {
|
|
|
+ if tmpErr.Error() == utils.ErrNoRow() {
|
|
|
+ item := &models.CompanyViewStatistics{
|
|
|
+ CompanyId: companyView.CompanyId,
|
|
|
+ ViewNum: companyView.Total,
|
|
|
+ Date: dateTime,
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ }
|
|
|
+ models.AddCompanyViewStatistics(item)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ tmpCompanyViewStatistics.ViewNum = companyView.Total
|
|
|
+ tmpCompanyViewStatistics.Update([]string{"ViewNum"})
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ fmt.Println(dateStr, "end")
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|