package models import ( "fmt" "pro2d/components/db" "pro2d/protos/pb" "strconv" ) type RoleModel struct { *db.MgoColl Role *pb.Role Heros HeroMap Teams *TeamModel Equip *pb.Equipment Prop *pb.Prop } func RoleExistByUid(uid string) (bool, *RoleModel){ data := &pb.Role{Uid: uid} if err := db.FindOne(db.GetBsonM("uid", uid), data); err != nil { return false, nil } return true, &RoleModel{ MgoColl: db.NewMongoColl(strconv.Itoa(int(data.Id)), data), Role: data, } } func NewRole(id int64) *RoleModel { data := &pb.Role{Id: id} m := &RoleModel{ MgoColl: db.NewMongoColl(strconv.Itoa(int(id)), data), Role: data, Heros: make(HeroMap), } return m } func (m *RoleModel) LoadAll() { } func (m *RoleModel) LoadHero() { } func (m *RoleModel) AddHero(hero *pb.Hero) { h := NewHero(hero.Id) h.Hero = hero h.Create() m.Heros[fmt.Sprintf("%d%d", m.Role.Id, h.Hero.Id)] = h }