shareToaward_test.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package test
  2. import (
  3. "app.yhyue.com/moapp/jybase/common"
  4. "app.yhyue.com/moapp/jybase/mongodb"
  5. "testing"
  6. )
  7. func Test_Award(t *testing.T) {
  8. Mgo := &mongodb.MongodbSim{
  9. MongodbAddr: "192.168.3.206:27080",
  10. Size: 5,
  11. DbName: "qfw",
  12. UserName: "",
  13. Password: "",
  14. ReplSet: "",
  15. }
  16. Mgo.InitPool()
  17. query := map[string]interface{}{}
  18. query["i_shareCount"] = map[string]interface{}{
  19. "$gt": 0,
  20. "$lte": 4,
  21. }
  22. auser, _ := Mgo.Find("user", query, "", `{"_id":1}`, false, -1, -1)
  23. var users []string
  24. for _, v := range *auser {
  25. users = append(users, common.InterfaceToStr(v["_id"]))
  26. }
  27. q := map[string]interface{}{}
  28. qu := map[string]interface{}{}
  29. ndatas := []map[string]interface{}{}
  30. for _, u := range users {
  31. //q["$or"] = []map[string]interface{}{
  32. // {"share_uid": u},
  33. // {"shared_uid": u},
  34. //}
  35. q["share_uid"] = u
  36. data, _ := Mgo.Find("user_share", q, "createtime asc", `{"_id":1,"createtime":1}`, false, 0, 4)
  37. if len(*data) > 0 {
  38. for i, vv := range *data {
  39. if i <= 4 {
  40. ndata := map[string]interface{}{}
  41. ndata["userid"] = u
  42. ndata["award"] = "subvip"
  43. ndata["num"] = 7
  44. ndata["getway"] = "invite"
  45. ndata["date"] = vv["createtime"]
  46. ndata["activity_code"] = "inviteRegister"
  47. ndata["detail"] = ""
  48. ndatas = append(ndatas, ndata)
  49. }
  50. }
  51. }
  52. qu["shared_uid"] = u
  53. ds, _ := Mgo.FindOne("user_share", qu)
  54. if ds != nil && (*ds)["_id"] != nil {
  55. val := map[string]interface{}{}
  56. val["userid"] = u
  57. val["award"] = "subvip"
  58. val["num"] = 7
  59. val["getway"] = "invited"
  60. val["date"] = (*ds)["createtime"]
  61. val["activity_code"] = "inviteRegister"
  62. val["detail"] = ""
  63. ndatas = append(ndatas, val)
  64. }
  65. }
  66. Mgo.SaveBulk("activity_award", ndatas...)
  67. }