role.go 851 Bytes
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
	}
	m := NewRole(data.Id)
	m.Load()
	return true, m
}

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
}