package test import ( "app.yhyue.com/moapp/jybase/common" "app.yhyue.com/moapp/jybase/mongodb" "testing" ) func Test_Award(t *testing.T) { Mgo := &mongodb.MongodbSim{ MongodbAddr: "192.168.3.206:27080", Size: 5, DbName: "qfw", UserName: "", Password: "", ReplSet: "", } Mgo.InitPool() query := map[string]interface{}{} query["i_shareCount"] = map[string]interface{}{ "$gt": 0, "$lte": 4, } auser, _ := Mgo.Find("user", query, "", `{"_id":1}`, false, -1, -1) var users []string for _, v := range *auser { users = append(users, common.InterfaceToStr(v["_id"])) } q := map[string]interface{}{} qu := map[string]interface{}{} ndatas := []map[string]interface{}{} for _, u := range users { //q["$or"] = []map[string]interface{}{ // {"share_uid": u}, // {"shared_uid": u}, //} q["share_uid"] = u data, _ := Mgo.Find("user_share", q, "createtime asc", `{"_id":1,"createtime":1}`, false, 0, 4) if len(*data) > 0 { for i, vv := range *data { if i <= 4 { ndata := map[string]interface{}{} ndata["userid"] = u ndata["award"] = "subvip" ndata["num"] = 7 ndata["getway"] = "invite" ndata["date"] = vv["createtime"] ndata["activity_code"] = "inviteRegister" ndata["detail"] = "" ndatas = append(ndatas, ndata) } } } qu["shared_uid"] = u ds, _ := Mgo.FindOne("user_share", qu) if ds != nil && (*ds)["_id"] != nil { val := map[string]interface{}{} val["userid"] = u val["award"] = "subvip" val["num"] = 7 val["getway"] = "invited" val["date"] = (*ds)["createtime"] val["activity_code"] = "inviteRegister" val["detail"] = "" ndatas = append(ndatas, val) } } Mgo.SaveBulk("activity_award", ndatas...) }