ee23102d
zhangqijia
支持mongo, grpc接服务器
|
1
2
3
|
package models
import (
|
eb417b0b
zhangqijia
reactor mongo
|
4
|
"fmt"
|
ee23102d
zhangqijia
支持mongo, grpc接服务器
|
5
|
"pro2d/protos/pb"
|
cad2b7f3
zhangqijia
reactor: 重构目录, 重构...
|
6
7
|
"pro2d/src/components/db"
"pro2d/src/components/logger"
|
ee23102d
zhangqijia
支持mongo, grpc接服务器
|
8
9
10
|
)
type RoleModel struct {
|
33ea26ab
zhangqijia
使用schema封装mongo
|
11
|
*db.Schema
|
cad2b7f3
zhangqijia
reactor: 重构目录, 重构...
|
12
|
Role *pb.Role
|
eb417b0b
zhangqijia
reactor mongo
|
13
|
Heros HeroMap
|
1584eb4b
zhangqijia
修复创建唯一索引的bug
|
14
|
Teams *TeamModel
|
6f0d72bd
zhangqijia
定时器功能完善优化
|
15
16
|
Equip *EquipModels
Prop *PropModels
|
ee23102d
zhangqijia
支持mongo, grpc接服务器
|
17
18
|
}
|
cad2b7f3
zhangqijia
reactor: 重构目录, 重构...
|
19
|
func RoleExistByUid(uid string) *RoleModel {
|
1584eb4b
zhangqijia
修复创建唯一索引的bug
|
20
21
22
|
data := &pb.Role{Uid: uid}
if err := db.FindOne(db.GetBsonM("uid", uid), data); err != nil {
|
cad2b7f3
zhangqijia
reactor: 重构目录, 重构...
|
23
|
logger.Error("Role exist err: %v", err)
|
9644352a
zhangqijia
登录服改为http,游戏服改为长连...
|
24
|
return nil
|
ee23102d
zhangqijia
支持mongo, grpc接服务器
|
25
|
}
|
f7f4beb5
zhangqijia
新增grpc平滑关闭,修复crea...
|
26
|
|
6f0d72bd
zhangqijia
定时器功能完善优化
|
27
28
|
r := &RoleModel{
|
33ea26ab
zhangqijia
使用schema封装mongo
|
29
|
Schema: db.NewSchema(data.Id, data),
|
cad2b7f3
zhangqijia
reactor: 重构目录, 重构...
|
30
|
Role: data,
|
6f0d72bd
zhangqijia
定时器功能完善优化
|
31
32
33
34
|
Heros: make(HeroMap),
Teams: new(TeamModel),
Equip: new(EquipModels),
Prop: new(PropModels),
|
f7f4beb5
zhangqijia
新增grpc平滑关闭,修复crea...
|
35
|
}
|
6f0d72bd
zhangqijia
定时器功能完善优化
|
36
37
|
r.LoadAll()
return r
|
ee23102d
zhangqijia
支持mongo, grpc接服务器
|
38
39
|
}
|
33ea26ab
zhangqijia
使用schema封装mongo
|
40
|
func NewRole(id string) *RoleModel {
|
1584eb4b
zhangqijia
修复创建唯一索引的bug
|
41
|
data := &pb.Role{Id: id}
|
ee23102d
zhangqijia
支持mongo, grpc接服务器
|
42
|
m := &RoleModel{
|
33ea26ab
zhangqijia
使用schema封装mongo
|
43
|
Schema: db.NewSchema(id, data),
|
cad2b7f3
zhangqijia
reactor: 重构目录, 重构...
|
44
45
|
Role: data,
Heros: make(HeroMap),
|
6f0d72bd
zhangqijia
定时器功能完善优化
|
46
47
48
|
Teams: new(TeamModel),
Equip: new(EquipModels),
Prop: new(PropModels),
|
ee23102d
zhangqijia
支持mongo, grpc接服务器
|
49
|
}
|
ee23102d
zhangqijia
支持mongo, grpc接服务器
|
50
51
52
|
return m
}
|
6f0d72bd
zhangqijia
定时器功能完善优化
|
53
|
func (m *RoleModel) LoadHero() {
|
33ea26ab
zhangqijia
使用schema封装mongo
|
54
|
m.Heros["test"] = NewHero("")
|
6f0d72bd
zhangqijia
定时器功能完善优化
|
55
|
m.Heros["test"].Hero = &pb.Hero{
|
33ea26ab
zhangqijia
使用schema封装mongo
|
56
|
Id: "1",
|
6f0d72bd
zhangqijia
定时器功能完善优化
|
57
58
59
60
61
62
63
|
RoleId: m.Role.Id,
Type: 1,
Level: 1,
ReinCount: 0,
ReinPoint: 0,
Equipments: "123123",
}
|
ee23102d
zhangqijia
支持mongo, grpc接服务器
|
64
|
}
|
eb417b0b
zhangqijia
reactor mongo
|
65
|
|
6f0d72bd
zhangqijia
定时器功能完善优化
|
66
|
func (m *RoleModel) LoadTeams() {
|
33ea26ab
zhangqijia
使用schema封装mongo
|
67
|
m.Teams = NewTeam("0")
|
6f0d72bd
zhangqijia
定时器功能完善优化
|
68
|
m.Teams.Team = &pb.Team{
|
33ea26ab
zhangqijia
使用schema封装mongo
|
69
|
Id: "1",
|
6f0d72bd
zhangqijia
定时器功能完善优化
|
70
71
72
73
74
|
HeroIds: "1",
}
}
func (m *RoleModel) LoadEquips() {
|
33ea26ab
zhangqijia
使用schema封装mongo
|
75
|
m.Equip = NewEquip("0")
|
6f0d72bd
zhangqijia
定时器功能完善优化
|
76
|
m.Equip.Equip = &pb.Equipment{
|
33ea26ab
zhangqijia
使用schema封装mongo
|
77
|
Id: "0",
|
6f0d72bd
zhangqijia
定时器功能完善优化
|
78
79
80
81
82
83
84
85
86
87
88
|
RoleId: m.Role.Id,
Type: 0,
Equip: false,
EnhanceLevel: false,
}
}
func (m *RoleModel) LoadAll() {
m.LoadHero()
m.LoadTeams()
m.LoadEquips()
|
eb417b0b
zhangqijia
reactor mongo
|
89
90
91
|
}
func (m *RoleModel) AddHero(hero *pb.Hero) {
|
3592dfd3
zhangqijia
重构models, 索引唯一索引
|
92
93
|
h := NewHero(hero.Id)
h.Hero = hero
|
eb417b0b
zhangqijia
reactor mongo
|
94
|
h.Create()
|
33ea26ab
zhangqijia
使用schema封装mongo
|
95
|
m.Heros[fmt.Sprintf("%s%s", m.Role.Id, h.Hero.Id)] = h
|
6f0d72bd
zhangqijia
定时器功能完善优化
|
96
97
98
99
100
101
102
103
104
|
}
func (m *RoleModel) GetAllHero() map[string]*pb.Hero {
h := make(map[string]*pb.Hero)
for k, hero := range m.Heros {
h[k] = hero.Hero
}
return h
}
|