getAgainSubUser.go 1.4 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. it := sess.DB("qfw").C("jy_subscribe").Find(g.Map{"s_event": "subscribe", "l_date": g.Map{"$gte": st.Unix(), "$lt": ed.Unix()}}).
  20. Select(g.Map{"s_m_openid": 1, "l_date": 1}).Iter()
  21. for _temp := make(map[string]interface{}); it.Next(&_temp); {
  22. var (
  23. s_m_openid = gconv.String(_temp["s_m_openid"])
  24. timeStamp = gconv.Int64(_temp["l_date"])
  25. )
  26. //是否有取关记录
  27. if count := db.MG.DB().Count("jy_subscribe", g.Map{"s_event": "unsubscribe", "$lt": st.Unix()}); count == 0 {
  28. continue
  29. }
  30. if mgoUserID := getUserIdByOpenid(s_m_openid); mgoUserID != "" {
  31. rData = append(rData, &AgainSubUserMsg{
  32. MgoUserID: mgoUserID,
  33. TimeStamp: timeStamp,
  34. })
  35. }
  36. _temp = make(map[string]interface{})
  37. }
  38. return nil
  39. }
  40. func getUserIdByOpenid(openId string) (userId string) {
  41. res, _ := db.MG.DB().FindOne("user", g.Map{"s_m_openid": openId})
  42. if res == nil || len(*res) == 0 {
  43. return
  44. }
  45. userId = mongodb.BsonIdToSId((*res)["_id"])
  46. return
  47. }