github.com/infraboard/keyauth@v0.8.1/apps/user/impl/impl.go (about) 1 package impl 2 3 import ( 4 "context" 5 6 "github.com/infraboard/mcube/app" 7 "github.com/infraboard/mcube/logger" 8 "github.com/infraboard/mcube/logger/zap" 9 "go.mongodb.org/mongo-driver/mongo" 10 "go.mongodb.org/mongo-driver/x/bsonx" 11 "google.golang.org/grpc" 12 13 "github.com/infraboard/keyauth/apps/department" 14 "github.com/infraboard/keyauth/apps/domain" 15 "github.com/infraboard/keyauth/apps/policy" 16 "github.com/infraboard/keyauth/apps/user" 17 "github.com/infraboard/keyauth/conf" 18 ) 19 20 var ( 21 // Service 服务实例 22 svr = &service{} 23 ) 24 25 type service struct { 26 log logger.Logger 27 col *mongo.Collection 28 policy policy.ServiceServer 29 depart department.ServiceServer 30 domain domain.ServiceServer 31 32 user.UnimplementedServiceServer 33 } 34 35 func (s *service) Config() error { 36 s.policy = app.GetGrpcApp(policy.AppName).(policy.ServiceServer) 37 s.depart = app.GetGrpcApp(department.AppName).(department.ServiceServer) 38 s.domain = app.GetGrpcApp(domain.AppName).(domain.ServiceServer) 39 40 db := conf.C().Mongo.GetDB() 41 uc := db.Collection("user") 42 43 indexs := []mongo.IndexModel{ 44 { 45 Keys: bsonx.Doc{{Key: "create_at", Value: bsonx.Int32(-1)}}, 46 }, 47 { 48 Keys: bsonx.Doc{{Key: "department_id", Value: bsonx.Int32(-1)}}, 49 }, 50 } 51 52 _, err := uc.Indexes().CreateMany(context.Background(), indexs) 53 if err != nil { 54 return err 55 } 56 57 s.col = uc 58 s.log = zap.L().Named("User") 59 return nil 60 } 61 62 func (s *service) Name() string { 63 return user.AppName 64 } 65 66 func (s *service) Registry(server *grpc.Server) { 67 user.RegisterServiceServer(server, svr) 68 } 69 70 func init() { 71 app.RegistryGrpcApp(svr) 72 }