github.com/infraboard/keyauth@v0.8.1/apps/wxwork/impl/impl.go (about)

     1  package impl
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/infraboard/keyauth/apps/wxwork"
     7  
     8  	"go.mongodb.org/mongo-driver/mongo"
     9  	"go.mongodb.org/mongo-driver/mongo/options"
    10  	"go.mongodb.org/mongo-driver/x/bsonx"
    11  
    12  	"github.com/infraboard/keyauth/conf"
    13  	"github.com/infraboard/mcube/app"
    14  )
    15  
    16  var (
    17  	// Service 服务实例
    18  	svr = &service{}
    19  )
    20  
    21  type service struct {
    22  	col *mongo.Collection
    23  }
    24  
    25  func (s *service) Config() error {
    26  	db := conf.C().Mongo.GetDB()
    27  	ac := db.Collection("wxwork")
    28  
    29  	indexs := []mongo.IndexModel{
    30  		{
    31  			Keys:    bsonx.Doc{{Key: "corp_id", Value: bsonx.Int32(-1)}},
    32  			Options: options.Index().SetUnique(true),
    33  		},
    34  		{
    35  			Keys: bsonx.Doc{{Key: "create_at", Value: bsonx.Int32(-1)}},
    36  		},
    37  	}
    38  
    39  	_, err := ac.Indexes().CreateMany(context.Background(), indexs)
    40  	if err != nil {
    41  		return err
    42  	}
    43  
    44  	s.col = ac
    45  	return nil
    46  }
    47  
    48  func (s *service) Name() string {
    49  	return wxwork.AppName
    50  }
    51  
    52  func init() {
    53  	app.RegistryInternalApp(svr)
    54  }