Commit e172952cc2ff820506226554636fac95d1c3abd5

Authored by zhangqijia
1 parent 30feca39

feat: email 系统搭建

以及gm发送邮件接口完成
1 -Subproject commit e062c5009b60e14a5d2eca3d1cfef903bce81d4c 1 +Subproject commit 38aa59df0f03d95f39de9a9379b600cdd80d19a2
cmd/gameserver/action/EmailAction.go 0 → 100644
@@ -0,0 +1,131 @@ @@ -0,0 +1,131 @@
  1 +package action
  2 +
  3 +import (
  4 + "github.com/golang/protobuf/proto"
  5 + "go.mongodb.org/mongo-driver/bson"
  6 + "pro2d/common"
  7 + "pro2d/common/components"
  8 + "pro2d/common/db/mongoproxy"
  9 + "pro2d/common/logger"
  10 + "pro2d/models"
  11 + "pro2d/pb"
  12 +)
  13 +
  14 +/*
  15 +EmailListRpc 邮件列表
  16 +*/
  17 +func EmailListRpc(role *models.RoleModel, msg components.IMessage) (int32, interface{}) {
  18 + // del
  19 + err := role.DelExpireEmail()
  20 + if err != nil {
  21 + logger.Error(err.Error())
  22 + }
  23 +
  24 + // load
  25 + emails := role.LoadEmails()
  26 + return 0, emails
  27 +}
  28 +
  29 +func GetEmailPBAttachMents(email *pb.Email) string {
  30 + if email.Status == 2 {
  31 + return ""
  32 + }
  33 + return email.Attachments
  34 +}
  35 +
  36 +/*
  37 +EmailDrawRpc 打开所有邮件奖励
  38 + 2 邮件不存在
  39 +*/
  40 +func EmailDrawRpc(role *models.RoleModel, msg components.IMessage) (int32, interface{}) {
  41 + req := pb.EmailDrawReq{}
  42 + if err := proto.Unmarshal(msg.GetData(), &req); err != nil {
  43 + logger.Error("loginRpc err: %v", err)
  44 + return 1, nil
  45 + }
  46 + var emails []*pb.Email
  47 +
  48 + if req.Id == "" {
  49 + // 打开所有邮件
  50 + emails = role.LoadEmails()
  51 + } else {
  52 + // 打开一个邮件
  53 + email := models.NewEmailModel(req.Id)
  54 + if err := email.Load(); err != nil {
  55 + return 2, nil
  56 + }
  57 + emails = []*pb.Email{email.Data}
  58 + }
  59 +
  60 + var ids []string
  61 + reward := make(common.IMapStringNum)
  62 + for _, e := range emails {
  63 + attachments := GetEmailPBAttachMents(e)
  64 + if attachments == "" {
  65 + continue
  66 + }
  67 + email := models.NewEmailModelPB(e)
  68 + email.SetProperty("status", 2)
  69 + email.Log(role, 2)
  70 + email.Update()
  71 + ids = append(ids, e.Id)
  72 + for k, v := range common.StringToMapNum(email.Data.Attachments) {
  73 + tmp, ok := reward[k]
  74 + if !ok {
  75 + reward[k] = v
  76 + } else {
  77 + reward[k] = tmp + v
  78 + }
  79 + }
  80 + }
  81 + role.Award(reward)
  82 +
  83 + return 0, &pb.EmailDrawRsp{Ids: ids, Reward: common.MapNumToString(reward)}
  84 +}
  85 +
  86 +func EmailCheckRpc(role *models.RoleModel, msg components.IMessage) (int32, interface{}) {
  87 + req := pb.EmailCheckRar{}
  88 + if err := proto.Unmarshal(msg.GetData(), &req); err != nil {
  89 + logger.Error("loginRpc err: %v", err)
  90 + return 1, nil
  91 + }
  92 + email := models.NewEmailModel(req.Id)
  93 + if err := email.Load(); err != nil {
  94 + return 2, nil
  95 + }
  96 +
  97 + email.SetProperty("status", 1)
  98 + email.Log(role, 1)
  99 + email.Update()
  100 + return 0, nil
  101 +}
  102 +
  103 +func EmailDelRpc(role *models.RoleModel, msg components.IMessage) (int32, interface{}) {
  104 + req := pb.EmailDelReq{}
  105 + if err := proto.Unmarshal(msg.GetData(), &req); err != nil {
  106 + logger.Error("loginRpc err: %v", err)
  107 + return 1, nil
  108 + }
  109 +
  110 + var result []string
  111 + emails := role.LoadEmails()
  112 + for _, email := range emails {
  113 + attachments := GetEmailPBAttachMents(email)
  114 + if email.Status == 2 || (attachments == "" && email.Status == 1) {
  115 + result = append(result, email.Id)
  116 + models.NewEmailModelPB(email).Log(role, 3)
  117 +
  118 + role.MyLog("mail_action", &pb.LogConf{
  119 + Desc: "del_mail",
  120 + Int1: email.Id,
  121 + })
  122 + }
  123 + }
  124 +
  125 + filter := bson.D{{"roleid", role.Data.Id}, {"id", bson.D{{"$in", result}}}}
  126 + if err := mongoproxy.DelMany("email", filter); err != nil {
  127 + return 2, nil
  128 + }
  129 +
  130 + return 0, &pb.EmailDelRsp{Ids: result}
  131 +}
