getAgainSubUser.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package public
  2. import (
  3. "app.yhyue.com/moapp/jybase/mongodb"
  4. "doFreeClueSign/db"
  5. "github.com/gogf/gf/v2/frame/g"
  6. "github.com/gogf/gf/v2/util/gconv"
  7. "time"
  8. )
  9. type AgainSubUserMsg struct {
  10. MgoUserID string
  11. TimeStamp int64 //关注时间
  12. }
  13. // GetAgainSubUser 再次关注用户列表
  14. func GetAgainSubUser(st, ed time.Time) (rData []*AgainSubUserMsg) {
  15. sess := db.MG.DB().GetMgoConn()
  16. if sess != nil {
  17. defer db.MG.DB().DestoryMongoConn(sess)
  18. }
  19. g.Dump("GetAgainSubUser-start", g.Map{"s_event": "subscribe", "l_date": g.Map{"$gte": st.Unix(), "$lt": ed.Unix()}})
  20. it := sess.DB("qfw").C("jy_subscribe").Find(g.Map{"s_event": "subscribe", "l_date": g.Map{"$gte": st.Unix(), "$lt": ed.Unix()}}).
  21. Select(g.Map{"s_m_openid": 1, "l_date": 1}).Iter()
  22. for _temp := make(map[string]interface{}); it.Next(&_temp); {
  23. var (
  24. s_m_openid = gconv.String(_temp["s_m_openid"])
  25. timeStamp = gconv.Int64(_temp["l_date"])
  26. )
  27. //是否有取关记录
  28. if count := db.MG.DB().Count("jy_subscribe", g.Map{"s_m_openid": s_m_openid, "s_event": "unsubscribe", "l_date": g.Map{"$lt": st.Unix()}}); count == 0 {
  29. continue
  30. }
  31. if mgoUserID := getUserIdByOpenid(s_m_openid); mgoUserID != "" {
  32. rData = append(rData, &AgainSubUserMsg{
  33. MgoUserID: mgoUserID,
  34. TimeStamp: timeStamp,
  35. })
  36. }
  37. _temp = make(map[string]interface{})
  38. }
  39. g.Dump("GetAgainSubUser-finish")
  40. return rData
  41. }
  42. func getUserIdByOpenid(openId string) (userId string) {
  43. res, _ := db.MG.DB().FindOne("user", g.Map{"s_m_openid": openId})
  44. if res == nil || len(*res) == 0 {
  45. return
  46. }
  47. userId = mongodb.BsonIdToSId((*res)["_id"])
  48. return
  49. }