|
@@ -9,7 +9,7 @@ import (
|
|
|
|
|
|
// StatisticsUserView 汇总统计表
|
|
|
func StatisticsUserView(cont context.Context) (err error) {
|
|
|
- dateTime := time.Now().AddDate(0, 0, 0)
|
|
|
+ dateTime := time.Now().AddDate(0, 0, -1)
|
|
|
dateStr := dateTime.Format(utils.FormatDate)
|
|
|
count, err := models.GetUserViewStatisticsCount(dateStr)
|
|
|
if err != nil {
|
|
@@ -152,3 +152,123 @@ func StatisticsUserView(cont context.Context) (err error) {
|
|
|
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+// FixStatisticsUserView 数据修复
|
|
|
+func FixStatisticsUserView(dateStr string) (err error) {
|
|
|
+ //dateTime := time.Now().AddDate(0, 0, 0)
|
|
|
+ //dateStr := dateTime.Format(utils.FormatDate)
|
|
|
+ dateTime, _ := time.Parse(utils.FormatDate, dateStr)
|
|
|
+
|
|
|
+ err = models.DeleteUserViewStatisticsCount(dateStr)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ {
|
|
|
+ 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
|
|
|
+ } 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
|
|
|
+ } else {
|
|
|
+ mobileViewMap[v.Mobile] = v
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(mobileViewMap) > 0 {
|
|
|
+ tmpList := make([]*models.UserViewStatistics, 0)
|
|
|
+ for mobile, userViewStatistics := range mobileViewMap {
|
|
|
+ item := &models.UserViewStatistics{
|
|
|
+ Mobile: mobile,
|
|
|
+ RealName: userViewStatistics.RealName,
|
|
|
+ CompanyName: userViewStatistics.CompanyName,
|
|
|
+ ViewNum: userViewStatistics.Total,
|
|
|
+ Date: dateTime,
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ }
|
|
|
+ //小于200条的时候,不插入数据库
|
|
|
+ if len(tmpList) < 200 {
|
|
|
+ tmpList = append(tmpList, item)
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ //大于200条的时候,才去插入数据库
|
|
|
+ _ = models.AddMultiUserViewStatistics(tmpList)
|
|
|
+ tmpList = make([]*models.UserViewStatistics, 0)
|
|
|
+ }
|
|
|
+ //最后出来后,如果还有数据未插入,那么再去批量插入数据库
|
|
|
+ if len(tmpList) > 0 {
|
|
|
+ _ = models.AddMultiUserViewStatistics(tmpList)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //邮箱
|
|
|
+ {
|
|
|
+ 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
|
|
|
+ } 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
|
|
|
+ } else {
|
|
|
+ emailViewMap[v.Email] = v
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|