cmd/gameserver/action/HeroAction.go
@@ -39,8 +39,8 @@ func EquipmentDelRpc(role *models.RoleModel, msg components.IMessage) (int32, in @@ -39,8 +39,8 @@ func EquipmentDelRpc(role *models.RoleModel, msg components.IMessage) (int32, in
39 39
40 /* 40 /*
41 HeroUpLevelRpc 英雄升级 41 HeroUpLevelRpc 英雄升级
42 - 2 item不存在  
43 - 3 itemType错误 42 + 2 item 不存在
  43 + 3 itemType 错误
44 4 itemExp 不存在 44 4 itemExp 不存在
45 5 英雄不存在 45 5 英雄不存在
46 6 消耗物品失败 46 6 消耗物品失败
cmd/gameserver/action/protocode.go
@@ -9,14 +9,18 @@ func GetActionMap() map[interface{}]interface{} { @@ -9,14 +9,18 @@ func GetActionMap() map[interface{}]interface{} {
9 logger.Debug("init protocode...") 9 logger.Debug("init protocode...")
10 am := make(map[interface{}]interface{}) 10 am := make(map[interface{}]interface{})
11 am[uint32(pb.ProtoCode_HeartRpc)] = HeartRpc 11 am[uint32(pb.ProtoCode_HeartRpc)] = HeartRpc
12 - am[uint32(pb.ProtoCode_RoleStartBattleRpc)] = RoleStartBattleRpc  
13 - am[uint32(pb.ProtoCode_RoleEndBattleRpc)] = RoleEndBattleRpc  
14 - am[uint32(pb.ProtoCode_HeroUpLevelRpc)] = HeroUpLevelRpc  
15 am[uint32(pb.ProtoCode_CreateRpc)] = CreateRpc 12 am[uint32(pb.ProtoCode_CreateRpc)] = CreateRpc
16 am[uint32(pb.ProtoCode_ChangeTeamRpc)] = ChangeTeamRpc 13 am[uint32(pb.ProtoCode_ChangeTeamRpc)] = ChangeTeamRpc
17 am[uint32(pb.ProtoCode_HeroEquipReferRpc)] = HeroEquipReferRpc 14 am[uint32(pb.ProtoCode_HeroEquipReferRpc)] = HeroEquipReferRpc
18 am[uint32(pb.ProtoCode_RoleClearItemsRpc)] = RoleClearItemsRpc 15 am[uint32(pb.ProtoCode_RoleClearItemsRpc)] = RoleClearItemsRpc
  16 + am[uint32(pb.ProtoCode_RoleStartBattleRpc)] = RoleStartBattleRpc
  17 + am[uint32(pb.ProtoCode_RoleEndBattleRpc)] = RoleEndBattleRpc
19 am[uint32(pb.ProtoCode_EquipmentDelRpc)] = EquipmentDelRpc 18 am[uint32(pb.ProtoCode_EquipmentDelRpc)] = EquipmentDelRpc
  19 + am[uint32(pb.ProtoCode_HeroUpLevelRpc)] = HeroUpLevelRpc
  20 + am[uint32(pb.ProtoCode_EmailListRpc)] = EmailListRpc
  21 + am[uint32(pb.ProtoCode_EmailDrawRpc)] = EmailDrawRpc
  22 + am[uint32(pb.ProtoCode_EmailCheckRpc)] = EmailCheckRpc
  23 + am[uint32(pb.ProtoCode_EmailDelRpc)] = EmailDelRpc
20 24
21 return am 25 return am
22 -}  
23 \ No newline at end of file 26 \ No newline at end of file
  27 +}
cmd/gameserver/gmaction/GmAction.go
@@ -2,6 +2,8 @@ @@ -2,6 +2,8 @@
2 package gmaction 2 package gmaction
3 3
4 import ( 4 import (
  5 + "pro2d/common"
  6 + "pro2d/common/logger"
5 "pro2d/models" 7 "pro2d/models"
6 "pro2d/pb" 8 "pro2d/pb"
7 "strconv" 9 "strconv"
@@ -91,3 +93,45 @@ func (gm *GmAction) UpdatePackLimit(role *models.RoleModel, params GMParams) { @@ -91,3 +93,45 @@ func (gm *GmAction) UpdatePackLimit(role *models.RoleModel, params GMParams) {
91 93
92 role.UpdateProperties(update, true) 94 role.UpdateProperties(update, true)
93 } 95 }
  96 +
  97 +/*GMEmail 发送邮件
  98 +参数 &title= &stitle= &content= &attachments=
  99 +*/
  100 +func (gm *GmAction) GMEmail(role *models.RoleModel, params GMParams) {
  101 + title, ok := params["title"]
  102 + if !ok {
  103 + title = ""
  104 + }
  105 + stitle, ok := params["stitle"]
  106 + if !ok {
  107 + stitle = ""
  108 + }
  109 + content, ok := params["content"]
  110 + if !ok {
  111 + content = ""
  112 + }
  113 + attachments, ok := params["attachments"]
  114 + if !ok {
  115 + attachments = ""
  116 + }
  117 + id, err := common.GetNextEmail()
  118 + if err != nil {
  119 + logger.Error(err)
  120 + return
  121 + }
  122 + email := &pb.Email{
  123 + Id: id,
  124 + RoleId: role.Data.Id,
  125 + Title: title,
  126 + Stitle: stitle,
  127 + Content: content,
  128 + Attachments: attachments,
  129 + Status: 0,
  130 + CreateTime: common.Timex(),
  131 + }
  132 + m := models.NewEmailModelPB(email)
  133 + err = m.Create()
  134 + if err != nil {
  135 + logger.Error(err)
  136 + }
  137 +}
cmd/test/action/protocode.go
@@ -7,18 +7,22 @@ import ( @@ -7,18 +7,22 @@ import (
7 func GetTestActionMap() map[interface{}]interface{} { 7 func GetTestActionMap() map[interface{}]interface{} {
8 am := make(map[interface{}]interface{}) 8 am := make(map[interface{}]interface{})
9 am[uint32(pb.ProtoCode_HeartRpc)] = HeartRsp 9 am[uint32(pb.ProtoCode_HeartRpc)] = HeartRsp
10 - am[uint32(pb.ProtoCode_RoleStartBattleRpc)] = RoleStartBattleRsp  
11 - am[uint32(pb.ProtoCode_RoleEndBattleRpc)] = RoleEndBattleRsp  
12 - am[uint32(pb.ProtoCode_HeroUpLevelRpc)] = HeroUpLevelRsp  
13 am[uint32(pb.ProtoCode_CreateRpc)] = CreateRsp 10 am[uint32(pb.ProtoCode_CreateRpc)] = CreateRsp
14 am[uint32(pb.ProtoCode_ChangeTeamRpc)] = ChangeTeamRsp 11 am[uint32(pb.ProtoCode_ChangeTeamRpc)] = ChangeTeamRsp
15 am[uint32(pb.ProtoCode_HeroEquipReferRpc)] = HeroEquipReferRsp 12 am[uint32(pb.ProtoCode_HeroEquipReferRpc)] = HeroEquipReferRsp
16 am[uint32(pb.ProtoCode_RoleClearItemsRpc)] = RoleClearItemsRsp 13 am[uint32(pb.ProtoCode_RoleClearItemsRpc)] = RoleClearItemsRsp
  14 + am[uint32(pb.ProtoCode_RoleStartBattleRpc)] = RoleStartBattleRsp
  15 + am[uint32(pb.ProtoCode_RoleEndBattleRpc)] = RoleEndBattleRsp
17 am[uint32(pb.ProtoCode_EquipmentDelRpc)] = EquipmentDelRsp 16 am[uint32(pb.ProtoCode_EquipmentDelRpc)] = EquipmentDelRsp
  17 + am[uint32(pb.ProtoCode_HeroUpLevelRpc)] = HeroUpLevelRsp
  18 + am[uint32(pb.ProtoCode_EmailListRpc)] = EmailListRsp
  19 + am[uint32(pb.ProtoCode_EmailDrawRpc)] = EmailDrawRsp
  20 + am[uint32(pb.ProtoCode_EmailCheckRpc)] = EmailCheckRsp
  21 + am[uint32(pb.ProtoCode_EmailDelRpc)] = EmailDelRsp
18 am[uint32(pb.ProtoCode_DisConnectNty)] = DisConnectNty 22 am[uint32(pb.ProtoCode_DisConnectNty)] = DisConnectNty
19 am[uint32(pb.ProtoCode_RoleUpdatePropertyNty)] = RoleUpdatePropertyNty 23 am[uint32(pb.ProtoCode_RoleUpdatePropertyNty)] = RoleUpdatePropertyNty
20 am[uint32(pb.ProtoCode_RoleUpdateItemsNty)] = RoleUpdateItemsNty 24 am[uint32(pb.ProtoCode_RoleUpdateItemsNty)] = RoleUpdateItemsNty
21 am[uint32(pb.ProtoCode_EquipmentAddNty)] = EquipmentAddNty 25 am[uint32(pb.ProtoCode_EquipmentAddNty)] = EquipmentAddNty
22 26
23 return am 27 return am
24 -}  
25 \ No newline at end of file 28 \ No newline at end of file
  29 +}
common/commonFunc.go
@@ -54,6 +54,26 @@ func GetNextUId() (string, error) { @@ -54,6 +54,26 @@ func GetNextUId() (string, error) {
54 return fmt.Sprintf("%d", ID), nil 54 return fmt.Sprintf("%d", ID), nil
55 } 55 }
56 56
  57 +func GetNextEmail() (string, error) {
  58 + relay, err := redisproxy.HGET(fmt.Sprintf(AutoIncrement, GlobalSconf.ID), "email")
  59 + if err != nil {
  60 + return "", err
  61 + }
  62 +
  63 + var ID int64 = 0
  64 + if relay == nil {
  65 + ID = 1
  66 + redisproxy.HSET(fmt.Sprintf(AutoIncrement, GlobalSconf.ID), "email", ID)
  67 + } else {
  68 + relay, err = redisproxy.HINCRBY(fmt.Sprintf(AutoIncrement, GlobalSconf.ID), "email", 1)
  69 + ID, err = redis.Int64(relay, err)
  70 + if err != nil {
  71 + return "", err
  72 + }
  73 + }
  74 + return fmt.Sprintf("%d", ID), nil
  75 +}
  76 +
57 type IMapString map[string]interface{} 77 type IMapString map[string]interface{}
58 type IMapStringNum map[string]int32 78 type IMapStringNum map[string]int32
59 79
@@ -13,11 +13,12 @@ const ( @@ -13,11 +13,12 @@ const (
13 SaveDataInterval = 5 //s 13 SaveDataInterval = 5 //s
14 14
15 //自增id相关 15 //自增id相关
16 - MaxCommNum = 1000000  
17 - MaxRoleNum = MaxCommNum  
18 - MaxHeroNum = 100  
19 - MaxTeamNum = 10  
20 - MaxUidNum = 90000 16 + MaxCommNum = 1000000
  17 + MaxRoleNum = MaxCommNum
  18 + MaxHeroNum = 100
  19 + MaxTeamNum = 10
  20 + MaxUidNum = 90000
  21 + MaxEmailNum = 10
21 22
22 AutoIncrement = "pro2d_autoincrement_set:%d" 23 AutoIncrement = "pro2d_autoincrement_set:%d"
23 AutoIncrementHero = "pro2d_autoincrement:hero" 24 AutoIncrementHero = "pro2d_autoincrement:hero"
common/db/mongoproxy/mongoplugin.go
@@ -83,6 +83,14 @@ func FindMany(coll string, key string, val interface{}, schema interface{}) erro @@ -83,6 +83,14 @@ func FindMany(coll string, key string, val interface{}, schema interface{}) erro
83 return r.All(context.TODO(), schema) 83 return r.All(context.TODO(), schema)
84 } 84 }
85 85
  86 +func FindManyFilter(coll string, filter bson.D, opts *options.FindOptions, schema interface{}) error {
  87 + r, err := mongoDatabase.Collection(coll).Find(context.TODO(), filter, opts)
  88 + if err != nil {
  89 + return err
  90 + }
  91 + return r.All(context.TODO(), schema)
  92 +}
  93 +
86 func DelOne(coll string, key string, value interface{}) error { 94 func DelOne(coll string, key string, value interface{}) error {
87 filter := bson.D{{key, value}} 95 filter := bson.D{{key, value}}
88 _, err := mongoDatabase.Collection(coll).DeleteOne(context.TODO(), filter, nil) 96 _, err := mongoDatabase.Collection(coll).DeleteOne(context.TODO(), filter, nil)
@@ -46,12 +46,12 @@ func GameModels() STOIncrement { @@ -46,12 +46,12 @@ func GameModels() STOIncrement {
46 &pb.Role{}: common.MaxCommNum, 46 &pb.Role{}: common.MaxCommNum,
47 &pb.Equipment{}: 0, 47 &pb.Equipment{}: 0,
48 &pb.Hero{}: 0, 48 &pb.Hero{}: 0,
49 - &pb.Prop{}: 0,  
50 &pb.Team{}: 0, 49 &pb.Team{}: 0,
  50 + &pb.Email{}: common.MaxEmailNum,
51 } 51 }
52 } 52 }
53 53
54 -//初始化表自增id 54 +// InitAutoIncreUidTable 初始化表自增id
55 func (d *DBSeed) InitAutoIncreUidTable(schema STOIncrement) { 55 func (d *DBSeed) InitAutoIncreUidTable(schema STOIncrement) {
56 for s, b := range schema { 56 for s, b := range schema {
57 if b <= 0 { 57 if b <= 0 {
models/email.go 0 → 100644
@@ -0,0 +1,59 @@ @@ -0,0 +1,59 @@
  1 +package models
  2 +
  3 +import (
  4 + "pro2d/common"
  5 + "pro2d/common/components"
  6 + "pro2d/pb"
  7 +)
  8 +
  9 +const EMAIL_LIMIT = 50
  10 +
  11 +type EmailModel struct {
  12 + components.ISchema
  13 + Data *pb.Email
  14 +}
  15 +
  16 +func NewEmailModel(id string) *EmailModel {
  17 + data := &pb.Email{Id: id}
  18 + m := &EmailModel{
  19 + ISchema: NewSchema(data.Id, data),
  20 + Data: data,
  21 + }
  22 + return m
  23 +}
  24 +
  25 +func NewEmailModelPB(email *pb.Email) *EmailModel {
  26 + m := &EmailModel{
  27 + ISchema: NewSchema(email.Id, email),
  28 + Data: email,
  29 + }
  30 + return m
  31 +}
  32 +
  33 +func InsertEmail(email *pb.Email) bool {
  34 + data := &EmailModel{
  35 + ISchema: NewSchema(email.Id, email),
  36 + Data: email,
  37 + }
  38 +
  39 + data.SetProperty("createtime", common.Timex())
  40 + err := data.Create()
  41 + if err != nil {
  42 + return false
  43 + }
  44 + return true
  45 +}
  46 +
  47 +func (m *EmailModel) Log(role *RoleModel, action int32) {
  48 + //{desc = "onMail", int1 = self:getProperty("id"), int2 = self:getProperty("status"), cint1 = self:getProperty("emailId"),
  49 + // short1 = action, key1=self:getProperty("title"), key2=self:getProperty("attachments")})
  50 + role.MyLog("mail_action", &pb.LogConf{
  51 + Desc: "onMail",
  52 + //Int1: email.Data.Id,
  53 + Int2: string(m.Data.Status),
  54 + //Cint1:
  55 + Short1: action,
  56 + Key1: m.Data.Title,
  57 + Key2: m.Data.Attachments,
  58 + })
  59 +}
models/prop.go deleted
@@ -1,23 +0,0 @@ @@ -1,23 +0,0 @@
1 -package models  
2 -  
3 -import (  
4 - "pro2d/common/components"  
5 - "pro2d/pb"  
6 -)  
7 -  
8 -type PropModel struct {  
9 - components.ISchema  
10 - Data *pb.Prop  
11 -}  
12 -  
13 -func NewProp(id string) *PropModel {  
14 - data := &pb.Prop{  
15 - Id: id,  
16 - }  
17 - m := &PropModel{  
18 - ISchema: NewSchema(id, data),  
19 - Data: data,  
20 - }  
21 -  
22 - return m  
23 -}  
@@ -17,7 +17,6 @@ type RoleModel struct { @@ -17,7 +17,6 @@ type RoleModel struct {
17 Heros SchemaMap 17 Heros SchemaMap
18 Teams SchemaMap 18 Teams SchemaMap
19 Equipments SchemaMap 19 Equipments SchemaMap
20 - Prop *PropModel  
21 Items common.IMapStringNum //背包 20 Items common.IMapStringNum //背包
22 21
23 lastSaveTs int64 22 lastSaveTs int64
@@ -40,7 +39,6 @@ func RoleExistByUid(uid string) *RoleModel { @@ -40,7 +39,6 @@ func RoleExistByUid(uid string) *RoleModel {
40 Heros: make(SchemaMap), 39 Heros: make(SchemaMap),
41 Teams: make(SchemaMap), 40 Teams: make(SchemaMap),
42 Equipments: make(SchemaMap), 41 Equipments: make(SchemaMap),
43 - Prop: new(PropModel),  
44 Items: make(common.IMapStringNum), 42 Items: make(common.IMapStringNum),
45 } 43 }
46 r.Load() 44 r.Load()
@@ -56,7 +54,6 @@ func NewRole(id string) *RoleModel { @@ -56,7 +54,6 @@ func NewRole(id string) *RoleModel {
56 Heros: make(SchemaMap), 54 Heros: make(SchemaMap),
57 Teams: make(SchemaMap), 55 Teams: make(SchemaMap),
58 Equipments: make(SchemaMap), 56 Equipments: make(SchemaMap),
59 - Prop: new(PropModel),  
60 Items: make(common.IMapStringNum), 57 Items: make(common.IMapStringNum),
61 } 58 }
62 return m 59 return m
@@ -166,7 +163,7 @@ func (m *RoleModel) LoadTeams() { @@ -166,7 +163,7 @@ func (m *RoleModel) LoadTeams() {
166 } 163 }
167 } 164 }
168 165
169 -//加载背包数据到内存 166 +// LoadItems 加载背包数据到内存
170 func (m *RoleModel) LoadItems() { 167 func (m *RoleModel) LoadItems() {
171 m.Items = common.StringToMapNum(m.Data.Items) 168 m.Items = common.StringToMapNum(m.Data.Items)
172 } 169 }
models/RoleLog.go renamed to models/roleLog.go
@@ -5,6 +5,7 @@ import ( @@ -5,6 +5,7 @@ import (
5 "fmt" 5 "fmt"
6 "pro2d/common" 6 "pro2d/common"
7 "pro2d/common/logger" 7 "pro2d/common/logger"
  8 + "pro2d/pb"
8 "sync/atomic" 9 "sync/atomic"
9 ) 10 )
10 11
@@ -16,41 +17,26 @@ var LogType = map[string]string{ @@ -16,41 +17,26 @@ var LogType = map[string]string{
16 "in_equip": "common", 17 "in_equip": "common",
17 "out_equip": "common", 18 "out_equip": "common",
18 19
  20 + "mail_action": "common",
19 "role_action": "common", 21 "role_action": "common",
20 } 22 }
21 23
22 -var commonRoleField = []string{  
23 - "id",  
24 - "uid",  
25 - "name",  
26 - "device",  
27 - "level",  
28 -}  
29 -  
30 -func (m *RoleModel) MyLog(logType string, content map[string]interface{}) { 24 +func (m *RoleModel) MyLog(logType string, content *pb.LogConf) {
31 _, ok := LogType[logType] 25 _, ok := LogType[logType]
32 if !ok { 26 if !ok {
33 logger.Error("LOG ERROR: new logType [%s] need Add Maping.", logType) 27 logger.Error("LOG ERROR: new logType [%s] need Add Maping.", logType)
34 return 28 return
35 } 29 }
36 30
37 - doc := make(map[string]interface{})  
38 - for _, field := range commonRoleField {  
39 - if content[field] != nil {  
40 - logger.Error("LOG ERROR: logType [%s] had field [%s] overwrite default.", logType, field)  
41 - } 31 + content.Id = m.Data.Id
  32 + content.Uid = m.Data.Uid
  33 + content.Name = m.Data.Nick
  34 + content.Device = m.Data.Device
  35 + content.Level = m.Data.Level
  36 + content.Ucode = m.GetActionUnicode()
42 37
43 - v := m.GetProperty(field)  
44 - if v != nil {  
45 - doc[field] = v  
46 - }  
47 - }  
48 - content["ucode"] = m.GetActionUnicode()  
49 - for field, value := range content {  
50 - doc[field] = value  
51 - }  
52 - doc["@type"] = logType  
53 - j, err := json.Marshal(doc) 38 + content.Typ = logType
  39 + j, err := json.Marshal(content)
54 if err != nil { 40 if err != nil {
55 logger.Error("LOG ERROR: logType [%s] json.Marshal", logType) 41 logger.Error("LOG ERROR: logType [%s] json.Marshal", logType)
56 return 42 return
models/rolePlugin.go
@@ -3,7 +3,10 @@ package models @@ -3,7 +3,10 @@ package models
3 import ( 3 import (
4 "fmt" 4 "fmt"
5 "github.com/golang/protobuf/proto" 5 "github.com/golang/protobuf/proto"
  6 + "go.mongodb.org/mongo-driver/bson"
  7 + "go.mongodb.org/mongo-driver/mongo/options"
6 "pro2d/common" 8 "pro2d/common"
  9 + "pro2d/common/db/mongoproxy"
7 "pro2d/common/logger" 10 "pro2d/common/logger"
8 "pro2d/csvdata" 11 "pro2d/csvdata"
9 "pro2d/pb" 12 "pro2d/pb"
@@ -256,3 +259,56 @@ func (m *RoleModel) EquipmentRefer(equipId, heroId string, refer bool, pos int32 @@ -256,3 +259,56 @@ func (m *RoleModel) EquipmentRefer(equipId, heroId string, refer bool, pos int32
256 } 259 }
257 return 0 260 return 0
258 } 261 }
  262 +
  263 +func (m *RoleModel) DelExpireEmail() error {
  264 + filter := bson.D{{"roleid", m.Data.Id}}
  265 + sort := bson.D{
  266 + {"createtime", -1},
  267 + }
  268 +
  269 + var limit int64 = 10000
  270 + var skip int64 = EMAIL_LIMIT
  271 + //查询条件
  272 + opts := &options.FindOptions{
  273 + Sort: sort,
  274 + Limit: &limit,
  275 + Skip: &skip,
  276 + }
  277 + emails := make([]*pb.Email, EMAIL_LIMIT)
  278 + err := mongoproxy.FindManyFilter("email", filter, opts, &emails)
  279 + if err != nil {
  280 + return err
  281 + }
  282 +
  283 + var ids []string
  284 + for _, email := range emails {
  285 + ids = append(ids, email.Id)
  286 + }
  287 + filter = append(filter, bson.E{Key: "$in", Value: ids})
  288 + err = mongoproxy.DelMany("email", filter)
  289 + if err != nil {
  290 + return err
  291 + }
  292 +
  293 + return nil
  294 +}
  295 +
  296 +func (m *RoleModel) LoadEmails() []*pb.Email {
  297 + //filter := bson.D{{"roleid", m.Data.Id}}
  298 + //sort := bson.D{
  299 + // {"createtime", -1},
  300 + //}
  301 +
  302 + //var limit int64 = EMAIL_LIMIT
  303 + ////查询条件
  304 + //opts := &options.FindOptions{
  305 + // Sort: sort,
  306 + // Limit: &limit,
  307 + //}
  308 + emails := make([]*pb.Email, EMAIL_LIMIT)
  309 + err := mongoproxy.FindMany("email", "roleid", m.Data.Id, &emails)
  310 + if err != nil {
  311 + return nil
  312 + }
  313 + return emails
  314 +}
@@ -1094,6 +1094,325 @@ func (x *HeroUpLevelRsp) GetHero() *Hero { @@ -1094,6 +1094,325 @@ func (x *HeroUpLevelRsp) GetHero() *Hero {
1094 return nil 1094 return nil
1095 } 1095 }
1096 1096
  1097 +type EmailListReq struct {
  1098 + state protoimpl.MessageState
  1099 + sizeCache protoimpl.SizeCache
  1100 + unknownFields protoimpl.UnknownFields
  1101 +}
  1102 +
  1103 +func (x *EmailListReq) Reset() {
  1104 + *x = EmailListReq{}
  1105 + if protoimpl.UnsafeEnabled {
  1106 + mi := &file_game_proto_msgTypes[20]
  1107 + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1108 + ms.StoreMessageInfo(mi)
  1109 + }
  1110 +}
  1111 +
  1112 +func (x *EmailListReq) String() string {
  1113 + return protoimpl.X.MessageStringOf(x)
  1114 +}
  1115 +
  1116 +func (*EmailListReq) ProtoMessage() {}
  1117 +
  1118 +func (x *EmailListReq) ProtoReflect() protoreflect.Message {
  1119 + mi := &file_game_proto_msgTypes[20]
  1120 + if protoimpl.UnsafeEnabled && x != nil {
  1121 + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1122 + if ms.LoadMessageInfo() == nil {
  1123 + ms.StoreMessageInfo(mi)
  1124 + }
  1125 + return ms
  1126 + }
  1127 + return mi.MessageOf(x)
  1128 +}
  1129 +
  1130 +// Deprecated: Use EmailListReq.ProtoReflect.Descriptor instead.
  1131 +func (*EmailListReq) Descriptor() ([]byte, []int) {
  1132 + return file_game_proto_rawDescGZIP(), []int{20}
  1133 +}
  1134 +
  1135 +type EmailListRsp struct {
  1136 + state protoimpl.MessageState
  1137 + sizeCache protoimpl.SizeCache
  1138 + unknownFields protoimpl.UnknownFields
  1139 +
  1140 + Emails []*Email `protobuf:"bytes,1,rep,name=emails,proto3" json:"emails,omitempty"`
  1141 +}
  1142 +
  1143 +func (x *EmailListRsp) Reset() {
  1144 + *x = EmailListRsp{}
  1145 + if protoimpl.UnsafeEnabled {
  1146 + mi := &file_game_proto_msgTypes[21]
  1147 + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1148 + ms.StoreMessageInfo(mi)
  1149 + }
  1150 +}
  1151 +
  1152 +func (x *EmailListRsp) String() string {
  1153 + return protoimpl.X.MessageStringOf(x)
  1154 +}
  1155 +
  1156 +func (*EmailListRsp) ProtoMessage() {}
  1157 +
  1158 +func (x *EmailListRsp) ProtoReflect() protoreflect.Message {
  1159 + mi := &file_game_proto_msgTypes[21]
  1160 + if protoimpl.UnsafeEnabled && x != nil {
  1161 + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1162 + if ms.LoadMessageInfo() == nil {
  1163 + ms.StoreMessageInfo(mi)
  1164 + }
  1165 + return ms
  1166 + }
  1167 + return mi.MessageOf(x)
  1168 +}
  1169 +
  1170 +// Deprecated: Use EmailListRsp.ProtoReflect.Descriptor instead.
  1171 +func (*EmailListRsp) Descriptor() ([]byte, []int) {
  1172 + return file_game_proto_rawDescGZIP(), []int{21}
  1173 +}
  1174 +
  1175 +func (x *EmailListRsp) GetEmails() []*Email {
  1176 + if x != nil {
  1177 + return x.Emails
  1178 + }
  1179 + return nil
  1180 +}
  1181 +
  1182 +type EmailDrawReq struct {
  1183 + state protoimpl.MessageState
  1184 + sizeCache protoimpl.SizeCache
  1185 + unknownFields protoimpl.UnknownFields
  1186 +
  1187 + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
  1188 +}
  1189 +
  1190 +func (x *EmailDrawReq) Reset() {
  1191 + *x = EmailDrawReq{}
  1192 + if protoimpl.UnsafeEnabled {
  1193 + mi := &file_game_proto_msgTypes[22]
  1194 + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1195 + ms.StoreMessageInfo(mi)
  1196 + }
  1197 +}
  1198 +
  1199 +func (x *EmailDrawReq) String() string {
  1200 + return protoimpl.X.MessageStringOf(x)
  1201 +}
  1202 +
  1203 +func (*EmailDrawReq) ProtoMessage() {}
  1204 +
  1205 +func (x *EmailDrawReq) ProtoReflect() protoreflect.Message {
  1206 + mi := &file_game_proto_msgTypes[22]
  1207 + if protoimpl.UnsafeEnabled && x != nil {
  1208 + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1209 + if ms.LoadMessageInfo() == nil {
  1210 + ms.StoreMessageInfo(mi)
  1211 + }
  1212 + return ms
  1213 + }
  1214 + return mi.MessageOf(x)
  1215 +}
  1216 +
  1217 +// Deprecated: Use EmailDrawReq.ProtoReflect.Descriptor instead.
  1218 +func (*EmailDrawReq) Descriptor() ([]byte, []int) {
  1219 + return file_game_proto_rawDescGZIP(), []int{22}
  1220 +}
  1221 +
  1222 +func (x *EmailDrawReq) GetId() string {
  1223 + if x != nil {
  1224 + return x.Id
  1225 + }
  1226 + return ""
  1227 +}
  1228 +
  1229 +type EmailDrawRsp struct {
  1230 + state protoimpl.MessageState
  1231 + sizeCache protoimpl.SizeCache
  1232 + unknownFields protoimpl.UnknownFields
  1233 +
  1234 + Ids []string `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"`
  1235 + Reward string `protobuf:"bytes,2,opt,name=reward,proto3" json:"reward,omitempty"`
  1236 +}
  1237 +
  1238 +func (x *EmailDrawRsp) Reset() {
  1239 + *x = EmailDrawRsp{}
  1240 + if protoimpl.UnsafeEnabled {
  1241 + mi := &file_game_proto_msgTypes[23]
  1242 + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1243 + ms.StoreMessageInfo(mi)
  1244 + }
  1245 +}
  1246 +
  1247 +func (x *EmailDrawRsp) String() string {
  1248 + return protoimpl.X.MessageStringOf(x)
  1249 +}
  1250 +
  1251 +func (*EmailDrawRsp) ProtoMessage() {}
  1252 +
  1253 +func (x *EmailDrawRsp) ProtoReflect() protoreflect.Message {
  1254 + mi := &file_game_proto_msgTypes[23]
  1255 + if protoimpl.UnsafeEnabled && x != nil {
  1256 + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1257 + if ms.LoadMessageInfo() == nil {
  1258 + ms.StoreMessageInfo(mi)
  1259 + }
  1260 + return ms
  1261 + }
  1262 + return mi.MessageOf(x)
  1263 +}
  1264 +
  1265 +// Deprecated: Use EmailDrawRsp.ProtoReflect.Descriptor instead.
  1266 +func (*EmailDrawRsp) Descriptor() ([]byte, []int) {
  1267 + return file_game_proto_rawDescGZIP(), []int{23}
  1268 +}
  1269 +
  1270 +func (x *EmailDrawRsp) GetIds() []string {
  1271 + if x != nil {
  1272 + return x.Ids
  1273 + }
  1274 + return nil
  1275 +}
  1276 +
  1277 +func (x *EmailDrawRsp) GetReward() string {
  1278 + if x != nil {
  1279 + return x.Reward
  1280 + }
  1281 + return ""
  1282 +}
  1283 +
  1284 +type EmailCheckRar struct {
  1285 + state protoimpl.MessageState
  1286 + sizeCache protoimpl.SizeCache
  1287 + unknownFields protoimpl.UnknownFields
  1288 +
  1289 + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
  1290 +}
  1291 +
  1292 +func (x *EmailCheckRar) Reset() {
  1293 + *x = EmailCheckRar{}
  1294 + if protoimpl.UnsafeEnabled {
  1295 + mi := &file_game_proto_msgTypes[24]
  1296 + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1297 + ms.StoreMessageInfo(mi)
  1298 + }
  1299 +}
  1300 +
  1301 +func (x *EmailCheckRar) String() string {
  1302 + return protoimpl.X.MessageStringOf(x)
  1303 +}
  1304 +
  1305 +func (*EmailCheckRar) ProtoMessage() {}
  1306 +
  1307 +func (x *EmailCheckRar) ProtoReflect() protoreflect.Message {
  1308 + mi := &file_game_proto_msgTypes[24]
  1309 + if protoimpl.UnsafeEnabled && x != nil {
  1310 + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1311 + if ms.LoadMessageInfo() == nil {
  1312 + ms.StoreMessageInfo(mi)
  1313 + }
  1314 + return ms
  1315 + }
  1316 + return mi.MessageOf(x)
  1317 +}
  1318 +
  1319 +// Deprecated: Use EmailCheckRar.ProtoReflect.Descriptor instead.
  1320 +func (*EmailCheckRar) Descriptor() ([]byte, []int) {
  1321 + return file_game_proto_rawDescGZIP(), []int{24}
  1322 +}
  1323 +
  1324 +func (x *EmailCheckRar) GetId() string {
  1325 + if x != nil {
  1326 + return x.Id
  1327 + }
  1328 + return ""
  1329 +}
  1330 +
  1331 +type EmailDelReq struct {
  1332 + state protoimpl.MessageState
  1333 + sizeCache protoimpl.SizeCache
  1334 + unknownFields protoimpl.UnknownFields
  1335 +}
  1336 +
  1337 +func (x *EmailDelReq) Reset() {
  1338 + *x = EmailDelReq{}
  1339 + if protoimpl.UnsafeEnabled {
  1340 + mi := &file_game_proto_msgTypes[25]
  1341 + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1342 + ms.StoreMessageInfo(mi)
  1343 + }
  1344 +}
  1345 +
  1346 +func (x *EmailDelReq) String() string {
  1347 + return protoimpl.X.MessageStringOf(x)
  1348 +}
  1349 +
  1350 +func (*EmailDelReq) ProtoMessage() {}
  1351 +
  1352 +func (x *EmailDelReq) ProtoReflect() protoreflect.Message {
  1353 + mi := &file_game_proto_msgTypes[25]
  1354 + if protoimpl.UnsafeEnabled && x != nil {
  1355 + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1356 + if ms.LoadMessageInfo() == nil {
  1357 + ms.StoreMessageInfo(mi)
  1358 + }
  1359 + return ms
  1360 + }
  1361 + return mi.MessageOf(x)
  1362 +}
  1363 +
  1364 +// Deprecated: Use EmailDelReq.ProtoReflect.Descriptor instead.
  1365 +func (*EmailDelReq) Descriptor() ([]byte, []int) {
  1366 + return file_game_proto_rawDescGZIP(), []int{25}
  1367 +}
  1368 +
  1369 +type EmailDelRsp struct {
  1370 + state protoimpl.MessageState
  1371 + sizeCache protoimpl.SizeCache
  1372 + unknownFields protoimpl.UnknownFields
  1373 +
  1374 + Ids []string `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"`
  1375 +}
  1376 +
  1377 +func (x *EmailDelRsp) Reset() {
  1378 + *x = EmailDelRsp{}
  1379 + if protoimpl.UnsafeEnabled {
  1380 + mi := &file_game_proto_msgTypes[26]
  1381 + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1382 + ms.StoreMessageInfo(mi)
  1383 + }
  1384 +}
  1385 +
  1386 +func (x *EmailDelRsp) String() string {
  1387 + return protoimpl.X.MessageStringOf(x)
  1388 +}
  1389 +
  1390 +func (*EmailDelRsp) ProtoMessage() {}
  1391 +
  1392 +func (x *EmailDelRsp) ProtoReflect() protoreflect.Message {
  1393 + mi := &file_game_proto_msgTypes[26]
  1394 + if protoimpl.UnsafeEnabled && x != nil {
  1395 + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1396 + if ms.LoadMessageInfo() == nil {
  1397 + ms.StoreMessageInfo(mi)
  1398 + }
  1399 + return ms
  1400 + }
  1401 + return mi.MessageOf(x)
  1402 +}
  1403 +
  1404 +// Deprecated: Use EmailDelRsp.ProtoReflect.Descriptor instead.
  1405 +func (*EmailDelRsp) Descriptor() ([]byte, []int) {
  1406 + return file_game_proto_rawDescGZIP(), []int{26}
  1407 +}
  1408 +
  1409 +func (x *EmailDelRsp) GetIds() []string {
  1410 + if x != nil {
  1411 + return x.Ids
  1412 + }
  1413 + return nil
  1414 +}
  1415 +
1097 var File_game_proto protoreflect.FileDescriptor 1416 var File_game_proto protoreflect.FileDescriptor
1098 1417
1099 var file_game_proto_rawDesc = []byte{ 1418 var file_game_proto_rawDesc = []byte{
@@ -1185,8 +1504,23 @@ var file_game_proto_rawDesc = []byte{ @@ -1185,8 +1504,23 @@ var file_game_proto_rawDesc = []byte{
1185 0x65, 0x6d, 0x73, 0x22, 0x32, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x55, 0x70, 0x4c, 0x65, 0x76, 1504 0x65, 0x6d, 0x73, 0x22, 0x32, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x55, 0x70, 0x4c, 0x65, 0x76,
1186 0x65, 0x6c, 0x52, 0x73, 0x70, 0x12, 0x20, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 1505 0x65, 0x6c, 0x52, 0x73, 0x70, 0x12, 0x20, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20,
1187 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x48, 0x65, 0x72, 1506 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x48, 0x65, 0x72,
1188 - 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x70, 0x62,  
1189 - 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 1507 + 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x22, 0x0e, 0x0a, 0x0c, 0x45, 0x6d, 0x61, 0x69, 0x6c,
  1508 + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22, 0x35, 0x0a, 0x0c, 0x45, 0x6d, 0x61, 0x69, 0x6c,
  1509 + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x06, 0x65, 0x6d, 0x61, 0x69, 0x6c,
  1510 + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73,
  1511 + 0x2e, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x06, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x1e,
  1512 + 0x0a, 0x0c, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x71, 0x12, 0x0e,
  1513 + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x38,
  1514 + 0x0a, 0x0c, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x44, 0x72, 0x61, 0x77, 0x52, 0x73, 0x70, 0x12, 0x10,
  1515 + 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x69, 0x64, 0x73,
  1516 + 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
  1517 + 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x1f, 0x0a, 0x0d, 0x45, 0x6d, 0x61, 0x69,
  1518 + 0x6c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x61, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
  1519 + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x0d, 0x0a, 0x0b, 0x45, 0x6d, 0x61,
  1520 + 0x69, 0x6c, 0x44, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x22, 0x1f, 0x0a, 0x0b, 0x45, 0x6d, 0x61, 0x69,
  1521 + 0x6c, 0x44, 0x65, 0x6c, 0x52, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x01,
  1522 + 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x69, 0x64, 0x73, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f,
  1523 + 0x70, 0x62, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
1190 } 1524 }
1191 1525
1192 var ( 1526 var (
@@ -1201,7 +1535,7 @@ func file_game_proto_rawDescGZIP() []byte { @@ -1201,7 +1535,7 @@ func file_game_proto_rawDescGZIP() []byte {
1201 return file_game_proto_rawDescData 1535 return file_game_proto_rawDescData
1202 } 1536 }
1203 1537
1204 -var file_game_proto_msgTypes = make([]protoimpl.MessageInfo, 20) 1538 +var file_game_proto_msgTypes = make([]protoimpl.MessageInfo, 27)
1205 var file_game_proto_goTypes = []interface{}{ 1539 var file_game_proto_goTypes = []interface{}{
1206 (*HeartReq)(nil), // 0: game.HeartReq 1540 (*HeartReq)(nil), // 0: game.HeartReq
1207 (*HeartRsp)(nil), // 1: game.HeartRsp 1541 (*HeartRsp)(nil), // 1: game.HeartRsp
@@ -1223,27 +1557,36 @@ var file_game_proto_goTypes = []interface{}{ @@ -1223,27 +1557,36 @@ var file_game_proto_goTypes = []interface{}{
1223 (*EquipmentAddNty)(nil), // 17: game.EquipmentAddNty 1557 (*EquipmentAddNty)(nil), // 17: game.EquipmentAddNty
1224 (*HeroUpLevelReq)(nil), // 18: game.HeroUpLevelReq 1558 (*HeroUpLevelReq)(nil), // 18: game.HeroUpLevelReq
1225 (*HeroUpLevelRsp)(nil), // 19: game.HeroUpLevelRsp 1559 (*HeroUpLevelRsp)(nil), // 19: game.HeroUpLevelRsp
1226 - (*Role)(nil), // 20: models.Role  
1227 - (*Hero)(nil), // 21: models.Hero  
1228 - (*Team)(nil), // 22: models.Team  
1229 - (*Equipment)(nil), // 23: models.Equipment 1560 + (*EmailListReq)(nil), // 20: game.EmailListReq
  1561 + (*EmailListRsp)(nil), // 21: game.EmailListRsp
  1562 + (*EmailDrawReq)(nil), // 22: game.EmailDrawReq
  1563 + (*EmailDrawRsp)(nil), // 23: game.EmailDrawRsp
  1564 + (*EmailCheckRar)(nil), // 24: game.EmailCheckRar
  1565 + (*EmailDelReq)(nil), // 25: game.EmailDelReq
  1566 + (*EmailDelRsp)(nil), // 26: game.EmailDelRsp
  1567 + (*Role)(nil), // 27: models.Role
  1568 + (*Hero)(nil), // 28: models.Hero
  1569 + (*Team)(nil), // 29: models.Team
  1570 + (*Equipment)(nil), // 30: models.Equipment
  1571 + (*Email)(nil), // 31: models.Email
1230 } 1572 }
1231 var file_game_proto_depIdxs = []int32{ 1573 var file_game_proto_depIdxs = []int32{
1232 - 20, // 0: game.LoginRsp.role:type_name -> models.Role  
1233 - 21, // 1: game.LoginRsp.hero:type_name -> models.Hero  
1234 - 22, // 2: game.LoginRsp.team:type_name -> models.Team  
1235 - 23, // 3: game.LoginRsp.equipments:type_name -> models.Equipment  
1236 - 22, // 4: game.ChangeTeamRar.team:type_name -> models.Team 1574 + 27, // 0: game.LoginRsp.role:type_name -> models.Role
  1575 + 28, // 1: game.LoginRsp.hero:type_name -> models.Hero
  1576 + 29, // 2: game.LoginRsp.team:type_name -> models.Team
  1577 + 30, // 3: game.LoginRsp.equipments:type_name -> models.Equipment
  1578 + 29, // 4: game.ChangeTeamRar.team:type_name -> models.Team
1237 7, // 5: game.HeroEquipReferRar.equipIds:type_name -> game.EquipInfo 1579 7, // 5: game.HeroEquipReferRar.equipIds:type_name -> game.EquipInfo
1238 - 20, // 6: game.RoleUpdatePropertyNty.role:type_name -> models.Role  
1239 - 21, // 7: game.RoleEndBattleRsp.hero:type_name -> models.Hero  
1240 - 23, // 8: game.EquipmentAddNty.equip:type_name -> models.Equipment  
1241 - 21, // 9: game.HeroUpLevelRsp.hero:type_name -> models.Hero  
1242 - 10, // [10:10] is the sub-list for method output_type  
1243 - 10, // [10:10] is the sub-list for method input_type  
1244 - 10, // [10:10] is the sub-list for extension type_name  
1245 - 10, // [10:10] is the sub-list for extension extendee  
1246 - 0, // [0:10] is the sub-list for field type_name 1580 + 27, // 6: game.RoleUpdatePropertyNty.role:type_name -> models.Role
  1581 + 28, // 7: game.RoleEndBattleRsp.hero:type_name -> models.Hero
  1582 + 30, // 8: game.EquipmentAddNty.equip:type_name -> models.Equipment
  1583 + 28, // 9: game.HeroUpLevelRsp.hero:type_name -> models.Hero
  1584 + 31, // 10: game.EmailListRsp.emails:type_name -> models.Email
  1585 + 11, // [11:11] is the sub-list for method output_type
  1586 + 11, // [11:11] is the sub-list for method input_type
  1587 + 11, // [11:11] is the sub-list for extension type_name
  1588 + 11, // [11:11] is the sub-list for extension extendee
  1589 + 0, // [0:11] is the sub-list for field type_name
1247 } 1590 }
1248 1591
1249 func init() { file_game_proto_init() } 1592 func init() { file_game_proto_init() }
@@ -1493,6 +1836,90 @@ func file_game_proto_init() { @@ -1493,6 +1836,90 @@ func file_game_proto_init() {
1493 return nil 1836 return nil
1494 } 1837 }
1495 } 1838 }
  1839 + file_game_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
  1840 + switch v := v.(*EmailListReq); i {
  1841 + case 0:
  1842 + return &v.state
  1843 + case 1:
  1844 + return &v.sizeCache
  1845 + case 2:
  1846 + return &v.unknownFields
  1847 + default:
  1848 + return nil
  1849 + }
  1850 + }
  1851 + file_game_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
  1852 + switch v := v.(*EmailListRsp); i {
  1853 + case 0:
  1854 + return &v.state
  1855 + case 1:
  1856 + return &v.sizeCache
  1857 + case 2:
  1858 + return &v.unknownFields
  1859 + default:
  1860 + return nil
  1861 + }
  1862 + }
  1863 + file_game_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
  1864 + switch v := v.(*EmailDrawReq); i {
  1865 + case 0:
  1866 + return &v.state
  1867 + case 1:
  1868 + return &v.sizeCache
  1869 + case 2:
  1870 + return &v.unknownFields
  1871 + default:
  1872 + return nil
  1873 + }
  1874 + }
  1875 + file_game_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
  1876 + switch v := v.(*EmailDrawRsp); i {
  1877 + case 0:
  1878 + return &v.state
  1879 + case 1:
  1880 + return &v.sizeCache
  1881 + case 2:
  1882 + return &v.unknownFields
  1883 + default:
  1884 + return nil
  1885 + }
  1886 + }
  1887 + file_game_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
  1888 + switch v := v.(*EmailCheckRar); i {
  1889 + case 0:
  1890 + return &v.state
  1891 + case 1:
  1892 + return &v.sizeCache
  1893 + case 2:
  1894 + return &v.unknownFields
  1895 + default:
  1896 + return nil
  1897 + }
  1898 + }
  1899 + file_game_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
  1900 + switch v := v.(*EmailDelReq); i {
  1901 + case 0:
  1902 + return &v.state
  1903 + case 1:
  1904 + return &v.sizeCache
  1905 + case 2:
  1906 + return &v.unknownFields
  1907 + default:
  1908 + return nil
  1909 + }
  1910 + }
  1911 + file_game_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
  1912 + switch v := v.(*EmailDelRsp); i {
  1913 + case 0:
  1914 + return &v.state
  1915 + case 1:
  1916 + return &v.sizeCache
  1917 + case 2:
  1918 + return &v.unknownFields
  1919 + default:
  1920 + return nil
  1921 + }
  1922 + }
1496 } 1923 }
1497 type x struct{} 1924 type x struct{}
1498 out := protoimpl.TypeBuilder{ 1925 out := protoimpl.TypeBuilder{
@@ -1500,7 +1927,7 @@ func file_game_proto_init() { @@ -1500,7 +1927,7 @@ func file_game_proto_init() {
1500 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 1927 GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
1501 RawDescriptor: file_game_proto_rawDesc, 1928 RawDescriptor: file_game_proto_rawDesc,
1502 NumEnums: 0, 1929 NumEnums: 0,
1503 - NumMessages: 20, 1930 + NumMessages: 27,
1504 NumExtensions: 0, 1931 NumExtensions: 0,
1505 NumServices: 0, 1932 NumServices: 0,
1506 }, 1933 },
@@ -25,8 +25,26 @@ type LogConf struct { @@ -25,8 +25,26 @@ type LogConf struct {
25 sizeCache protoimpl.SizeCache 25 sizeCache protoimpl.SizeCache
26 unknownFields protoimpl.UnknownFields 26 unknownFields protoimpl.UnknownFields
27 27
28 - Typ string `protobuf:"bytes,1,opt,name=typ,proto3" json:"typ,omitempty"`  
29 - Ucode string `protobuf:"bytes,2,opt,name=ucode,proto3" json:"ucode,omitempty"` 28 + Typ string `protobuf:"bytes,1,opt,name=typ,proto3" json:"typ,omitempty"`
  29 + Desc string `protobuf:"bytes,2,opt,name=desc,proto3" json:"desc,omitempty"`
  30 + Ucode string `protobuf:"bytes,3,opt,name=ucode,proto3" json:"ucode,omitempty"`
  31 + Key1 string `protobuf:"bytes,4,opt,name=key1,proto3" json:"key1,omitempty"`
  32 + Key2 string `protobuf:"bytes,6,opt,name=key2,proto3" json:"key2,omitempty"`
  33 + Text string `protobuf:"bytes,7,opt,name=text,proto3" json:"text,omitempty"`
  34 + Short1 int32 `protobuf:"varint,8,opt,name=short1,proto3" json:"short1,omitempty"`
  35 + Int1 string `protobuf:"bytes,9,opt,name=int1,proto3" json:"int1,omitempty"`
  36 + Int2 string `protobuf:"bytes,10,opt,name=int2,proto3" json:"int2,omitempty"`
  37 + Long1 int64 `protobuf:"varint,11,opt,name=long1,proto3" json:"long1,omitempty"`
  38 + Float1 float32 `protobuf:"fixed32,12,opt,name=float1,proto3" json:"float1,omitempty"`
  39 + Cint1 int64 `protobuf:"varint,13,opt,name=cint1,proto3" json:"cint1,omitempty"`
  40 + Cint2 int64 `protobuf:"varint,14,opt,name=cint2,proto3" json:"cint2,omitempty"`
  41 + Cint3 int64 `protobuf:"varint,15,opt,name=cint3,proto3" json:"cint3,omitempty"`
  42 + // common role
  43 + Id string `protobuf:"bytes,20,opt,name=id,proto3" json:"id,omitempty"`
  44 + Name string `protobuf:"bytes,21,opt,name=name,proto3" json:"name,omitempty"`
  45 + Uid string `protobuf:"bytes,22,opt,name=uid,proto3" json:"uid,omitempty"`
  46 + Level int32 `protobuf:"varint,23,opt,name=level,proto3" json:"level,omitempty"`
  47 + Device string `protobuf:"bytes,24,opt,name=device,proto3" json:"device,omitempty"`
30 } 48 }
31 49
32 func (x *LogConf) Reset() { 50 func (x *LogConf) Reset() {
@@ -68,6 +86,13 @@ func (x *LogConf) GetTyp() string { @@ -68,6 +86,13 @@ func (x *LogConf) GetTyp() string {
68 return "" 86 return ""
69 } 87 }
70 88
  89 +func (x *LogConf) GetDesc() string {
  90 + if x != nil {
  91 + return x.Desc
  92 + }
  93 + return ""
  94 +}
  95 +
71 func (x *LogConf) GetUcode() string { 96 func (x *LogConf) GetUcode() string {
72 if x != nil { 97 if x != nil {
73 return x.Ucode 98 return x.Ucode
@@ -75,6 +100,118 @@ func (x *LogConf) GetUcode() string { @@ -75,6 +100,118 @@ func (x *LogConf) GetUcode() string {
75 return "" 100 return ""
76 } 101 }
77 102
  103 +func (x *LogConf) GetKey1() string {
  104 + if x != nil {
  105 + return x.Key1
  106 + }
  107 + return ""
  108 +}
  109 +
  110 +func (x *LogConf) GetKey2() string {
  111 + if x != nil {
  112 + return x.Key2
  113 + }
  114 + return ""
  115 +}
  116 +
  117 +func (x *LogConf) GetText() string {
  118 + if x != nil {
  119 + return x.Text
  120 + }
  121 + return ""
  122 +}
  123 +
  124 +func (x *LogConf) GetShort1() int32 {
  125 + if x != nil {
  126 + return x.Short1
  127 + }
  128 + return 0
  129 +}
  130 +
  131 +func (x *LogConf) GetInt1() string {
  132 + if x != nil {
  133 + return x.Int1
  134 + }
  135 + return ""
  136 +}
  137 +
  138 +func (x *LogConf) GetInt2() string {
  139 + if x != nil {
  140 + return x.Int2
  141 + }
  142 + return ""
  143 +}
  144 +
  145 +func (x *LogConf) GetLong1() int64 {
  146 + if x != nil {
  147 + return x.Long1
  148 + }
  149 + return 0
  150 +}
  151 +
  152 +func (x *LogConf) GetFloat1() float32 {
  153 + if x != nil {
  154 + return x.Float1
  155 + }
  156 + return 0
  157 +}
  158 +
  159 +func (x *LogConf) GetCint1() int64 {
  160 + if x != nil {
  161 + return x.Cint1
  162 + }
  163 + return 0
  164 +}
  165 +
  166 +func (x *LogConf) GetCint2() int64 {
  167 + if x != nil {
  168 + return x.Cint2
  169 + }
  170 + return 0
  171 +}
  172 +
  173 +func (x *LogConf) GetCint3() int64 {
  174 + if x != nil {
  175 + return x.Cint3
  176 + }
  177 + return 0
  178 +}
  179 +
  180 +func (x *LogConf) GetId() string {
  181 + if x != nil {
  182 + return x.Id
  183 + }
  184 + return ""
  185 +}
  186 +
  187 +func (x *LogConf) GetName() string {
  188 + if x != nil {
  189 + return x.Name
  190 + }
  191 + return ""
  192 +}
  193 +
  194 +func (x *LogConf) GetUid() string {
  195 + if x != nil {
  196 + return x.Uid
  197 + }
  198 + return ""
  199 +}
  200 +
  201 +func (x *LogConf) GetLevel() int32 {
  202 + if x != nil {
  203 + return x.Level
  204 + }
  205 + return 0
  206 +}
  207 +
  208 +func (x *LogConf) GetDevice() string {
  209 + if x != nil {
  210 + return x.Device
  211 + }
  212 + return ""
  213 +}
  214 +
78 type Account struct { 215 type Account struct {
79 state protoimpl.MessageState 216 state protoimpl.MessageState
80 sizeCache protoimpl.SizeCache 217 sizeCache protoimpl.SizeCache
@@ -391,17 +528,20 @@ func (x *Equipment) GetPos() int32 { @@ -391,17 +528,20 @@ func (x *Equipment) GetPos() int32 {
391 return 0 528 return 0
392 } 529 }
393 530
394 -type Prop struct { 531 +type Team struct {
395 state protoimpl.MessageState 532 state protoimpl.MessageState
396 sizeCache protoimpl.SizeCache 533 sizeCache protoimpl.SizeCache
397 unknownFields protoimpl.UnknownFields 534 unknownFields protoimpl.UnknownFields
398 535
399 - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty" index:"unique" pri:"1"` // @inject_tag: index:"unique" pri:"1"  
400 - Count int64 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` 536 + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty" index:"unique" pri:"1"` // @inject_tag: index:"unique" pri:"1"
  537 + RoleId string `protobuf:"bytes,2,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
  538 + HeroId1 string `protobuf:"bytes,3,opt,name=hero_id1,json=heroId1,proto3" json:"hero_id1,omitempty"`
  539 + HeroId2 string `protobuf:"bytes,4,opt,name=hero_id2,json=heroId2,proto3" json:"hero_id2,omitempty"`
  540 + HeroId3 string `protobuf:"bytes,5,opt,name=hero_id3,json=heroId3,proto3" json:"hero_id3,omitempty"`
401 } 541 }
402 542
403 -func (x *Prop) Reset() {  
404 - *x = Prop{} 543 +func (x *Team) Reset() {
  544 + *x = Team{}
405 if protoimpl.UnsafeEnabled { 545 if protoimpl.UnsafeEnabled {
406 mi := &file_models_proto_msgTypes[5] 546 mi := &file_models_proto_msgTypes[5]
407 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 547 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -409,13 +549,13 @@ func (x *Prop) Reset() { @@ -409,13 +549,13 @@ func (x *Prop) Reset() {
409 } 549 }
410 } 550 }
411 551
412 -func (x *Prop) String() string { 552 +func (x *Team) String() string {
413 return protoimpl.X.MessageStringOf(x) 553 return protoimpl.X.MessageStringOf(x)
414 } 554 }
415 555
416 -func (*Prop) ProtoMessage() {} 556 +func (*Team) ProtoMessage() {}
417 557
418 -func (x *Prop) ProtoReflect() protoreflect.Message { 558 +func (x *Team) ProtoReflect() protoreflect.Message {
419 mi := &file_models_proto_msgTypes[5] 559 mi := &file_models_proto_msgTypes[5]
420 if protoimpl.UnsafeEnabled && x != nil { 560 if protoimpl.UnsafeEnabled && x != nil {
421 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 561 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -427,39 +567,63 @@ func (x *Prop) ProtoReflect() protoreflect.Message { @@ -427,39 +567,63 @@ func (x *Prop) ProtoReflect() protoreflect.Message {
427 return mi.MessageOf(x) 567 return mi.MessageOf(x)
428 } 568 }
429 569
430 -// Deprecated: Use Prop.ProtoReflect.Descriptor instead.  
431 -func (*Prop) Descriptor() ([]byte, []int) { 570 +// Deprecated: Use Team.ProtoReflect.Descriptor instead.
  571 +func (*Team) Descriptor() ([]byte, []int) {
432 return file_models_proto_rawDescGZIP(), []int{5} 572 return file_models_proto_rawDescGZIP(), []int{5}
433 } 573 }
434 574
435 -func (x *Prop) GetId() string { 575 +func (x *Team) GetId() string {
436 if x != nil { 576 if x != nil {
437 return x.Id 577 return x.Id
438 } 578 }
439 return "" 579 return ""
440 } 580 }
441 581
442 -func (x *Prop) GetCount() int64 { 582 +func (x *Team) GetRoleId() string {
  583 + if x != nil {
  584 + return x.RoleId
  585 + }
  586 + return ""
  587 +}
  588 +
  589 +func (x *Team) GetHeroId1() string {
443 if x != nil { 590 if x != nil {
444 - return x.Count 591 + return x.HeroId1
445 } 592 }
446 - return 0 593 + return ""
447 } 594 }
448 595
449 -type Team struct { 596 +func (x *Team) GetHeroId2() string {
  597 + if x != nil {
  598 + return x.HeroId2
  599 + }
  600 + return ""
  601 +}
  602 +
  603 +func (x *Team) GetHeroId3() string {
  604 + if x != nil {
  605 + return x.HeroId3
  606 + }
  607 + return ""
  608 +}
  609 +
  610 +type Email struct {
450 state protoimpl.MessageState 611 state protoimpl.MessageState
451 sizeCache protoimpl.SizeCache 612 sizeCache protoimpl.SizeCache
452 unknownFields protoimpl.UnknownFields 613 unknownFields protoimpl.UnknownFields
453 614
454 - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty" index:"unique" pri:"1"` // @inject_tag: index:"unique" pri:"1"  
455 - RoleId string `protobuf:"bytes,2,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`  
456 - HeroId1 string `protobuf:"bytes,3,opt,name=hero_id1,json=heroId1,proto3" json:"hero_id1,omitempty"`  
457 - HeroId2 string `protobuf:"bytes,4,opt,name=hero_id2,json=heroId2,proto3" json:"hero_id2,omitempty"`  
458 - HeroId3 string `protobuf:"bytes,5,opt,name=hero_id3,json=heroId3,proto3" json:"hero_id3,omitempty"` 615 + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty" index:"unique" pri:"1"` // @inject_tag: index:"unique" pri:"1"
  616 + RoleId string `protobuf:"bytes,2,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
  617 + Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"` // 标题
  618 + Stitle string `protobuf:"bytes,4,opt,name=stitle,proto3" json:"stitle,omitempty"` // 小标题
  619 + Content string `protobuf:"bytes,5,opt,name=content,proto3" json:"content,omitempty"` // 邮件正文
  620 + Attachments string `protobuf:"bytes,6,opt,name=attachments,proto3" json:"attachments,omitempty"` // 邮件附件
  621 + Status int32 `protobuf:"varint,7,opt,name=status,proto3" json:"status,omitempty"` // 邮件状态: 0未读, 1已读,2 已领取
  622 + CreateTime int64 `protobuf:"varint,8,opt,name=createTime,proto3" json:"createTime,omitempty"`
459 } 623 }
460 624
461 -func (x *Team) Reset() {  
462 - *x = Team{} 625 +func (x *Email) Reset() {
  626 + *x = Email{}
463 if protoimpl.UnsafeEnabled { 627 if protoimpl.UnsafeEnabled {
464 mi := &file_models_proto_msgTypes[6] 628 mi := &file_models_proto_msgTypes[6]
465 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 629 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -467,13 +631,13 @@ func (x *Team) Reset() { @@ -467,13 +631,13 @@ func (x *Team) Reset() {
467 } 631 }
468 } 632 }
469 633
470 -func (x *Team) String() string { 634 +func (x *Email) String() string {
471 return protoimpl.X.MessageStringOf(x) 635 return protoimpl.X.MessageStringOf(x)
472 } 636 }
473 637
474 -func (*Team) ProtoMessage() {} 638 +func (*Email) ProtoMessage() {}
475 639
476 -func (x *Team) ProtoReflect() protoreflect.Message { 640 +func (x *Email) ProtoReflect() protoreflect.Message {
477 mi := &file_models_proto_msgTypes[6] 641 mi := &file_models_proto_msgTypes[6]
478 if protoimpl.UnsafeEnabled && x != nil { 642 if protoimpl.UnsafeEnabled && x != nil {
479 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 643 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -485,46 +649,67 @@ func (x *Team) ProtoReflect() protoreflect.Message { @@ -485,46 +649,67 @@ func (x *Team) ProtoReflect() protoreflect.Message {
485 return mi.MessageOf(x) 649 return mi.MessageOf(x)
486 } 650 }
487 651
488 -// Deprecated: Use Team.ProtoReflect.Descriptor instead.  
489 -func (*Team) Descriptor() ([]byte, []int) { 652 +// Deprecated: Use Email.ProtoReflect.Descriptor instead.
  653 +func (*Email) Descriptor() ([]byte, []int) {
490 return file_models_proto_rawDescGZIP(), []int{6} 654 return file_models_proto_rawDescGZIP(), []int{6}
491 } 655 }
492 656
493 -func (x *Team) GetId() string { 657 +func (x *Email) GetId() string {
494 if x != nil { 658 if x != nil {
495 return x.Id 659 return x.Id
496 } 660 }
497 return "" 661 return ""
498 } 662 }
499 663
500 -func (x *Team) GetRoleId() string { 664 +func (x *Email) GetRoleId() string {
501 if x != nil { 665 if x != nil {
502 return x.RoleId 666 return x.RoleId
503 } 667 }
504 return "" 668 return ""
505 } 669 }
506 670
507 -func (x *Team) GetHeroId1() string { 671 +func (x *Email) GetTitle() string {
508 if x != nil { 672 if x != nil {
509 - return x.HeroId1 673 + return x.Title
510 } 674 }
511 return "" 675 return ""
512 } 676 }
513 677
514 -func (x *Team) GetHeroId2() string { 678 +func (x *Email) GetStitle() string {
515 if x != nil { 679 if x != nil {
516 - return x.HeroId2 680 + return x.Stitle
517 } 681 }
518 return "" 682 return ""
519 } 683 }
520 684
521 -func (x *Team) GetHeroId3() string { 685 +func (x *Email) GetContent() string {
522 if x != nil { 686 if x != nil {
523 - return x.HeroId3 687 + return x.Content
  688 + }
  689 + return ""
  690 +}
  691 +
  692 +func (x *Email) GetAttachments() string {
  693 + if x != nil {
  694 + return x.Attachments
524 } 695 }
525 return "" 696 return ""
526 } 697 }
527 698
  699 +func (x *Email) GetStatus() int32 {
  700 + if x != nil {
  701 + return x.Status
  702 + }
  703 + return 0
  704 +}
  705 +
  706 +func (x *Email) GetCreateTime() int64 {
  707 + if x != nil {
  708 + return x.CreateTime
  709 + }
  710 + return 0
  711 +}
  712 +
528 type Increment struct { 713 type Increment struct {
529 state protoimpl.MessageState 714 state protoimpl.MessageState
530 sizeCache protoimpl.SizeCache 715 sizeCache protoimpl.SizeCache
@@ -775,99 +960,132 @@ var File_models_proto protoreflect.FileDescriptor @@ -775,99 +960,132 @@ var File_models_proto protoreflect.FileDescriptor
775 960
776 var file_models_proto_rawDesc = []byte{ 961 var file_models_proto_rawDesc = []byte{
777 0x0a, 0x0c, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 962 0x0a, 0x0c, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06,
778 - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x22, 0x31, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x43, 0x6f, 0x6e,  
779 - 0x66, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x79, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,  
780 - 0x74, 0x79, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01,  
781 - 0x28, 0x09, 0x52, 0x05, 0x75, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x4d, 0x0a, 0x07, 0x41, 0x63, 0x63,  
782 - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20,  
783 - 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61,  
784 - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61,  
785 - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20,  
786 - 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x32, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66,  
787 - 0x69, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,  
788 - 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20,  
789 - 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xc9, 0x01, 0x0a,  
790 - 0x04, 0x48, 0x65, 0x72, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,  
791 - 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64,  
792 - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x12,  
793 - 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79,  
794 - 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28,  
795 - 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x69, 0x6e,  
796 - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x65,  
797 - 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x69, 0x6e, 0x5f,  
798 - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x65, 0x69,  
799 - 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d,  
800 - 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x71, 0x75, 0x69,  
801 - 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x08, 0x20,  
802 - 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x78, 0x70, 0x22, 0xb3, 0x01, 0x0a, 0x09, 0x45, 0x71, 0x75,  
803 - 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,  
804 - 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69,  
805 - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12,  
806 - 0x13, 0x0a, 0x05, 0x74, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,  
807 - 0x74, 0x62, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x5f,  
808 - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x65, 0x6e, 0x68,  
809 - 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72,  
810 - 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f,  
811 - 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20,  
812 - 0x01, 0x28, 0x05, 0x52, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x10, 0x0a, 0x03,  
813 - 0x70, 0x6f, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x22, 0x2c,  
814 - 0x0a, 0x04, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,  
815 - 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,  
816 - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x80, 0x01, 0x0a,  
817 - 0x04, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,  
818 - 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64,  
819 - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x19,  
820 - 0x0a, 0x08, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,  
821 - 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x31, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x65, 0x72,  
822 - 0x6f, 0x5f, 0x69, 0x64, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x72,  
823 - 0x6f, 0x49, 0x64, 0x32, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x33,  
824 - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x33, 0x22,  
825 - 0x2f, 0x0a, 0x09, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03,  
826 - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x10,  
827 - 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x76, 0x61, 0x6c,  
828 - 0x22, 0x99, 0x05, 0x0a, 0x04, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,  
829 - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64,  
830 - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64,  
831 - 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76,  
832 - 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28,  
833 - 0x09, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c,  
834 - 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x10, 0x0a,  
835 - 0x03, 0x65, 0x78, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x78, 0x70, 0x12,  
836 - 0x0e, 0x0a, 0x02, 0x68, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x68, 0x70, 0x12,  
837 - 0x15, 0x0a, 0x06, 0x68, 0x70, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52,  
838 - 0x05, 0x68, 0x70, 0x4d, 0x61, 0x78, 0x12, 0x13, 0x0a, 0x05, 0x62, 0x75, 0x79, 0x5f, 0x72, 0x18,  
839 - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x75, 0x79, 0x52, 0x12, 0x13, 0x0a, 0x05, 0x70,  
840 - 0x61, 0x79, 0x5f, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x79, 0x52,  
841 - 0x12, 0x10, 0x0a, 0x03, 0x64, 0x65, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x64,  
842 - 0x65, 0x6c, 0x12, 0x30, 0x0a, 0x06, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03,  
843 - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65,  
844 - 0x2e, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x69, 0x6e,  
845 - 0x63, 0x72, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x0f, 0x20,  
846 - 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6c,  
847 - 0x6f, 0x74, 0x68, 0x65, 0x73, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d,  
848 - 0x52, 0x0c, 0x63, 0x6c, 0x6f, 0x74, 0x68, 0x65, 0x73, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x22,  
849 - 0x0a, 0x0c, 0x77, 0x65, 0x61, 0x70, 0x6f, 0x6e, 0x73, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x11,  
850 - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, 0x65, 0x61, 0x70, 0x6f, 0x6e, 0x73, 0x6c, 0x69, 0x6d,  
851 - 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74,  
852 - 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x6c, 0x69, 0x6d,  
853 - 0x69, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6a, 0x65, 0x77, 0x65, 0x6c, 0x72, 0x79, 0x6c, 0x69, 0x6d,  
854 - 0x69, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6a, 0x65, 0x77, 0x65, 0x6c, 0x72,  
855 - 0x79, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69,  
856 - 0x61, 0x6c, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d,  
857 - 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x42, 0x0a, 0x0c,  
858 - 0x70, 0x61, 0x73, 0x73, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x18, 0x15, 0x20, 0x03,  
859 - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65,  
860 - 0x2e, 0x50, 0x61, 0x73, 0x73, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74,  
861 - 0x72, 0x79, 0x52, 0x0c, 0x70, 0x61, 0x73, 0x73, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73,  
862 - 0x1a, 0x39, 0x0a, 0x0b, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,  
863 - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,  
864 - 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d,  
865 - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3f, 0x0a, 0x11, 0x50,  
866 - 0x61, 0x73, 0x73, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,  
867 - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b,  
868 - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,  
869 - 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0a, 0x5a, 0x08,  
870 - 0x2e, 0x2e, 0x2f, 0x70, 0x62, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 963 + 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x22, 0x95, 0x03, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x43, 0x6f,
  964 + 0x6e, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x79, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
  965 + 0x03, 0x74, 0x79, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x02, 0x20, 0x01,
  966 + 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x63, 0x6f, 0x64,
  967 + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12,
  968 + 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x65,
  969 + 0x79, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
  970 + 0x52, 0x04, 0x6b, 0x65, 0x79, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x07,
  971 + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68,
  972 + 0x6f, 0x72, 0x74, 0x31, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x68, 0x6f, 0x72,
  973 + 0x74, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x74, 0x31, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09,
  974 + 0x52, 0x04, 0x69, 0x6e, 0x74, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x74, 0x32, 0x18, 0x0a,
  975 + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6e, 0x74, 0x32, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x6f,
  976 + 0x6e, 0x67, 0x31, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, 0x6f, 0x6e, 0x67, 0x31,
  977 + 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x31, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02,
  978 + 0x52, 0x06, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x69, 0x6e, 0x74,
  979 + 0x31, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x69, 0x6e, 0x74, 0x31, 0x12, 0x14,
  980 + 0x0a, 0x05, 0x63, 0x69, 0x6e, 0x74, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63,
  981 + 0x69, 0x6e, 0x74, 0x32, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x69, 0x6e, 0x74, 0x33, 0x18, 0x0f, 0x20,
  982 + 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x69, 0x6e, 0x74, 0x33, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
  983 + 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
  984 + 0x6d, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10,
  985 + 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64,
  986 + 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52,
  987 + 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
  988 + 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x4d,
  989 + 0x0a, 0x07, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f,
  990 + 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12,
  991 + 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
  992 + 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75,
  993 + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x32, 0x0a,
  994 + 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
  995 + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69,
  996 + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
  997 + 0x6e, 0x22, 0xc9, 0x01, 0x0a, 0x04, 0x48, 0x65, 0x72, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
  998 + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f,
  999 + 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6c,
  1000 + 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
  1001 + 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c,
  1002 + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1d, 0x0a,
  1003 + 0x0a, 0x72, 0x65, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28,
  1004 + 0x05, 0x52, 0x09, 0x72, 0x65, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a,
  1005 + 0x72, 0x65, 0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05,
  1006 + 0x52, 0x09, 0x72, 0x65, 0x69, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x65,
  1007 + 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52,
  1008 + 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x65,
  1009 + 0x78, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x78, 0x70, 0x22, 0xb3, 0x01,
  1010 + 0x0a, 0x09, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69,
  1011 + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72,
  1012 + 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f,
  1013 + 0x6c, 0x65, 0x49, 0x64, 0x12, 0x13, 0x0a, 0x05, 0x74, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20,
  1014 + 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x62, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x68,
  1015 + 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
  1016 + 0x52, 0x0c, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x17,
  1017 + 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
  1018 + 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69,
  1019 + 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74,
  1020 + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03,
  1021 + 0x70, 0x6f, 0x73, 0x22, 0x80, 0x01, 0x0a, 0x04, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x0e, 0x0a, 0x02,
  1022 + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07,
  1023 + 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72,
  1024 + 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64,
  1025 + 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x31,
  1026 + 0x12, 0x19, 0x0a, 0x08, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x32, 0x18, 0x04, 0x20, 0x01,
  1027 + 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x32, 0x12, 0x19, 0x0a, 0x08, 0x68,
  1028 + 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x33, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68,
  1029 + 0x65, 0x72, 0x6f, 0x49, 0x64, 0x33, 0x22, 0xd2, 0x01, 0x0a, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c,
  1030 + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
  1031 + 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
  1032 + 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74,
  1033 + 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12,
  1034 + 0x16, 0x0a, 0x06, 0x73, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
  1035 + 0x06, 0x73, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65,
  1036 + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
  1037 + 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73,
  1038 + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65,
  1039 + 0x6e, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20,
  1040 + 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63,
  1041 + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52,
  1042 + 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x2f, 0x0a, 0x09, 0x49,
  1043 + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
  1044 + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61,
  1045 + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x99, 0x05, 0x0a,
  1046 + 0x04, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
  1047 + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
  1048 + 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63,
  1049 + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12,
  1050 + 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
  1051 + 0x69, 0x63, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01,
  1052 + 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70,
  1053 + 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x78, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x68,
  1054 + 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x68, 0x70, 0x12, 0x15, 0x0a, 0x06, 0x68,
  1055 + 0x70, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x68, 0x70, 0x4d,
  1056 + 0x61, 0x78, 0x12, 0x13, 0x0a, 0x05, 0x62, 0x75, 0x79, 0x5f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28,
  1057 + 0x09, 0x52, 0x04, 0x62, 0x75, 0x79, 0x52, 0x12, 0x13, 0x0a, 0x05, 0x70, 0x61, 0x79, 0x5f, 0x72,
  1058 + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x79, 0x52, 0x12, 0x10, 0x0a, 0x03,
  1059 + 0x64, 0x65, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x64, 0x65, 0x6c, 0x12, 0x30,
  1060 + 0x0a, 0x06, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18,
  1061 + 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x2e, 0x49, 0x6e, 0x63,
  1062 + 0x72, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x73,
  1063 + 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52,
  1064 + 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6c, 0x6f, 0x74, 0x68, 0x65,
  1065 + 0x73, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x6c,
  1066 + 0x6f, 0x74, 0x68, 0x65, 0x73, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x65,
  1067 + 0x61, 0x70, 0x6f, 0x6e, 0x73, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d,
  1068 + 0x52, 0x0c, 0x77, 0x65, 0x61, 0x70, 0x6f, 0x6e, 0x73, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1e,
  1069 + 0x0a, 0x0a, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x12, 0x20, 0x01,
  1070 + 0x28, 0x0d, 0x52, 0x0a, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x22,
  1071 + 0x0a, 0x0c, 0x6a, 0x65, 0x77, 0x65, 0x6c, 0x72, 0x79, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x13,
  1072 + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6a, 0x65, 0x77, 0x65, 0x6c, 0x72, 0x79, 0x6c, 0x69, 0x6d,
  1073 + 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x6c, 0x69,
  1074 + 0x6d, 0x69, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x61, 0x74, 0x65, 0x72,
  1075 + 0x69, 0x61, 0x6c, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x42, 0x0a, 0x0c, 0x70, 0x61, 0x73, 0x73,
  1076 + 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e,
  1077 + 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x2e, 0x50, 0x61, 0x73,
  1078 + 0x73, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c,
  1079 + 0x70, 0x61, 0x73, 0x73, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x39, 0x0a, 0x0b,
  1080 + 0x49, 0x6e, 0x63, 0x72, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
  1081 + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
  1082 + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61,
  1083 + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3f, 0x0a, 0x11, 0x50, 0x61, 0x73, 0x73, 0x63,
  1084 + 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
  1085 + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
  1086 + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76,
  1087 + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x70,
  1088 + 0x62, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
871 } 1089 }
872 1090
873 var ( 1091 var (
@@ -889,8 +1107,8 @@ var file_models_proto_goTypes = []interface{}{ @@ -889,8 +1107,8 @@ var file_models_proto_goTypes = []interface{}{
889 (*Config)(nil), // 2: models.Config 1107 (*Config)(nil), // 2: models.Config
890 (*Hero)(nil), // 3: models.Hero 1108 (*Hero)(nil), // 3: models.Hero
891 (*Equipment)(nil), // 4: models.Equipment 1109 (*Equipment)(nil), // 4: models.Equipment
892 - (*Prop)(nil), // 5: models.Prop  
893 - (*Team)(nil), // 6: models.Team 1110 + (*Team)(nil), // 5: models.Team
  1111 + (*Email)(nil), // 6: models.Email
894 (*Increment)(nil), // 7: models.Increment 1112 (*Increment)(nil), // 7: models.Increment
895 (*Role)(nil), // 8: models.Role 1113 (*Role)(nil), // 8: models.Role
896 nil, // 9: models.Role.IncresEntry 1114 nil, // 9: models.Role.IncresEntry
@@ -973,7 +1191,7 @@ func file_models_proto_init() { @@ -973,7 +1191,7 @@ func file_models_proto_init() {
973 } 1191 }
974 } 1192 }
975 file_models_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 1193 file_models_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
976 - switch v := v.(*Prop); i { 1194 + switch v := v.(*Team); i {
977 case 0: 1195 case 0:
978 return &v.state 1196 return &v.state
979 case 1: 1197 case 1:
@@ -985,7 +1203,7 @@ func file_models_proto_init() { @@ -985,7 +1203,7 @@ func file_models_proto_init() {
985 } 1203 }
986 } 1204 }
987 file_models_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 1205 file_models_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
988 - switch v := v.(*Team); i { 1206 + switch v := v.(*Email); i {
989 case 0: 1207 case 0:
990 return &v.state 1208 return &v.state
991 case 1: 1209 case 1:
pb/protocode.pb.go
@@ -24,57 +24,69 @@ type ProtoCode int32 @@ -24,57 +24,69 @@ type ProtoCode int32
24 24
25 const ( 25 const (
26 ProtoCode_UNKNOWN ProtoCode = 0 26 ProtoCode_UNKNOWN ProtoCode = 0
27 - ProtoCode_HeartRpc ProtoCode = 1  
28 - ProtoCode_LoginRpc ProtoCode = 2  
29 - ProtoCode_RoleStartBattleRpc ProtoCode = 3  
30 - ProtoCode_RoleEndBattleRpc ProtoCode = 4  
31 - ProtoCode_HeroUpLevelRpc ProtoCode = 5  
32 - ProtoCode_CreateRpc ProtoCode = 6  
33 - ProtoCode_ChangeTeamRpc ProtoCode = 7  
34 - ProtoCode_HeroEquipReferRpc ProtoCode = 8  
35 - ProtoCode_RoleClearItemsRpc ProtoCode = 9  
36 - ProtoCode_EquipmentDelRpc ProtoCode = 10  
37 - ProtoCode_DisConnectNty ProtoCode = 11  
38 - ProtoCode_RoleUpdatePropertyNty ProtoCode = 12  
39 - ProtoCode_RoleUpdateItemsNty ProtoCode = 13  
40 - ProtoCode_EquipmentAddNty ProtoCode = 14 27 + ProtoCode_HeartRpc ProtoCode = 501
  28 + ProtoCode_LoginRpc ProtoCode = 502
  29 + ProtoCode_CreateRpc ProtoCode = 503
  30 + ProtoCode_ChangeTeamRpc ProtoCode = 504
  31 + ProtoCode_HeroEquipReferRpc ProtoCode = 505
  32 + ProtoCode_RoleClearItemsRpc ProtoCode = 506
  33 + ProtoCode_RoleStartBattleRpc ProtoCode = 507
  34 + ProtoCode_RoleEndBattleRpc ProtoCode = 508
  35 + ProtoCode_EquipmentDelRpc ProtoCode = 509
  36 + ProtoCode_HeroUpLevelRpc ProtoCode = 510
  37 + ProtoCode_EmailListRpc ProtoCode = 511
  38 + ProtoCode_EmailDrawRpc ProtoCode = 512
  39 + ProtoCode_EmailCheckRpc ProtoCode = 513
  40 + ProtoCode_EmailDelRpc ProtoCode = 514
  41 + ProtoCode_DisConnectNty ProtoCode = 1001
  42 + ProtoCode_RoleUpdatePropertyNty ProtoCode = 1002
  43 + ProtoCode_RoleUpdateItemsNty ProtoCode = 1003
  44 + ProtoCode_EquipmentAddNty ProtoCode = 1004
41 ) 45 )
42 46
43 // Enum value maps for ProtoCode. 47 // Enum value maps for ProtoCode.
44 var ( 48 var (
45 ProtoCode_name = map[int32]string{ 49 ProtoCode_name = map[int32]string{
46 - 0: "UNKNOWN",  
47 - 1: "HeartRpc",  
48 - 2: "LoginRpc",  
49 - 3: "RoleStartBattleRpc",  
50 - 4: "RoleEndBattleRpc",  
51 - 5: "HeroUpLevelRpc",  
52 - 6: "CreateRpc",  
53 - 7: "ChangeTeamRpc",  
54 - 8: "HeroEquipReferRpc",  
55 - 9: "RoleClearItemsRpc",  
56 - 10: "EquipmentDelRpc",  
57 - 11: "DisConnectNty",  
58 - 12: "RoleUpdatePropertyNty",  
59 - 13: "RoleUpdateItemsNty",  
60 - 14: "EquipmentAddNty", 50 + 0: "UNKNOWN",
  51 + 501: "HeartRpc",
  52 + 502: "LoginRpc",
  53 + 503: "CreateRpc",
  54 + 504: "ChangeTeamRpc",
  55 + 505: "HeroEquipReferRpc",
  56 + 506: "RoleClearItemsRpc",
  57 + 507: "RoleStartBattleRpc",
  58 + 508: "RoleEndBattleRpc",
  59 + 509: "EquipmentDelRpc",
  60 + 510: "HeroUpLevelRpc",
  61 + 511: "EmailListRpc",
  62 + 512: "EmailDrawRpc",
  63 + 513: "EmailCheckRpc",
  64 + 514: "EmailDelRpc",
  65 + 1001: "DisConnectNty",
  66 + 1002: "RoleUpdatePropertyNty",
  67 + 1003: "RoleUpdateItemsNty",
  68 + 1004: "EquipmentAddNty",
61 } 69 }
62 ProtoCode_value = map[string]int32{ 70 ProtoCode_value = map[string]int32{
63 "UNKNOWN": 0, 71 "UNKNOWN": 0,
64 - "HeartRpc": 1,  
65 - "LoginRpc": 2,  
66 - "RoleStartBattleRpc": 3,  
67 - "RoleEndBattleRpc": 4,  
68 - "HeroUpLevelRpc": 5,  
69 - "CreateRpc": 6,  
70 - "ChangeTeamRpc": 7,  
71 - "HeroEquipReferRpc": 8,  
72 - "RoleClearItemsRpc": 9,  
73 - "EquipmentDelRpc": 10,  
74 - "DisConnectNty": 11,  
75 - "RoleUpdatePropertyNty": 12,  
76 - "RoleUpdateItemsNty": 13,  
77 - "EquipmentAddNty": 14, 72 + "HeartRpc": 501,
  73 + "LoginRpc": 502,
  74 + "CreateRpc": 503,
  75 + "ChangeTeamRpc": 504,
  76 + "HeroEquipReferRpc": 505,
  77 + "RoleClearItemsRpc": 506,
  78 + "RoleStartBattleRpc": 507,
  79 + "RoleEndBattleRpc": 508,
  80 + "EquipmentDelRpc": 509,
  81 + "HeroUpLevelRpc": 510,
  82 + "EmailListRpc": 511,
  83 + "EmailDrawRpc": 512,
  84 + "EmailCheckRpc": 513,
  85 + "EmailDelRpc": 514,
  86 + "DisConnectNty": 1001,
  87 + "RoleUpdatePropertyNty": 1002,
  88 + "RoleUpdateItemsNty": 1003,
  89 + "EquipmentAddNty": 1004,
78 } 90 }
79 ) 91 )
80 92
@@ -109,28 +121,34 @@ var File_protocode_proto protoreflect.FileDescriptor @@ -109,28 +121,34 @@ var File_protocode_proto protoreflect.FileDescriptor
109 121
110 var file_protocode_proto_rawDesc = []byte{ 122 var file_protocode_proto_rawDesc = []byte{
111 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 123 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
112 - 0x6f, 0x12, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x64, 0x65, 0x2a, 0xb6, 0x02, 0x0a, 124 + 0x6f, 0x12, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x64, 0x65, 0x2a, 0x90, 0x03, 0x0a,
113 0x09, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 125 0x09, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e,
114 - 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x48, 0x65, 0x61, 0x72, 0x74,  
115 - 0x52, 0x70, 0x63, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x70,  
116 - 0x63, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x6f, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74,  
117 - 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x70, 0x63, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x52,  
118 - 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x70, 0x63, 0x10,  
119 - 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x55, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c,  
120 - 0x52, 0x70, 0x63, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52,  
121 - 0x70, 0x63, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x65,  
122 - 0x61, 0x6d, 0x52, 0x70, 0x63, 0x10, 0x07, 0x12, 0x15, 0x0a, 0x11, 0x48, 0x65, 0x72, 0x6f, 0x45,  
123 - 0x71, 0x75, 0x69, 0x70, 0x52, 0x65, 0x66, 0x65, 0x72, 0x52, 0x70, 0x63, 0x10, 0x08, 0x12, 0x15,  
124 - 0x0a, 0x11, 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x73,  
125 - 0x52, 0x70, 0x63, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65,  
126 - 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x52, 0x70, 0x63, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x69,  
127 - 0x73, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x4e, 0x74, 0x79, 0x10, 0x0b, 0x12, 0x19, 0x0a,  
128 - 0x15, 0x52, 0x6f, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65,  
129 - 0x72, 0x74, 0x79, 0x4e, 0x74, 0x79, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x6f, 0x6c, 0x65,  
130 - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x4e, 0x74, 0x79, 0x10, 0x0d,  
131 - 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64,  
132 - 0x4e, 0x74, 0x79, 0x10, 0x0e, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x70, 0x62, 0x3b, 0x70,  
133 - 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 126 + 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x08, 0x48, 0x65, 0x61, 0x72, 0x74,
  127 + 0x52, 0x70, 0x63, 0x10, 0xf5, 0x03, 0x12, 0x0d, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52,
  128 + 0x70, 0x63, 0x10, 0xf6, 0x03, 0x12, 0x0e, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52,
  129 + 0x70, 0x63, 0x10, 0xf7, 0x03, 0x12, 0x12, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54,
  130 + 0x65, 0x61, 0x6d, 0x52, 0x70, 0x63, 0x10, 0xf8, 0x03, 0x12, 0x16, 0x0a, 0x11, 0x48, 0x65, 0x72,
  131 + 0x6f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x52, 0x65, 0x66, 0x65, 0x72, 0x52, 0x70, 0x63, 0x10, 0xf9,
  132 + 0x03, 0x12, 0x16, 0x0a, 0x11, 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x49, 0x74,
  133 + 0x65, 0x6d, 0x73, 0x52, 0x70, 0x63, 0x10, 0xfa, 0x03, 0x12, 0x17, 0x0a, 0x12, 0x52, 0x6f, 0x6c,
  134 + 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x70, 0x63, 0x10,
  135 + 0xfb, 0x03, 0x12, 0x15, 0x0a, 0x10, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x64, 0x42, 0x61, 0x74,
  136 + 0x74, 0x6c, 0x65, 0x52, 0x70, 0x63, 0x10, 0xfc, 0x03, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x71, 0x75,
  137 + 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x52, 0x70, 0x63, 0x10, 0xfd, 0x03, 0x12,
  138 + 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x55, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x70,
  139 + 0x63, 0x10, 0xfe, 0x03, 0x12, 0x11, 0x0a, 0x0c, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73,
  140 + 0x74, 0x52, 0x70, 0x63, 0x10, 0xff, 0x03, 0x12, 0x11, 0x0a, 0x0c, 0x45, 0x6d, 0x61, 0x69, 0x6c,
  141 + 0x44, 0x72, 0x61, 0x77, 0x52, 0x70, 0x63, 0x10, 0x80, 0x04, 0x12, 0x12, 0x0a, 0x0d, 0x45, 0x6d,
  142 + 0x61, 0x69, 0x6c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x70, 0x63, 0x10, 0x81, 0x04, 0x12, 0x10,
  143 + 0x0a, 0x0b, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x44, 0x65, 0x6c, 0x52, 0x70, 0x63, 0x10, 0x82, 0x04,
  144 + 0x12, 0x12, 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x4e, 0x74,
  145 + 0x79, 0x10, 0xe9, 0x07, 0x12, 0x1a, 0x0a, 0x15, 0x52, 0x6f, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61,
  146 + 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x74, 0x79, 0x10, 0xea, 0x07,
  147 + 0x12, 0x17, 0x0a, 0x12, 0x52, 0x6f, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x74,
  148 + 0x65, 0x6d, 0x73, 0x4e, 0x74, 0x79, 0x10, 0xeb, 0x07, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x71, 0x75,
  149 + 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x4e, 0x74, 0x79, 0x10, 0xec, 0x07, 0x42,
  150 + 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x70, 0x62, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
  151 + 0x74, 0x6f, 0x33,
134 } 152 }
135 153
136 var ( 154 var (
1 -Subproject commit 4a5d0bdfde97673ee5ce6a6e9084eac7c7b88583 1 +Subproject commit cfe0c1d6fd5d7bcd6b0d5543359fcf2117db4dc2
tools/generator.py
@@ -24,8 +24,10 @@ GoProtoCodeTestRspLine = &quot;\tam[uint32(pb.ProtoCode_{}Rsp)] = {}Rsp\n&quot; @@ -24,8 +24,10 @@ GoProtoCodeTestRspLine = &quot;\tam[uint32(pb.ProtoCode_{}Rsp)] = {}Rsp\n&quot;
24 GoProtoCodeTestNtyLine = "\tam[uint32(pb.ProtoCode_{}Nty)] = {}Nty\n" 24 GoProtoCodeTestNtyLine = "\tam[uint32(pb.ProtoCode_{}Nty)] = {}Nty\n"
25 25
26 def generatorProto(path): 26 def generatorProto(path):
  27 + RpcStartCode = 500
  28 + NtyStartCode = 1000
  29 +
27 files = os.listdir(path) 30 files = os.listdir(path)
28 - code = 0  
29 ProtoCodeData = "" 31 ProtoCodeData = ""
30 GoCodeData = "" 32 GoCodeData = ""
31 GoCodeTestData = "" 33 GoCodeTestData = ""
@@ -42,7 +44,7 @@ def generatorProto(path): @@ -42,7 +44,7 @@ def generatorProto(path):
42 if firstline.find("proto3") == -1: 44 if firstline.find("proto3") == -1:
43 continue 45 continue
44 46
45 - # req 47 + # req + rar
46 for line in lines: 48 for line in lines:
47 if line.find("message") == -1: 49 if line.find("message") == -1:
48 continue 50 continue
@@ -52,34 +54,24 @@ def generatorProto(path): @@ -52,34 +54,24 @@ def generatorProto(path):
52 54
53 messageStr = sline[1].replace('\n', '').replace('{', "") 55 messageStr = sline[1].replace('\n', '').replace('{', "")
54 n1 = messageStr.find('Req') 56 n1 = messageStr.find('Req')
  57 + n2 = messageStr.find('Rar')
55 loginReq = messageStr.find('LoginReq') 58 loginReq = messageStr.find('LoginReq')
56 59
57 if n1 != -1: 60 if n1 != -1:
58 - code += 1  
59 - ProtoCodeData += ProtoCodeLineReq.format(messageStr[:n1], code) 61 + RpcStartCode = RpcStartCode + 1
  62 + ProtoCodeData += ProtoCodeLineReq.format(messageStr[:n1], RpcStartCode)
60 if loginReq != -1: 63 if loginReq != -1:
61 continue 64 continue
62 GoCodeData += GoProtoCodeLine.format(messageStr[:n1], messageStr[:n1]) 65 GoCodeData += GoProtoCodeLine.format(messageStr[:n1], messageStr[:n1])
63 GoCodeTestData += GoProtoCodeTestReqLine.format(messageStr[:n1], messageStr[:n1]) 66 GoCodeTestData += GoProtoCodeTestReqLine.format(messageStr[:n1], messageStr[:n1])
64 - # rar  
65 - for line in lines:  
66 - if line.find("message") == -1:  
67 - continue  
68 - sline = line.split(' ')  
69 - if len(sline) < 2:  
70 - continue  
71 -  
72 - messageStr = sline[1].replace('\n', '').replace('{', "")  
73 - n2 = messageStr.find('Rar')  
74 - loginReq = messageStr.find('LoginReq')  
75 - if n2 != -1:  
76 - code += 1  
77 - ProtoCodeData += ProtoCodeLineReq.format(messageStr[:n2], code) 67 + elif n2 != -1:
  68 + RpcStartCode = RpcStartCode + 1
  69 + ProtoCodeData += ProtoCodeLineReq.format(messageStr[:n2], RpcStartCode)
78 if loginReq != -1: 70 if loginReq != -1:
79 continue 71 continue
80 GoCodeData += GoProtoCodeLine.format(messageStr[:n2], messageStr[:n2]) 72 GoCodeData += GoProtoCodeLine.format(messageStr[:n2], messageStr[:n2])
81 GoCodeTestData += GoProtoCodeTestReqLine.format(messageStr[:n2], messageStr[:n2]) 73 GoCodeTestData += GoProtoCodeTestReqLine.format(messageStr[:n2], messageStr[:n2])
82 - 74 + ProtoCodeData += '\n'
83 # nty 75 # nty
84 for line in lines: 76 for line in lines:
85 if line.find("message") == -1: 77 if line.find("message") == -1:
@@ -93,8 +85,8 @@ def generatorProto(path): @@ -93,8 +85,8 @@ def generatorProto(path):
93 loginReq = messageStr.find('LoginReq') 85 loginReq = messageStr.find('LoginReq')
94 86
95 if n3 != -1: 87 if n3 != -1:
96 - code += 1  
97 - ProtoCodeData += ProtoCodeLineNty.format(messageStr[:n3], code) 88 + NtyStartCode = NtyStartCode + 1
  89 + ProtoCodeData += ProtoCodeLineNty.format(messageStr[:n3], NtyStartCode)
98 if loginReq != -1: 90 if loginReq != -1:
99 continue 91 continue
100 GoCodeTestData += GoProtoCodeTestNtyLine.format(messageStr[:n3], messageStr[:n3]) 92 GoCodeTestData += GoProtoCodeTestNtyLine.format(messageStr[:n3], messageStr[:n3])