diff --git a/common/etcd/etcd.go b/common/etcd/etcd.go index 876931e..9b848bd 100644 --- a/common/etcd/etcd.go +++ b/common/etcd/etcd.go @@ -87,7 +87,6 @@ func (e *EtcdClient) PutWithLeasePrefix(prefix, key, val string, ttl int64) erro //每秒会续租一次,所以就会受到一次应答 //fmt.Println("收到自动续租应答:", keepResp.ID) } - logger.Debug(keepChan) } } diff --git a/models/role.go b/models/role.go index 902a2d4..de257ee 100644 --- a/models/role.go +++ b/models/role.go @@ -13,11 +13,11 @@ import ( type RoleModel struct { components.ISchema Role *pb.Role - Heros HeroMap - Teams TeamMap + Heros SchemaMap + Teams SchemaMap Prop *PropModel - lastSaveTs int64 + lastSaveTs int64 } func RoleExistByUid(uid string) *RoleModel { @@ -28,13 +28,12 @@ func RoleExistByUid(uid string) *RoleModel { return nil } - r := &RoleModel{ ISchema: NewSchema(data.Id, data), - Role: data, - Heros: make(HeroMap), - Teams: make(TeamMap), - Prop: new(PropModel), + Role: data, + Heros: make(SchemaMap), + Teams: make(SchemaMap), + Prop: new(PropModel), } r.LoadAll() return r @@ -44,14 +43,14 @@ func NewRole(id string) *RoleModel { data := &pb.Role{Id: id} m := &RoleModel{ ISchema: NewSchema(id, data), - Role: data, - Heros: make(HeroMap), - Teams: make(TeamMap), + Role: data, + Heros: make(SchemaMap), + Teams: make(SchemaMap), } return m } -func (m *RoleModel) InitRole() { +func (m *RoleModel) InitRole() { //init hero h1 := pb.Hero{ Id: common.SnowFlack.NextValStr(), @@ -121,12 +120,12 @@ func (m *RoleModel) LoadTeams() { logger.Error(err) return } - for _, team:= range teams { + for _, team := range teams { m.Teams[team.Id] = NewTeam(team) } } -func (m *RoleModel) LoadAll() { +func (m *RoleModel) LoadAll() { m.LoadHero() m.LoadTeams() } @@ -142,18 +141,17 @@ func (m *RoleModel) GetAllHero() []*pb.Hero { return h } -func (m *RoleModel) GetAllTeam() []*pb.Team{ +func (m *RoleModel) GetAllTeam() []*pb.Team { var t []*pb.Team - for _, team := range m.Teams{ - t = append(t, team.Team) + for _, team := range m.Teams { + t = append(t, team.(*TeamModel).Team) } return t } - func (m *RoleModel) AddHero(hero *pb.Hero) { h := NewHero(hero) - h .Create() + h.Create() m.Heros[hero.Id] = h } @@ -163,7 +161,6 @@ func (m *RoleModel) AddTeam(team *pb.Team) { m.Teams[team.Id] = t } - func (m *RoleModel) OnRecoverTimer(now int64) { m.saveRoleData(now) } @@ -174,7 +171,7 @@ func (m *RoleModel) OnOfflineEvent() { } func (m *RoleModel) saveRoleData(now int64) { - if now - m.lastSaveTs < common.SaveDataInterval { + if now-m.lastSaveTs < common.SaveDataInterval { return } atomic.StoreInt64(&m.lastSaveTs, now) @@ -187,12 +184,12 @@ func (m *RoleModel) saveRoleData(now int64) { } } - //mpObjs := []interface{}{m.Heros, m.Teams} - //for _, mpObj := range mpObjs { - // for _, v := range mpObj.(map[string]components.ISchema) { - // if v != nil { - // v.Update() - // } - // } - //} -} \ No newline at end of file + mpObjs := []SchemaMap{m.Heros, m.Teams} + for _, mpObj := range mpObjs { + for _, v := range mpObj { + if v != nil { + v.Update() + } + } + } +} diff --git a/models/schema.go b/models/schema.go index a743b2d..7461561 100644 --- a/models/schema.go +++ b/models/schema.go @@ -16,6 +16,8 @@ func WithSchemaDB(idb components.IDB) SchemaOption { } } +type SchemaMap map[string]components.ISchema + type Schema struct { db components.IDB reflectValue *reflect.Value @@ -23,7 +25,7 @@ type Schema struct { cacheFields map[string]interface{} - pri interface{} + pri interface{} schema interface{} } @@ -34,13 +36,13 @@ func NewSchema(key string, schema interface{}) *Schema { } sch := &Schema{ reflectValue: &s, - reflectType: s.Type(), - cacheFields: make(map[string]interface{}), - schema: schema, + reflectType: s.Type(), + cacheFields: make(map[string]interface{}), + schema: schema, } sch.db = mongoproxy.NewMongoColl(sch.GetSchemaName(), sch) - sch.pri = mongoproxy.GetBsonD(sch.getPriTag(), key) + sch.pri = mongoproxy.GetBsonD(sch.getPriTag(), key) return sch } @@ -58,9 +60,9 @@ func (s *Schema) FindIndex() (string, []string) { return strings.ToLower(s.reflectType.Name()), index } -func (s *Schema) Init() { +func (s *Schema) Init() { coll, keys := s.FindIndex() - for _, index := range keys { + for _, index := range keys { s.db.CreateTable() logger.Debug("InitDoc collect: %v, createIndex: %s", coll, index) diff --git a/models/team.go b/models/team.go index a2ec046..cb0f00f 100644 --- a/models/team.go +++ b/models/team.go @@ -1,20 +1,21 @@ package models import ( + "pro2d/common/components" "pro2d/pb" ) type TeamMap map[string]*TeamModel type TeamModel struct { - *Schema + components.ISchema Team *pb.Team } func NewTeam(data *pb.Team) *TeamModel { m := &TeamModel{ - Schema: NewSchema(data.Id, data), - Team: data, + ISchema: NewSchema(data.Id, data), + Team: data, } return m -} \ No newline at end of file +} -- libgit2 0.21.2