123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- package services
- import (
- "encoding/json"
- "fmt"
- "github.com/beego/beego/v2/server/web/context"
- "hongze/hongze_mfyx/models"
- "hongze/hongze_mfyx/utils"
- "strings"
- "time"
- )
- func AddCygxPageHistoryRecord(user *models.WxUserItem, Ctx *context.Context) {
- item := new(models.CygxPageHistoryRecord)
- item.UserId = user.UserId
- item.CreateTime = time.Now()
- item.Mobile = user.Mobile
- item.Email = user.Email
- item.CompanyId = user.CompanyId
- item.CompanyName = user.CompanyName
- item.Router = Ctx.Request.RequestURI
- item.PageRouter = Ctx.Input.Query("PageRouter")
- if user.InviteCompany != "" {
- item.Router += "&From=" + user.InviteCompany
- }
- item.RegisterPlatform = utils.REGISTER_PLATFORM
- index := strings.Index(item.Router, "?")
- if index != -1 {
- item.Parameter = item.Router[index+1:]
- }
- if Ctx.Input.Method() == "POST" && string(Ctx.Input.RequestBody) != "" {
- item.Parameter = string(Ctx.Input.RequestBody)
- var pr models.PageRouter
- err := json.Unmarshal(Ctx.Input.RequestBody, &pr)
- if err != nil {
- fmt.Println(err)
- utils.FileLog.Info(err.Error())
- }
- item.PageRouter = pr.PageRouter
- }
- if strings.Contains(item.Router, "/api/article/detail") {
- //cacheKey := fmt.Sprint("uid:", user.UserId, "_Parameter:", item.Parameter)
- //isExist := utils.Rc.IsExist(cacheKey)
- //if !isExist {
- // setNX := utils.Rc.SetNX(cacheKey, user.Mobile, time.Second*10)
- // if !setNX {
- // go utils.SendAlarmMsg("记录用户阅读文章,设置Redis Key 过期时间失败:key"+cacheKey, 3)
- // }
- // return
- //}
- sliceParameter := strings.Split(item.Parameter, "&PageRouter=")
- cacheKey := fmt.Sprint("uid:", user.UserId, "_Parameter:", sliceParameter[0])
- isExist := utils.Rc.IsExist(cacheKey)
- if isExist {
- return
- }
- setNX := utils.Rc.SetNX(cacheKey, user.Mobile, time.Second*10)
- if !setNX {
- if !setNX {
- go utils.SendAlarmMsg("记录用户阅读文章,设置Redis Key 过期时间失败:key"+cacheKey, 3)
- }
- }
- }
- _, err := models.AddCygxPageHistoryRecord(item)
- if err != nil {
- fmt.Println(err)
- utils.FileLog.Info(err.Error())
- return
- }
- }
|