package db import ( "context" "fmt" "go_dreamfactory/comm" "go_dreamfactory/lego/core" "go_dreamfactory/lego/sys/log" "go_dreamfactory/lego/sys/mgo" r "go_dreamfactory/lego/sys/redis" "go_dreamfactory/pb" "math" "math/rand" "sync" "testing" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options" ) func Test_Id(t *testing.T) { wg := new(sync.WaitGroup) for i := 0; i < 3; i++ { wg.Add(1) go func(_wg *sync.WaitGroup) { for i := 0; i < 10; i++ { id := primitive.NewObjectID().Hex() fmt.Printf(id + "\n") } _wg.Done() }(wg) } wg.Wait() } func Test_2D(t *testing.T) { if sys, err := mgo.NewSys( mgo.SetMongodbUrl("mongodb://10.0.0.9:10013"), mgo.SetMongodbDatabase("dreamfactory2"), ); err != nil { fmt.Printf("err:%v", err) return } else { //创建uid索引 _index, err := sys.CreateIndex(core.SqlTable(comm.TableArena), mongo.IndexModel{ Keys: bson.M{"loc": "2dsphere"}, }) fmt.Printf("_index:%v err:%v \n", _index, err) port := []float64{2, float64(rand.Int31n(100)) / 1000.0} fmt.Printf("port:%v \n", port) if cursor, err := sys.Find(comm.TableArena, bson.M{ "dan": 2, // "loc": bson.M{ // "$geoWithin": bson.M{ // "$center": bson.A{port, 100}, // }, "loc": bson.M{ "$near": bson.M{ "$geometry": bson.M{"type": "Point", "coordinates": port}, "$maxDistance": 100000, }, }, // bson.A{[]int32{2 * 1000, rand.Int31n(100)}, 100} // "loc": bson.M{ // "$near": bson.M{ // "$geometry": bson.M{"type": "Point", "coordinates": []int32{dan * 1000, rand.Int31n(100)}}, // "$maxDistance": 100, // }, // }, }, options.Find().SetSkip(0).SetLimit(int64(5))); err != nil { fmt.Printf("err:%v", err) return } else { for cursor.Next(context.Background()) { temp := &pb.DBArenaUser{} if err = cursor.Decode(temp); err != nil { fmt.Printf("err:%v", err) return } fmt.Printf("temp:%v\n", temp.Uinfo.Uid) } } } } //测试api_getlist func Test_Json_RTask(t *testing.T) { if sys, err := r.NewSys( r.SetRedisType(r.Redis_Single), r.SetRedis_Single_Addr("10.0.0.9:10011"), r.SetRedis_Single_Password("li13451234"), r.SetRedis_Single_DB(3), ); err != nil { fmt.Printf("err:%v", err) return } else { // ret, err := json.MarshalMap(&pb.DBRtaskRecord{ // Id: "ASDASD", // Uid: "ASDASDASD", // Vals: map[int32]*pb.RtaskData{ // 1: {Data: map[int32]int32{1: 2}, Rtype: 2, Timestamp: 12312}, // }, // }) err = sys.HMSet("test001", &pb.DBRtaskRecord{ Id: "ASDASD", Uid: "ASDASDASD", Vals: map[int32]*pb.RtaskData{ 1: {Data: map[int32]int32{1: 2}, Rtype: 2, Timestamp: 12312}, }, }) fmt.Printf("err:%v", err) } // sys. // fmt.Printf("ret:%v err:%v", ret, err) // ret, err = json.MarshalMap(&TestData{ // Name: "asdasd", // Age: 10, // List: []string{"12asd3", "45sdaa6", "asdasd"}, // Map: map[string]interface{}{ // "asd": 586, // "asdasd": "asd1231", // }, // }) // fmt.Printf("ret:%v err:%v", ret, err) } func TestRa(t *testing.T) { if sys, err := r.NewSys( r.SetRedisType(r.Redis_Single), r.SetRedis_Single_Addr("10.0.0.9:10011"), r.SetRedis_Single_Password("li13451234"), r.SetRedis_Single_DB(3), ); err != nil { fmt.Printf("err:%v", err) return } else { pipe := sys.RedisPipe(context.TODO()) uids := []string{"dfli-plunder:dfli_65b3b051d7569e684039d273"} for _, uid := range uids { if err = pipe.Delete(uid); err != nil { log.Error("DBModel RedisDels", log.Field{Key: "err", Value: err.Error()}) return } } _, err = pipe.Exec() } } func TestUpdateMany(t *testing.T) { if sys, err := mgo.NewSys( mgo.SetMongodbUrl("mongodb://10.0.0.9:10013"), mgo.SetMongodbDatabase("dreamfactory3"), ); err != nil { fmt.Printf("err:%v", err) return } else { if _, err = sys.UpdateMany(core.SqlTable(comm.TablePlunder), bson.M{"uid": bson.M{"$in": []string{"dfli_65b3482e9da33e16bc36fa65", "dfli_65b348f156cd9edac8a01f1e"}}}, bson.M{"$set": bson.M{"landid": "liwei1dao"}}); err != nil { fmt.Printf("err:%v", err) return } } } func Test_Area(t *testing.T) { var ( k int32 = 30 red int32 = 110 bule int32 = 375 ) temp := float64(1 - 1/float32(1+float64(math.Pow(10, float64(float64(bule-red)/400))))) fmt.Println(temp) redChangeintegral := int32(float64(k) * temp) fmt.Println(redChangeintegral) // red.Changeintegral = int32(redactive.KValue * float32(1-1/float32(1+10^((bule.Integral-red.Integral)/400)))) // bule.Changeintegral = int32(buleactive.KValue * float32(0-1/float32(1+10^((red.Integral-bule.Integral)/400)))) }