123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541 |
- package services
- import (
- "context"
- "fmt"
- "hongze/hongze_task/models"
- "hongze/hongze_task/utils"
- "time"
- )
- func StatisticsUserViewBak(cont context.Context) (err error) {
- dateTime := time.Now().AddDate(0, 0, -1)
- dateStr := dateTime.Format(utils.FormatDate)
- count, err := models.GetUserViewStatisticsCount(dateStr)
- if err != nil {
- return
- }
- if count > 0 {
- 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
- 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 {
- tmpList := make([]*models.UserViewStatistics, 0)
- for mobile, userViewStatistics := range mobileViewMap {
- item := &models.UserViewStatistics{
- Mobile: mobile,
- RealName: userViewStatistics.RealName,
- CompanyName: userViewStatistics.CompanyName,
- ViewNum: userViewStatistics.Total,
- LastViewTime: userViewStatistics.ViewTime,
- Date: dateTime,
- CreateTime: time.Now(),
- }
- tmpList = append(tmpList, item)
- }
-
- 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
- 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 {
- tmpList := make([]*models.UserViewStatistics, 0)
- for email, userViewStatistics := range emailViewMap {
- item := &models.UserViewStatistics{
- Email: email,
- RealName: userViewStatistics.RealName,
- CompanyName: userViewStatistics.CompanyName,
- ViewNum: userViewStatistics.Total,
- LastViewTime: userViewStatistics.ViewTime,
- Date: dateTime,
- CreateTime: time.Now(),
- }
- tmpList = append(tmpList, item)
- }
-
- if len(tmpList) > 0 {
- _ = models.AddMultiUserViewStatistics(tmpList)
- }
- }
- }
- 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
- }
|