github.com/lianghucheng/zrddz@v0.0.0-20200923083010-c71f680932e2/src/game/internal/mongodb.go (about)

     1  package internal
     2  
     3  import (
     4  	"conf"
     5  
     6  	"github.com/name5566/leaf/db/mongodb"
     7  	"github.com/name5566/leaf/log"
     8  )
     9  
    10  var mongoDB *mongodb.DialContext
    11  
    12  var DB string
    13  
    14  func init() {
    15  	DB = conf.Server.DBName
    16  	// mongodb
    17  	if conf.Server.DBMaxConnNum <= 0 {
    18  		conf.Server.DBMaxConnNum = 100
    19  	}
    20  	db, err := mongodb.Dial(conf.Server.DBUrl, conf.Server.DBMaxConnNum)
    21  	if err != nil {
    22  		log.Fatal("dial mongodb error: %v", err)
    23  	}
    24  	mongoDB = db
    25  	initCollection()
    26  	initConfigData()
    27  }
    28  
    29  func initCollection() {
    30  	db := mongoDB
    31  	err := db.EnsureCounter(DB, "counters", "users")
    32  	if err != nil {
    33  		log.Fatal("ensure counter error: %v", err)
    34  	}
    35  	err = db.EnsureCounter(DB, "counters", "configs")
    36  	if err != nil {
    37  		log.Fatal("ensure counter error: %v", err)
    38  	}
    39  	err = db.EnsureCounter(DB, "counters", "totalresult")
    40  	if err != nil {
    41  		log.Fatal("ensure counter error: %v", err)
    42  	}
    43  	err = db.EnsureCounter(DB, "counters", "roundresult")
    44  	if err != nil {
    45  		log.Fatal("ensure counter error: %v", err)
    46  	}
    47  
    48  	err = db.EnsureUniqueIndex(DB, "users", []string{"accountid"})
    49  	if err != nil {
    50  		log.Fatal("ensure index error: %v", err)
    51  	}
    52  	err = db.EnsureUniqueIndex(DB, "users", []string{"unionid"})
    53  	if err != nil {
    54  		log.Fatal("ensure index error: %v", err)
    55  	}
    56  }
    57  
    58  func initConfigData() {
    59  	landlordConfigData = new(ConfigData)
    60  	landlordConfigData.initLandlord()
    61  }
    62  
    63  func mongoDBDestroy() {
    64  	mongoDB.Close()
    65  	mongoDB = nil
    66  }
    67  
    68  func mongoDBNextSeq(id string) (int, error) {
    69  	return mongoDB.NextSeq(DB, "counters", id)
    70  }