Forráskód Böngészése

wip:菜单企业关联

wangshan 3 hónapja
szülő
commit
9f3d3e6404

+ 1 - 0
api/internal/logic/workdesktopmenuinfologic.go

@@ -53,6 +53,7 @@ func (l *WorkDesktopMenuInfoLogic) WorkDesktopMenuInfo(req *types.WorkDesktopMen
 		MgoUserId:    req.MgoUserId,
 		EntNicheDis:  req.EntNicheDis,
 		EntUserRole:  req.EntUserRole,
+		EntDeptId:    req.EntDeptId,
 	})
 	return &types.CommonResp{
 		Error_code: res.ErrorCode,

+ 2 - 0
api/internal/types/types.go

@@ -246,6 +246,7 @@ type WorkDesktopMenuInfoReq struct {
 	NewUserId    string `header:"newUserId"` //base_user_id<---base_user
 	EntId        string `header:"entId,optional"`
 	EntUserId    string `header:"entUserId,optional"`
+	EntDeptId    string `header:"entDeptId,optional"`    //部门id
 	AccountId    string `header:"accountId,optional"`    //账户id
 	EntAccountId string `header:"entAccountId,optional"` //企业账户id
 	PositionType string `header:"positionType,optional"` //职位类型 0个人 1企业
@@ -267,6 +268,7 @@ type WorkDesktopComprehensiveReq struct {
 	NewUserId    string `header:"newUserId,optional"`
 	EntId        string `header:"entId,optional"`
 	EntUserId    string `header:"entUserId,optional"`
+	EntDeptId    string `header:"entDeptId,optional"`    //部门id
 	AccountId    string `header:"accountId,optional"`    //账户id
 	EntAccountId string `header:"entAccountId,optional"` //企业账户id
 	PositionType string `header:"positionType,optional"` //职位类型 0个人 1企业

+ 19 - 17
api/userCenter.api

@@ -234,6 +234,7 @@ type (
 		NewUserId    string `header:"newUserId"` //base_user_id<---base_user
 		EntId        string `header:"entId,optional"`
 		EntUserId    string `header:"entUserId,optional"`
+		EntDeptId    string `header:"entDeptId,optional"`    //部门id
 		AccountId    string `header:"accountId,optional"`    //账户id
 		EntAccountId string `header:"entAccountId,optional"` //企业账户id
 		PositionType string `header:"positionType,optional"` //职位类型 0个人 1企业
@@ -256,6 +257,7 @@ type (
 		NewUserId    string `header:"newUserId,optional"`
 		EntId        string `header:"entId,optional"`
 		EntUserId    string `header:"entUserId,optional"`
+		EntDeptId    string `header:"entDeptId,optional"`    //部门id
 		AccountId    string `header:"accountId,optional"`    //账户id
 		EntAccountId string `header:"entAccountId,optional"` //企业账户id
 		PositionType string `header:"positionType,optional"` //职位类型 0个人 1企业
@@ -291,46 +293,46 @@ type (
 service userCenter-api {
 	@handler Examine
 	post /userCenter/ent/examine (examineReq) returns (resp)
-
+	
 	@handler CheckEnt
 	post /userCenter/ent/check (checkEntReq) returns (resp)
-
+	
 	@handler EntAuth
 	post /userCenter/ent/auth (authEntReq) returns (resp)
-
+	
 	@handler EntList
 	post /userCenter/ent/list (entListReq) returns (entListResp)
-
+	
 	@handler ExamineList
 	post /userCenter/ent/examineList (ExamineListReq) returns (ExamineListResp)
-
+	
 	@handler EntInfo
 	post /userCenter/ent/info (checkEntReq) returns (EntInfoResp)
-
+	
 	@handler ExamineInfo
 	post /userCenter/ent/examineInfo (ExamineInfoReq) returns (ExamineInfoResp)
-
+	
 	@handler UpdateEnt
 	post /userCenter/ent/update (UpdateEntReq) returns (resp)
-
+	
 	@handler GetStatusByCode
 	post /userCenter/ent/getStatusByCode (GetStatusByCodeReq) returns (GetStatusByCodeResp)
-
+	
 	@handler WorkDesktopMenuInfo
 	post /userCenter/workDesktop/menuInfo (WorkDesktopMenuInfoReq) returns (CommonResp)
-
+	
 	@handler WorkDesktopComprehensive
 	post /userCenter/workDesktop/renew/:actionMode (WorkDesktopComprehensiveReq) returns (CommonResp)
-
+	
 	@handler WorkDesktopClearUserInfo
 	get /userCenter/workDesktop/clearUserInfo (WorkDesktopClearUserInfo) returns (CommonResp)
-
+	
 	@handler GetUserInfo
 	post /userCenter/user/getUserInfo (UserReq) returns (resp)
-
+	
 	@handler GetEntUserInfo
 	post /userCenter/ent/userInfo (EntUserReq) returns (resp)
-
+	
 	@handler GetEntUserInfoByPositonId
 	post /userCenter/ent/getUserInfoByPId (GetUserInfoByPIdReq) returns (resp)
 }
@@ -341,13 +343,13 @@ service userCenter-api {
 service userCenter-api {
 	@handler UserAdd
 	post /userCenter/user/add (UserAddReq) returns (resp)
-
+	
 	@handler UserUpdate
 	post /userCenter/user/updateById (UserUpdateReq) returns (resp)
-
+	
 	@handler UserDel
 	post /userCenter/user/deleteById (UserDelReq) returns (resp)
-
+	
 	@handler UserIdentity
 	post /userCenter/user/identity (UserIdentityReq) returns (resp)
 }

+ 71 - 22
entity/user.go

@@ -3,6 +3,7 @@ package entity
 import (
 	"encoding/json"
 	"fmt"
+	"log"
 	"strconv"
 	"strings"
 	"sync"
@@ -339,9 +340,9 @@ func UserRolePowerInit(strs []string) {
 // CheckCapitalResources  是否需要留资 且权限验证--弹窗处理
 // b 一级权限(超级订阅、大会员等)
 // p 二级权限(请求资源中台:医械通等)
-func CheckCapitalResources(menu *JYMenu, wd *WorkDesktopMenu, b, p bool, pUrl string) (title, content, confirmUrl, confirmText, appType, openType string, isShowCancel, usable bool) {
+func (m *WorkDesktopMenu) CheckCapitalResources(menu *JYMenu, b, p bool, pUrl string) (title, content, confirmUrl, confirmText, appType, openType string, isShowCancel, usable bool) {
 	var defaultPopupFunc = func(powerIds ...string) {
-		dpKey := wd.Platform
+		dpKey := m.Platform
 		if len(powerIds) > 0 {
 			dpKey = powerIds[0]
 		}
@@ -349,7 +350,7 @@ func CheckCapitalResources(menu *JYMenu, wd *WorkDesktopMenu, b, p bool, pUrl st
 		content = ConfigJson.DefaultPopup[dpKey].Content
 		confirmUrlArr := strings.Split(ConfigJson.DefaultPopup[dpKey].ConfirmUrl, "__")
 		if len(confirmUrlArr) > 1 {
-			confirmUrl = MC.InterfaceToStr(MC.If(wd.Platform == "PC", confirmUrlArr[1], confirmUrlArr[0]))
+			confirmUrl = MC.InterfaceToStr(MC.If(m.Platform == "PC", confirmUrlArr[1], confirmUrlArr[0]))
 		}
 		confirmText = ConfigJson.DefaultPopup[dpKey].ConfirmText
 		isShowCancel = ConfigJson.DefaultPopup[dpKey].IsShowCancel
@@ -357,13 +358,13 @@ func CheckCapitalResources(menu *JYMenu, wd *WorkDesktopMenu, b, p bool, pUrl st
 		openType = ConfigJson.DefaultPopup[dpKey].OpenType
 	}
 	OverallLock.Lock()
-	userInfo := UserInfoMap[wd.NewUserId]
+	userInfo := UserInfoMap[m.NewUserId]
 	if userInfo == nil {
 		userInfo = &UserInfo{}
 		userInfo.Lock = &sync.Mutex{}
 		userInfo.Capitals = map[string]int{}
 		userInfo.Permissions = map[string]int{}
-		UserInfoMap[wd.NewUserId] = userInfo
+		UserInfoMap[m.NewUserId] = userInfo
 	}
 	OverallLock.Unlock()
 	userInfo.Lock.Lock()
@@ -376,7 +377,7 @@ func CheckCapitalResources(menu *JYMenu, wd *WorkDesktopMenu, b, p bool, pUrl st
 				capitalBool := false
 				for _, cv := range strings.Split(menu.CapitalCode, ",") {
 					if userInfo.Capitals[cv] <= 0 {
-						if c := BaseMysql.CountBySql(`SELECT COUNT(id) FROM `+CapitalRetention+` WHERE  source = ? AND position_id = ? AND appid = ?`, cv, wd.PositionId, wd.AppId); c > 0 {
+						if c := BaseMysql.CountBySql(`SELECT COUNT(id) FROM `+CapitalRetention+` WHERE  source = ? AND position_id = ? AND appid = ?`, cv, m.PositionId, m.AppId); c > 0 {
 							userInfo.Capitals[cv] = 1
 						} else {
 							userInfo.Capitals[cv] = -1
@@ -392,7 +393,6 @@ func CheckCapitalResources(menu *JYMenu, wd *WorkDesktopMenu, b, p bool, pUrl st
 			return true
 		}()
 	)
-	//
 	usable = func() bool {
 		switch menu.Authority {
 		case 0:
@@ -412,6 +412,55 @@ func CheckCapitalResources(menu *JYMenu, wd *WorkDesktopMenu, b, p bool, pUrl st
 	//P630人脉管理
 	//用户 有权限 不再判断 弹窗提示信息
 	if usable {
+		//企业信息验证
+		if menu.CheckEnt > 0 {
+			var GetCheckEntInfo = func(menuId, entId int64) (menuEntInfo MenuEntInfo) {
+				checkEntKey := fmt.Sprintf("check_ent_key_%d_%d", menuId, entId)
+				cb, ce := redis.GetBytes(RedisCode, checkEntKey)
+				if ce == nil && len(*cb) > 0 {
+					ce = json.Unmarshal(*cb, &menuEntInfo)
+				}
+				if ce != nil || len(*cb) == 0 {
+					menuEnt := BaseMysql.FindOne("base_service.work_menu_ent", map[string]interface{}{
+						"menu_id": menuId,
+						"ent_id":  entId,
+					}, "", "create_date  DESC ")
+					if menuEnt != nil && (*menuEnt) != nil {
+						mb, err := json.Marshal(*menuEnt)
+						if err == nil && len(mb) > 0 {
+							err = json.Unmarshal(mb, &menuEntInfo)
+							if err == nil {
+								err = redis.PutBytes(RedisCode, checkEntKey, &mb, 4*60*60)
+							}
+						}
+						if err != nil {
+							log.Println("获取 work_menu_ent 信息 异常:", entId, menuId, m.Phone)
+						}
+					}
+				}
+				return
+			}
+			mei := GetCheckEntInfo(int64(menu.Id), m.EntId)
+			if mei.EntId > 0 {
+				usable = false
+				switch mei.Target {
+				case 1:
+					deptId := strconv.FormatInt(m.EntDeptId, 10)
+					if strings.Contains(mei.DeptId, deptId) {
+						goto env
+					}
+				default:
+					goto env
+				}
+			env:
+				switch mei.Mold {
+				case 0:
+					usable = true
+				default:
+					log.Println("工作菜单企业关联信息表 是否显示菜单:", mei.Mold, mei.EntId)
+				}
+			}
+		}
 		//菜单在当前平台没有权限
 		if menu.Url == "" && pUrl == "" {
 			usable = false
@@ -441,7 +490,7 @@ func CheckCapitalResources(menu *JYMenu, wd *WorkDesktopMenu, b, p bool, pUrl st
 	if PopupIdMap[menu.Id] || PopupIdMap[menu.ParentId] {
 		// 超级订阅 or 大会员
 		if b {
-			userPowerEndTimeKey := fmt.Sprintf(UserPowerEndTime, wd.UserId)
+			userPowerEndTimeKey := fmt.Sprintf(UserPowerEndTime, m.UserId)
 			powerEndTime, _ := strconv.ParseInt(redis.GetStr(RedisCode, userPowerEndTimeKey), 10, 64)
 			//超级订阅 大会员到期时间 是否 大于 90天
 			if powerEndTime == 0 || powerEndTime-time.Now().Unix() < ConfigJson.MedicalFieldTimespan {
@@ -462,13 +511,13 @@ func CheckCapitalResources(menu *JYMenu, wd *WorkDesktopMenu, b, p bool, pUrl st
 			appType = menu.CapitalInfo.AppType
 			openType = menu.CapitalInfo.OpenType
 		} else {
-			title = menu.AdditionalInfo[wd.Platform].Title
-			content = menu.AdditionalInfo[wd.Platform].Content
-			confirmUrl = menu.AdditionalInfo[wd.Platform].ConfirmUrl
-			confirmText = menu.AdditionalInfo[wd.Platform].ConfirmText
-			isShowCancel = menu.AdditionalInfo[wd.Platform].IsShowCancel
-			appType = menu.AdditionalInfo[wd.Platform].AppType
-			openType = menu.AdditionalInfo[wd.Platform].OpenType
+			title = menu.AdditionalInfo[m.Platform].Title
+			content = menu.AdditionalInfo[m.Platform].Content
+			confirmUrl = menu.AdditionalInfo[m.Platform].ConfirmUrl
+			confirmText = menu.AdditionalInfo[m.Platform].ConfirmText
+			isShowCancel = menu.AdditionalInfo[m.Platform].IsShowCancel
+			appType = menu.AdditionalInfo[m.Platform].AppType
+			openType = menu.AdditionalInfo[m.Platform].OpenType
 		}
 	} else { //默认
 		// 留资
@@ -482,13 +531,13 @@ func CheckCapitalResources(menu *JYMenu, wd *WorkDesktopMenu, b, p bool, pUrl st
 			appType = menu.CapitalInfo.AppType
 			openType = menu.CapitalInfo.OpenType
 		} else {
-			title = menu.AdditionalInfo[wd.Platform].Title
-			content = menu.AdditionalInfo[wd.Platform].Content
-			confirmUrl = menu.AdditionalInfo[wd.Platform].ConfirmUrl
-			confirmText = menu.AdditionalInfo[wd.Platform].ConfirmText
-			isShowCancel = menu.AdditionalInfo[wd.Platform].IsShowCancel
-			appType = menu.AdditionalInfo[wd.Platform].AppType
-			openType = menu.AdditionalInfo[wd.Platform].OpenType
+			title = menu.AdditionalInfo[m.Platform].Title
+			content = menu.AdditionalInfo[m.Platform].Content
+			confirmUrl = menu.AdditionalInfo[m.Platform].ConfirmUrl
+			confirmText = menu.AdditionalInfo[m.Platform].ConfirmText
+			isShowCancel = menu.AdditionalInfo[m.Platform].IsShowCancel
+			appType = menu.AdditionalInfo[m.Platform].AppType
+			openType = menu.AdditionalInfo[m.Platform].OpenType
 		}
 	}
 	return

+ 27 - 15
entity/workDesktop.go

@@ -33,6 +33,8 @@ type WorkDesktopMenu struct {
 	MgoUserId    string    //原mongo userId -- p278
 	EntNicheDis  int64     //企业角色 默认0:销售 1:企业资讯分配 2:部门资讯分配 3:企业资讯分配+销售 4:部门资讯分配+销售
 	EntUserRole  string    //1:情报处理岗 2:情报分配岗 3:信息浏览岗 4:销售管理岗,多个逗号拼接
+	EntDeptId    int64     //部门id
+	Phone        string    //手机号
 }
 
 // JYMenu 工作桌面菜单内容
@@ -57,8 +59,16 @@ type JYMenu struct {
 	Authority      int                   //权限逻辑备注 默认0:功能权限、资源权限、留资权限必须全部满足;1:功能权限或资源权限或留资权限满足其一就行;
 	Level          int                   //1:一级菜单;2:二级菜单;3:三级菜单;4:四级菜单
 	Exclude        string                //不需要显示菜单权限集合
+	CheckEnt       int                   // 是否需要进行企业验证  1 :需要
 }
 
+// 菜单企业关联信息
+type MenuEntInfo struct {
+	EntId  int64  //企业id
+	DeptId string //部门id 多个,号隔开
+	Target int    //目标对象;默认0:针对企业;1:针对部门有效
+	Mold   int    //是否显示菜单;默认0:显示菜单,1:隐藏菜单
+}
 type Additional struct {
 	Title        string `json:"title"`                      //弹窗标题
 	Content      string `json:"content"`                    //弹窗提示信息
@@ -72,28 +82,29 @@ type Additional struct {
 // GetMenuTreeData 获取有效菜单数据
 func (m *WorkDesktopMenu) GetMenuTreeData() error {
 	//P278 身份切换
-	positionType := ``
+	moreSql := ``
 	switch m.PositionType { //职位类型 0:个人 1:企业
 	case 0:
-		positionType = `AND available <= 2`
+		moreSql = `AND available <= 2`
 	case 1:
-		positionType = `AND available >= 2`
+		moreSql = `AND available >= 2`
 		//P364 企业角色
 		if m.EntUserRole != "" {
-			positionType += ` AND (FIND_IN_SET('0',entrole)`
+			moreSql += ` AND (FIND_IN_SET('0',entrole)`
 			for _, entUserRole := range strings.Split(m.EntUserRole, ",") {
-				positionType += fmt.Sprintf(` OR FIND_IN_SET('%d',entrole)`, MC.Int64All(entUserRole)+1)
+				moreSql += fmt.Sprintf(` OR FIND_IN_SET('%d',entrole)`, MC.Int64All(entUserRole)+1)
 			}
-			positionType += `)`
+			moreSql += `)`
 		} else {
-			positionType += fmt.Sprintf(` AND (FIND_IN_SET('0',entrole) OR FIND_IN_SET('%d',entrole))`, m.EntNicheDis)
+			moreSql += fmt.Sprintf(` AND (FIND_IN_SET('0',entrole) OR FIND_IN_SET('%d',entrole))`, m.EntNicheDis)
 		}
 	}
 	//tidb数据
-	query := fmt.Sprintf(`SELECT * FROM `+ConfigJson.WorkTableOut+` WHERE  appid=? AND status=%d %s  ORDER BY id ASC`, m.WorkStatus, positionType)
+	//query := fmt.Sprintf(`SELECT  *,b.ent_id,b.dept_id,b.target,b.mold FROM base_service.work_menu_new a LEFT JOIN base_service.work_menu_ent b ON a.id = b.menu_id AND b.ent_id = ? WHERE  appid = ? AND  a.status = %d ORDER BY a.id DESC %s  ORDER BY id ASC`, m.WorkStatus, positionType)
+	query := fmt.Sprintf(`SELECT * FROM `+ConfigJson.WorkTableOut+` WHERE  appid = ? AND status = %d %s  ORDER BY id ASC`, m.WorkStatus, moreSql)
 	//是否开启内网访问数据权限---对应 api 配置文件
 	if m.IntranetBool {
-		query = fmt.Sprintf(`SELECT * FROM `+ConfigJson.WorkTableInside+` WHERE  appid=? AND status>=0 %s ORDER BY id ASC`, positionType)
+		query = fmt.Sprintf(`SELECT * FROM `+ConfigJson.WorkTableInside+` WHERE  appid = ? AND status >= 0 %s ORDER BY id ASC`, moreSql)
 	}
 	logx.Info(m.PositionId, "query:", query)
 	menuData := BaseMysql.SelectBySql(query, m.AppId)
@@ -117,6 +128,7 @@ func (m *WorkDesktopMenu) GetMenuTreeData() error {
 			CapitalCode:    MC.ObjToString(v["capitalcode"]),
 			Authority:      MC.IntAll(v["authority"]),
 			Exclude:        MC.ObjToString(v["exclude"]),
+			CheckEnt:       MC.IntAll(v["checkent"]),
 		}
 		var OpenType = map[string]string{}
 		if err := json.Unmarshal([]byte(MC.ObjToString(v["opentype"])), &OpenType); err == nil {
@@ -218,7 +230,7 @@ func (m *WorkDesktopMenu) WorkMenuFormat() ([]*pb.MenuList, error) {
 		if len(mv.Children) > 0 {
 			for _, sv := range mv.Children {
 				//0:默认展示;1:需验证权限,有权限展示;2:需验证权限,无权限也可展示(可用服务无权限不展示)
-				pBool := m.VerifyPermissions(sv.PowerIds, sv.Exclude)
+				pBool = m.VerifyPermissions(sv.PowerIds, sv.Exclude)
 				//checkCode==1 验证权限结果 无权限不显示
 				if !pBool.HasBool && sv.CheckCode == 1 {
 					continue
@@ -255,7 +267,7 @@ func (m *WorkDesktopMenu) WorkMenuFormat() ([]*pb.MenuList, error) {
 							continue
 						}
 						//0:默认展示;1:需验证权限,有权限展示;2:需验证权限,无权限也可展示(可用服务无权限不展示)
-						pBool := m.VerifyPermissions(tv.PowerIds, tv.Exclude)
+						pBool = m.VerifyPermissions(tv.PowerIds, tv.Exclude)
 						//checkCode==1 验证权限结果 无权限不显示
 						if !pBool.HasBool && tv.CheckCode == 1 {
 							continue
@@ -273,7 +285,7 @@ func (m *WorkDesktopMenu) WorkMenuFormat() ([]*pb.MenuList, error) {
 							//用户是否需要留资
 							//资源中台获取用户权限--没有权限:title等置空
 							//ResourceLib.PowerHandle()
-							title, content, confirmUrl, confirmText, appType, openType, isShowCancel, feasibility = CheckCapitalResources(tv, m, pBool.HasBool, m.VerifyPermissions(tv.PermissionCode, "").HasBool, sv.Url)
+							title, content, confirmUrl, confirmText, appType, openType, isShowCancel, feasibility = m.CheckCapitalResources(tv, pBool.HasBool, m.VerifyPermissions(tv.PermissionCode, "").HasBool, sv.Url)
 						}
 						//弹框地址处理
 						threeLevel := &pb.ThreeLevelMenu{
@@ -306,7 +318,7 @@ func (m *WorkDesktopMenu) WorkMenuFormat() ([]*pb.MenuList, error) {
 									//资源中台获取用户权限--没有权限:title等置空
 									//ResourceLib.PowerHandle()
 									//判断资源中台权限
-									title, content, confirmUrl, confirmText, appType, openType, isShowCancel, feasibility = CheckCapitalResources(fv, m, pBool.HasBool, m.VerifyPermissions(fv.PermissionCode, "").HasBool, tv.Url)
+									title, content, confirmUrl, confirmText, appType, openType, isShowCancel, feasibility = m.CheckCapitalResources(fv, pBool.HasBool, m.VerifyPermissions(fv.PermissionCode, "").HasBool, tv.Url)
 								}
 								threeLevel.Url = MC.If(fv.Url != "", fv.Url, tv.Url).(string)
 								threeLevel.Icon = MC.If(fv.Icon != "", fv.Icon, tv.Icon).(string)
@@ -566,7 +578,7 @@ func (m *WorkDesktopMenu) CommonlyFormat(childMenus map[int][]*JYMenu) ([]*pb.Th
 		feasibility := pBool.HasBool
 		//三级菜单------
 		if len(childMenus[mv.Id]) == 0 && (mv.CapitalCode != "" || mv.PermissionCode != "") {
-			_, _, _, _, _, _, _, feasibility = CheckCapitalResources(mv, m, pBool.HasBool, m.VerifyPermissions(mv.PermissionCode, "").HasBool, "")
+			_, _, _, _, _, _, _, feasibility = m.CheckCapitalResources(mv, pBool.HasBool, m.VerifyPermissions(mv.PermissionCode, "").HasBool, "")
 		}
 		saveIds = append(saveIds, encrypt.SE.EncodeString(strconv.Itoa(mv.Id)))
 		subLevel[mv.Id] = true
@@ -602,7 +614,7 @@ func (m *WorkDesktopMenu) CommonlyFormat(childMenus map[int][]*JYMenu) ([]*pb.Th
 					continue
 				}
 				if cv.CapitalCode != "" || cv.PermissionCode != "" {
-					_, _, _, _, _, _, _, feasibility = CheckCapitalResources(cv, m, pBool.HasBool, m.VerifyPermissions(cv.PermissionCode, "").HasBool, mv.Url)
+					_, _, _, _, _, _, _, feasibility = m.CheckCapitalResources(cv, pBool.HasBool, m.VerifyPermissions(cv.PermissionCode, "").HasBool, mv.Url)
 				}
 				oneLevel.Url = MC.If(cv.Url != "", cv.Url, mv.Url).(string)
 				oneLevel.Icon = MC.If(cv.Icon != "", cv.Icon, mv.Icon).(string)

+ 0 - 1
go.mod

@@ -19,7 +19,6 @@ require (
 	app.yhyue.com/moapp/jyMarketing v0.0.2-0.20230304035551-21bb1eedf547 // indirect
 	app.yhyue.com/moapp/jyPoints v1.1.2-0.20231020023521-1a4b1bbf9736 // indirect
 	app.yhyue.com/moapp/message v0.0.0-20231204024949-8c7145bfc161 // indirect
-	bp.jydev.jianyu360.cn/BP/jynsq v0.0.0-20220222052708-ebc43af90698 // indirect
 	bp.jydev.jianyu360.cn/BaseService/entManageApplication v0.0.0-20231226074509-942d80dc34eb // indirect
 	bp.jydev.jianyu360.cn/BaseService/jyMicroservices v0.0.2 // indirect
 	filippo.io/edwards25519 v1.1.0 // indirect

+ 0 - 1
go.sum

@@ -31,7 +31,6 @@ app.yhyue.com/moapp/jypkg v1.33.5 h1:XVzoi4POBZ8Tprr9Sk/HSC0CB3WcbPFwMpuu0o3B4jI
 app.yhyue.com/moapp/jypkg v1.33.5/go.mod h1:m/OMjugcf4XK5c/2mErxnXEyAZ+WNya8HP0x8jFGw4U=
 app.yhyue.com/moapp/message v0.0.0-20231204024949-8c7145bfc161 h1:WGi4OEIoqw6NpNFGioUEBZnjK9aBa+xJqf/5WY+QyhM=
 app.yhyue.com/moapp/message v0.0.0-20231204024949-8c7145bfc161/go.mod h1:0Oj8SB4pVjdCLD28sy2zyM3hS0WHGpNuVcakLW43GmI=
-bp.jydev.jianyu360.cn/BP/jynsq v0.0.0-20220222052708-ebc43af90698 h1:2xGDnrmbGt4VzAmDSsKH+C9Bq40z9eQ4NJfH/779o8g=
 bp.jydev.jianyu360.cn/BP/jynsq v0.0.0-20220222052708-ebc43af90698/go.mod h1:ojo/AUH9Yr1wzarEjOaNMkj1Cet/9r8IgLyba64Z52E=
 bp.jydev.jianyu360.cn/BaseService/entManageApplication v0.0.0-20231226074509-942d80dc34eb h1:wK0ios5IvFSDnH1sUeGcTag2V6VbY1pGs40tKyc0+kc=
 bp.jydev.jianyu360.cn/BaseService/entManageApplication v0.0.0-20231226074509-942d80dc34eb/go.mod h1:m651CSqj2VC8yphruu3TyE5dWh6zBBTbJyF271mM1Fw=

+ 314 - 294
rpc/pb/userCenter.pb.go

@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.31.0
-// 	protoc        v3.15.1
+// 	protoc-gen-go v1.28.0
+// 	protoc        v3.15.5
 // source: userCenter.proto
 
 package pb
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 机构认证 入参
+//机构认证 入参
 type EntAuthReq struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -156,7 +156,7 @@ func (x *EntAuthReq) GetReferer() string {
 	return ""
 }
 
-// 机构认证出参
+//机构认证出参
 type EntAuthResp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -220,7 +220,7 @@ func (x *EntAuthResp) GetData() *EntAuthData {
 	return nil
 }
 
-// 机构认证出参
+//机构认证出参
 type EntAuthData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -276,7 +276,7 @@ func (x *EntAuthData) GetEntId() string {
 	return ""
 }
 
-// 机构审核入参
+//机构审核入参
 type ExamineReq struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -356,7 +356,7 @@ func (x *ExamineReq) GetExamineId() string {
 	return ""
 }
 
-// 机构审核出参
+//机构审核出参
 type ExamineResp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -467,7 +467,7 @@ func (x *ExamineData) GetStatus() int64 {
 	return 0
 }
 
-// 企业列表入参
+//企业列表入参
 type EntListReq struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -603,7 +603,7 @@ func (x *EntListReq) GetAuthPhone() string {
 	return ""
 }
 
-// 企业列表出参
+//企业列表出参
 type EntListResp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -833,7 +833,7 @@ func (x *EntList) GetFrozenStatus() int64 {
 	return 0
 }
 
-// 审核列表入参
+//审核列表入参
 type ExamineListReq struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -937,7 +937,7 @@ func (x *ExamineListReq) GetPageSize() string {
 	return ""
 }
 
-// 审核列表出参
+//审核列表出参
 type ExamineListResp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1175,7 +1175,7 @@ func (x *ExamineList) GetRegPhone() string {
 	return ""
 }
 
-// 查看企业状态入参
+//查看企业状态入参
 type CheckEntReq struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1223,7 +1223,7 @@ func (x *CheckEntReq) GetEntId() int64 {
 	return 0
 }
 
-// 查看企业状态出参
+//查看企业状态出参
 type CheckEntResp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1675,7 +1675,7 @@ func (x *EntUpdateReq) GetUpdateType() int64 {
 	return 0
 }
 
-// 审核详情入参
+//审核详情入参
 type CheckExamineReq struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1841,7 +1841,7 @@ func (x *GetStatusByCodeResp) GetData() *GetStatusByCode {
 	return nil
 }
 
-// 用户权益
+//用户权益
 type UserInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1969,7 +1969,7 @@ func (x *UserInfo) GetIsTourist() int64 {
 	return 0
 }
 
-// 订阅设置
+//订阅设置
 type Subscribe struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2120,7 +2120,7 @@ func (x *List) GetValue() []string {
 	return nil
 }
 
-// 分类
+//分类
 type Items struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2184,7 +2184,7 @@ func (x *Items) GetAKey() []*Keys {
 	return nil
 }
 
-// 关键词
+//关键词
 type Keys struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3243,7 +3243,7 @@ func (x *UserIdReq) GetUnionid() string {
 	return ""
 }
 
-// 工作桌面
+//工作桌面
 type WorkDesktopMenuInfoReq struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3265,6 +3265,7 @@ type WorkDesktopMenuInfoReq struct {
 	EntAccountId string `protobuf:"bytes,14,opt,name=entAccountId,proto3" json:"entAccountId,omitempty"`
 	EntNicheDis  int64  `protobuf:"varint,15,opt,name=entNicheDis,proto3" json:"entNicheDis,omitempty"`
 	EntUserRole  string `protobuf:"bytes,16,opt,name=entUserRole,proto3" json:"entUserRole,omitempty"`
+	EntDeptId    string `protobuf:"bytes,17,opt,name=entDeptId,proto3" json:"entDeptId,omitempty"`
 }
 
 func (x *WorkDesktopMenuInfoReq) Reset() {
@@ -3411,7 +3412,14 @@ func (x *WorkDesktopMenuInfoReq) GetEntUserRole() string {
 	return ""
 }
 
-// 工作桌面-返回数据
+func (x *WorkDesktopMenuInfoReq) GetEntDeptId() string {
+	if x != nil {
+		return x.EntDeptId
+	}
+	return ""
+}
+
+//工作桌面-返回数据
 type WorkDesktopMenuInfoResp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3982,8 +3990,8 @@ func (x *TipInfo) GetOpenType() string {
 	return ""
 }
 
-// 工作桌面 菜单选择类型 全部/可用
-// 工作桌面 常用功能更新
+//工作桌面 菜单选择类型 全部/可用
+//工作桌面 常用功能更新
 type WorkDesktopComprehensiveReq struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4007,6 +4015,7 @@ type WorkDesktopComprehensiveReq struct {
 	EntAccountId string `protobuf:"bytes,16,opt,name=entAccountId,proto3" json:"entAccountId,omitempty"`
 	EntNicheDis  int64  `protobuf:"varint,17,opt,name=entNicheDis,proto3" json:"entNicheDis,omitempty"`
 	EntUserRole  string `protobuf:"bytes,18,opt,name=entUserRole,proto3" json:"entUserRole,omitempty"`
+	EntDeptId    string `protobuf:"bytes,19,opt,name=entDeptId,proto3" json:"entDeptId,omitempty"`
 }
 
 func (x *WorkDesktopComprehensiveReq) Reset() {
@@ -4167,7 +4176,14 @@ func (x *WorkDesktopComprehensiveReq) GetEntUserRole() string {
 	return ""
 }
 
-// 工作桌面 综合功能-返回数据
+func (x *WorkDesktopComprehensiveReq) GetEntDeptId() string {
+	if x != nil {
+		return x.EntDeptId
+	}
+	return ""
+}
+
+//工作桌面 综合功能-返回数据
 type WorkDesktopComprehensiveResp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4239,7 +4255,7 @@ func (x *WorkDesktopComprehensiveResp) GetCommonlySize() int64 {
 	return 0
 }
 
-// 清除用户功能相关内存信息
+//清除用户功能相关内存信息
 type WorkDesktopClearUserInfoReq struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4311,7 +4327,7 @@ func (x *WorkDesktopClearUserInfoReq) GetPlatform() string {
 	return ""
 }
 
-// 清除用户菜单缓存结果
+//清除用户菜单缓存结果
 type WorkDesktopClearUserInfoResp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4367,6 +4383,7 @@ func (x *WorkDesktopClearUserInfoResp) GetMsg() string {
 	return ""
 }
 
+//
 type IdentityReq struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5219,7 +5236,7 @@ var file_userCenter_proto_rawDesc = []byte{
 	0x08, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52,
 	0x07, 0x61, 0x4f, 0x70, 0x65, 0x6e, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x6f,
 	0x6e, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x75, 0x6e, 0x69, 0x6f, 0x6e,
-	0x69, 0x64, 0x22, 0xf6, 0x03, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74,
+	0x69, 0x64, 0x22, 0x94, 0x04, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74,
 	0x6f, 0x70, 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a,
 	0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75,
 	0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x18, 0x02,
@@ -5250,37 +5267,22 @@ var file_userCenter_proto_rawDesc = []byte{
 	0x63, 0x68, 0x65, 0x44, 0x69, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x65, 0x6e,
 	0x74, 0x4e, 0x69, 0x63, 0x68, 0x65, 0x44, 0x69, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x74,
 	0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
-	0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x22, 0x74, 0x0a, 0x17, 0x57,
-	0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x6e,
-	0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f,
-	0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f,
-	0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d,
-	0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d,
-	0x73, 0x67, 0x12, 0x1d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x09, 0x2e, 0x4d, 0x65, 0x6e, 0x75, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74,
-	0x61, 0x22, 0x4d, 0x0a, 0x08, 0x4d, 0x65, 0x6e, 0x75, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a,
-	0x08, 0x6d, 0x65, 0x6e, 0x75, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x08, 0x6d, 0x65, 0x6e, 0x75, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x08, 0x6d, 0x65, 0x6e,
-	0x75, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x4d, 0x65,
-	0x6e, 0x75, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x08, 0x6d, 0x65, 0x6e, 0x75, 0x4c, 0x69, 0x73, 0x74,
-	0x22, 0x84, 0x02, 0x0a, 0x08, 0x4d, 0x65, 0x6e, 0x75, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x0a,
-	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
-	0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x61, 0x62, 0x6c,
-	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12,
-	0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12,
-	0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x07, 0x61, 0x70, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65,
-	0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65,
-	0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x07, 0x74, 0x69, 0x70, 0x49, 0x6e, 0x66, 0x6f,
-	0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x54, 0x69, 0x70, 0x49, 0x6e, 0x66, 0x6f,
-	0x52, 0x07, 0x74, 0x69, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x05, 0x63, 0x68, 0x69,
-	0x6c, 0x64, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x53, 0x65, 0x63, 0x6f, 0x6e,
-	0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x05, 0x63, 0x68, 0x69, 0x6c,
-	0x64, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09,
-	0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x22, 0x8a, 0x02, 0x0a, 0x0f, 0x53, 0x65, 0x63, 0x6f,
-	0x6e, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4d, 0x65, 0x6e, 0x75, 0x12, 0x12, 0x0a, 0x04, 0x6e,
+	0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x65,
+	0x6e, 0x74, 0x44, 0x65, 0x70, 0x74, 0x49, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
+	0x65, 0x6e, 0x74, 0x44, 0x65, 0x70, 0x74, 0x49, 0x64, 0x22, 0x74, 0x0a, 0x17, 0x57, 0x6f, 0x72,
+	0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x6e, 0x66, 0x6f,
+	0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f,
+	0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43,
+	0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67,
+	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67,
+	0x12, 0x1d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09,
+	0x2e, 0x4d, 0x65, 0x6e, 0x75, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22,
+	0x4d, 0x0a, 0x08, 0x4d, 0x65, 0x6e, 0x75, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x6d,
+	0x65, 0x6e, 0x75, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d,
+	0x65, 0x6e, 0x75, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x08, 0x6d, 0x65, 0x6e, 0x75, 0x4c,
+	0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x4d, 0x65, 0x6e, 0x75,
+	0x4c, 0x69, 0x73, 0x74, 0x52, 0x08, 0x6d, 0x65, 0x6e, 0x75, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x84,
+	0x02, 0x0a, 0x08, 0x4d, 0x65, 0x6e, 0x75, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e,
 	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
 	0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69,
 	0x63, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
@@ -5292,244 +5294,262 @@ var file_userCenter_proto_rawDesc = []byte{
 	0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x54,
 	0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x07, 0x74, 0x69, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x08,
 	0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x54, 0x69, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07,
-	0x74, 0x69, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, 0x0a, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64,
-	0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x65, 0x4c, 0x65,
-	0x76, 0x65, 0x6c, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x12, 0x14,
-	0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6d,
-	0x61, 0x74, 0x63, 0x68, 0x22, 0x80, 0x02, 0x0a, 0x0e, 0x54, 0x68, 0x72, 0x65, 0x65, 0x4c, 0x65,
-	0x76, 0x65, 0x6c, 0x4d, 0x65, 0x6e, 0x75, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
-	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69,
-	0x63, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12,
-	0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72,
-	0x6c, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
-	0x08, 0x52, 0x06, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
-	0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70,
-	0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x54,
-	0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18,
-	0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12,
-	0x22, 0x0a, 0x07, 0x74, 0x69, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x08, 0x2e, 0x54, 0x69, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x74, 0x69, 0x70, 0x49,
-	0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x0a, 0x20, 0x03,
-	0x28, 0x09, 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f,
-	0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72,
-	0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xd5, 0x01, 0x0a, 0x07, 0x54, 0x69, 0x70, 0x49,
-	0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e,
-	0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74,
-	0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x55, 0x72,
-	0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d,
-	0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x54, 0x65,
-	0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72,
-	0x6d, 0x54, 0x65, 0x78, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x43,
-	0x61, 0x6e, 0x63, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x53,
-	0x68, 0x6f, 0x77, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70,
-	0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x54,
-	0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18,
-	0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22,
-	0xb1, 0x04, 0x0a, 0x1b, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x43,
-	0x6f, 0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x12,
-	0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x1a, 0x0a,
-	0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f,
-	0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12,
-	0x1e, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12,
-	0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x6e, 0x75, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x08, 0x6d, 0x65, 0x6e, 0x75, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d,
-	0x65, 0x6e, 0x75, 0x49, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65,
-	0x6e, 0x75, 0x49, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65, 0x72,
-	0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65,
-	0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x74,
-	0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x6e,
-	0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75,
-	0x6e, 0x74, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f,
-	0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
-	0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x6f, 0x73,
-	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6f, 0x73,
-	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70,
-	0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x74,
-	0x72, 0x61, 0x6e, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52,
-	0x0c, 0x69, 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x1c, 0x0a,
-	0x09, 0x6d, 0x67, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x09, 0x6d, 0x67, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x65,
-	0x6e, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x0c, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12,
-	0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x4e, 0x69, 0x63, 0x68, 0x65, 0x44, 0x69, 0x73, 0x18, 0x11,
-	0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x4e, 0x69, 0x63, 0x68, 0x65, 0x44, 0x69,
-	0x73, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65,
-	0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52,
-	0x6f, 0x6c, 0x65, 0x22, 0xa3, 0x01, 0x0a, 0x1c, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b,
-	0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65,
-	0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f,
-	0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43,
-	0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67,
-	0x12, 0x23, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f,
-	0x2e, 0x54, 0x68, 0x72, 0x65, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4d, 0x65, 0x6e, 0x75, 0x52,
-	0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x6c,
-	0x79, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x43, 0x6f, 0x6d,
-	0x6d, 0x6f, 0x6e, 0x6c, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x1b, 0x57, 0x6f,
-	0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x55, 0x73,
-	0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65,
-	0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49,
-	0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74,
-	0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x73,
-	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66,
-	0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66,
-	0x6f, 0x72, 0x6d, 0x22, 0x3e, 0x0a, 0x1c, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74,
-	0x6f, 0x70, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52,
-	0x65, 0x73, 0x70, 0x12, 0x0c, 0x0a, 0x01, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x01,
-	0x62, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
-	0x6d, 0x73, 0x67, 0x22, 0x1d, 0x0a, 0x0b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52,
-	0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02,
-	0x69, 0x64, 0x22, 0x8c, 0x04, 0x0a, 0x08, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12,
-	0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
-	0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x12,
-	0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61,
-	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09,
-	0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x6e, 0x74,
-	0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52,
-	0x0c, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a,
-	0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28,
-	0x03, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a,
-	0x0c, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20,
-	0x01, 0x28, 0x03, 0x52, 0x0c, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70,
-	0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03,
+	0x74, 0x69, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64,
+	0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x4c,
+	0x65, 0x76, 0x65, 0x6c, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x12,
+	0x14, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05,
+	0x6d, 0x61, 0x74, 0x63, 0x68, 0x22, 0x8a, 0x02, 0x0a, 0x0f, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64,
+	0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4d, 0x65, 0x6e, 0x75, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
+	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a,
+	0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x63, 0x6f,
+	0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
+	0x75, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20,
+	0x01, 0x28, 0x08, 0x52, 0x06, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69,
+	0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61,
+	0x70, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70,
+	0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x54, 0x79, 0x70,
+	0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x54, 0x79, 0x70,
+	0x65, 0x12, 0x22, 0x0a, 0x07, 0x74, 0x69, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01,
+	0x28, 0x0b, 0x32, 0x08, 0x2e, 0x54, 0x69, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x74, 0x69,
+	0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, 0x0a, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x18, 0x09,
+	0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x65, 0x4c, 0x65, 0x76, 0x65,
+	0x6c, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05,
+	0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x61, 0x74,
+	0x63, 0x68, 0x22, 0x80, 0x02, 0x0a, 0x0e, 0x54, 0x68, 0x72, 0x65, 0x65, 0x4c, 0x65, 0x76, 0x65,
+	0x6c, 0x4d, 0x65, 0x6e, 0x75, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f,
+	0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x10, 0x0a,
+	0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12,
+	0x16, 0x0a, 0x06, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52,
+	0x06, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x54, 0x79,
+	0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x54, 0x79, 0x70,
+	0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a,
+	0x07, 0x74, 0x69, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08,
+	0x2e, 0x54, 0x69, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x74, 0x69, 0x70, 0x49, 0x6e, 0x66,
+	0x6f, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09,
+	0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70,
+	0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75,
+	0x70, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xd5, 0x01, 0x0a, 0x07, 0x54, 0x69, 0x70, 0x49, 0x6e, 0x66,
+	0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+	0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65,
+	0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
+	0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x55, 0x72, 0x6c, 0x18,
+	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x55, 0x72,
+	0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x54, 0x65, 0x78, 0x74,
+	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x54,
+	0x65, 0x78, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x61, 0x6e,
+	0x63, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x53, 0x68, 0x6f,
+	0x77, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x54, 0x79,
+	0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x54, 0x79, 0x70,
+	0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0xcf, 0x04,
+	0x0a, 0x1b, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6d,
+	0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a,
+	0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75,
+	0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x18, 0x02,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70,
+	0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70,
+	0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65,
+	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x1e, 0x0a,
+	0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a,
+	0x08, 0x6d, 0x65, 0x6e, 0x75, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x08, 0x6d, 0x65, 0x6e, 0x75, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x6e,
+	0x75, 0x49, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x6e, 0x75,
+	0x49, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64,
+	0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49,
+	0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09,
 	0x52, 0x05, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x55, 0x73,
-	0x65, 0x72, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x55,
-	0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72,
-	0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x55,
-	0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49,
-	0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12,
-	0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x4e, 0x69, 0x63, 0x68, 0x65, 0x44, 0x69, 0x73, 0x18, 0x0c,
-	0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x4e, 0x69, 0x63, 0x68, 0x65, 0x44, 0x69,
-	0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01,
-	0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x65,
-	0x6e, 0x74, 0x44, 0x65, 0x70, 0x74, 0x49, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09,
-	0x65, 0x6e, 0x74, 0x44, 0x65, 0x70, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x74,
-	0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
-	0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x65,
-	0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x0c, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12,
-	0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x69, 0x6c, 0x18, 0x11,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x69,
-	0x6c, 0x22, 0x37, 0x0a, 0x0c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73,
-	0x70, 0x12, 0x27, 0x0a, 0x09, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x73, 0x18, 0x01,
-	0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52,
-	0x09, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x73, 0x22, 0x5d, 0x0a, 0x0f, 0x55, 0x73,
-	0x65, 0x72, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a,
-	0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70,
-	0x70, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49,
-	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65,
-	0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01,
-	0x28, 0x03, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0xd2, 0x02, 0x0a, 0x10, 0x55, 0x73,
-	0x65, 0x72, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d,
-	0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x03, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a,
-	0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65,
-	0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x65,
-	0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63,
-	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x75,
-	0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c,
-	0x65, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01,
-	0x28, 0x03, 0x52, 0x0c, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64,
-	0x12, 0x2a, 0x0a, 0x10, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75,
-	0x6e, 0x74, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x65, 0x6e, 0x74, 0x55,
-	0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e,
-	0x75, 0x73, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x07,
-	0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69,
-	0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50,
-	0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52,
-	0x11, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
-	0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x32, 0xe1,
-	0x09, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x24, 0x0a,
-	0x07, 0x45, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x12, 0x0b, 0x2e, 0x45, 0x6e, 0x74, 0x41, 0x75,
-	0x74, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x45, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x52,
-	0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x0a, 0x45, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e,
-	0x65, 0x12, 0x0b, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0c,
-	0x2e, 0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x24, 0x0a, 0x07,
-	0x45, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0b, 0x2e, 0x45, 0x6e, 0x74, 0x4c, 0x69, 0x73,
-	0x74, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x45, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
-	0x73, 0x70, 0x12, 0x30, 0x0a, 0x0b, 0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73,
-	0x74, 0x12, 0x0f, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52,
-	0x65, 0x71, 0x1a, 0x10, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74,
-	0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x08, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x6e, 0x74,
-	0x12, 0x0c, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x0d,
-	0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a,
-	0x07, 0x45, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0c, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b,
-	0x45, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x45, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f,
-	0x52, 0x65, 0x73, 0x70, 0x12, 0x28, 0x0a, 0x09, 0x45, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74,
-	0x65, 0x12, 0x0d, 0x2e, 0x45, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71,
-	0x1a, 0x0c, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d,
-	0x0a, 0x0b, 0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x2e,
-	0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x1a,
-	0x0c, 0x2e, 0x45, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a,
-	0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x43, 0x6f, 0x64, 0x65,
-	0x12, 0x13, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x43, 0x6f,
-	0x64, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75,
-	0x73, 0x42, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x24, 0x0a, 0x07, 0x55,
-	0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x12, 0x0b, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64,
-	0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73,
-	0x70, 0x12, 0x26, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12,
-	0x0a, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x45, 0x78,
-	0x61, 0x6d, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x23, 0x0a, 0x07, 0x55, 0x73, 0x65,
-	0x72, 0x44, 0x65, 0x6c, 0x12, 0x0a, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71,
-	0x1a, 0x0c, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48,
-	0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x4d, 0x65, 0x6e,
-	0x75, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b,
-	0x74, 0x6f, 0x70, 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18,
-	0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x4d, 0x65, 0x6e, 0x75,
-	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x57, 0x0a, 0x18, 0x57, 0x6f, 0x72, 0x6b,
-	0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e,
-	0x73, 0x69, 0x76, 0x65, 0x12, 0x1c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74,
-	0x6f, 0x70, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x52,
-	0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70,
-	0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73,
-	0x70, 0x12, 0x57, 0x0a, 0x18, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70,
-	0x43, 0x6c, 0x65, 0x61, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x2e,
-	0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x43, 0x6c, 0x65, 0x61, 0x72,
-	0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x57, 0x6f,
-	0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x55, 0x73,
-	0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a, 0x0b, 0x47, 0x65,
-	0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x08, 0x2e, 0x55, 0x73, 0x65, 0x72,
-	0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2b,
-	0x0a, 0x0e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f,
-	0x12, 0x0b, 0x2e, 0x45, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e,
-	0x45, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x0e, 0x47,
-	0x65, 0x74, 0x45, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0f, 0x2e,
-	0x45, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x10,
-	0x2e, 0x45, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70,
-	0x12, 0x34, 0x0a, 0x0f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x73, 0x45, 0x6e, 0x74, 0x41, 0x64,
-	0x6d, 0x69, 0x6e, 0x12, 0x0b, 0x2e, 0x45, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71,
-	0x1a, 0x14, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x73, 0x45, 0x6e, 0x74, 0x41, 0x64, 0x6d,
-	0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x0c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69,
-	0x74, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0c, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74,
-	0x79, 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52,
-	0x65, 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x10, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x42,
-	0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x0c, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69,
-	0x74, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79,
-	0x12, 0x2f, 0x0a, 0x14, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x42, 0x79, 0x50, 0x6f,
-	0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x0c, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74,
-	0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74,
-	0x79, 0x12, 0x2e, 0x0a, 0x13, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x42, 0x79, 0x45,
-	0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x0c, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74,
-	0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74,
-	0x79, 0x12, 0x2a, 0x0a, 0x0f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x42, 0x79, 0x45,
-	0x6e, 0x74, 0x49, 0x64, 0x12, 0x0c, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52,
-	0x65, 0x71, 0x1a, 0x09, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x33, 0x0a,
-	0x0c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x10, 0x2e,
-	0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x1a,
-	0x11, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65,
-	0x73, 0x70, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x33,
+	0x65, 0x72, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x55,
+	0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
+	0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
+	0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54,
+	0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x6f, 0x73, 0x69, 0x74,
+	0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74,
+	0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x73,
+	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x61,
+	0x6e, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69,
+	0x6e, 0x74, 0x72, 0x61, 0x6e, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x6d,
+	0x67, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
+	0x6d, 0x67, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x6e, 0x74,
+	0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x0c, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a,
+	0x0b, 0x65, 0x6e, 0x74, 0x4e, 0x69, 0x63, 0x68, 0x65, 0x44, 0x69, 0x73, 0x18, 0x11, 0x20, 0x01,
+	0x28, 0x03, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x4e, 0x69, 0x63, 0x68, 0x65, 0x44, 0x69, 0x73, 0x12,
+	0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x12,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c,
+	0x65, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x70, 0x74, 0x49, 0x64, 0x18, 0x13,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x70, 0x74, 0x49, 0x64, 0x22,
+	0xa3, 0x01, 0x0a, 0x1c, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x43,
+	0x6f, 0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70,
+	0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01,
+	0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12,
+	0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x23, 0x0a, 0x04,
+	0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x54, 0x68, 0x72,
+	0x65, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x04, 0x64, 0x61, 0x74,
+	0x61, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x6c, 0x79, 0x53, 0x69, 0x7a,
+	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x6c,
+	0x79, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x1b, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65,
+	0x73, 0x6b, 0x74, 0x6f, 0x70, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e,
+	0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18,
+	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a,
+	0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70,
+	0x70, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49,
+	0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
+	0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18,
+	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22,
+	0x3e, 0x0a, 0x1c, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x43, 0x6c,
+	0x65, 0x61, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12,
+	0x0c, 0x0a, 0x01, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x01, 0x62, 0x12, 0x10, 0x0a,
+	0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22,
+	0x1d, 0x0a, 0x0b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x12, 0x0e,
+	0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x22, 0x8c,
+	0x04, 0x0a, 0x08, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e,
+	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
+	0x1a, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
+	0x03, 0x52, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75,
+	0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75,
+	0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75,
+	0x6e, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f,
+	0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x6f,
+	0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x65, 0x6e, 0x74,
+	0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6f, 0x73,
+	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x70,
+	0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6f, 0x73,
+	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52,
+	0x0c, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a,
+	0x05, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x6e,
+	0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64,
+	0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49,
+	0x64, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65,
+	0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4e,
+	0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x0b, 0x20,
+	0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x65,
+	0x6e, 0x74, 0x4e, 0x69, 0x63, 0x68, 0x65, 0x44, 0x69, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03,
+	0x52, 0x0b, 0x65, 0x6e, 0x74, 0x4e, 0x69, 0x63, 0x68, 0x65, 0x44, 0x69, 0x73, 0x12, 0x18, 0x0a,
+	0x07, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07,
+	0x65, 0x6e, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x44, 0x65,
+	0x70, 0x74, 0x49, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x44,
+	0x65, 0x70, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72,
+	0x52, 0x6f, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x55,
+	0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x6e, 0x74, 0x55, 0x73,
+	0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65,
+	0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65,
+	0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x69, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09,
+	0x52, 0x0b, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x69, 0x6c, 0x22, 0x37, 0x0a,
+	0x0c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a,
+	0x09, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
+	0x32, 0x09, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x09, 0x69, 0x64, 0x65,
+	0x6e, 0x74, 0x69, 0x74, 0x79, 0x73, 0x22, 0x5d, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64,
+	0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70,
+	0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12,
+	0x1e, 0x0a, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20,
+	0x01, 0x28, 0x03, 0x52, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12,
+	0x14, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
+	0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0xd2, 0x02, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64,
+	0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x72,
+	0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09,
+	0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72,
+	0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72,
+	0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e,
+	0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e,
+	0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e,
+	0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x41,
+	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x6e, 0x74, 0x41,
+	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c,
+	0x65, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10,
+	0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64,
+	0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41,
+	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x72,
+	0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03,
+	0x52, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64,
+	0x12, 0x2c, 0x0a, 0x11, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74,
+	0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x65, 0x6e, 0x74,
+	0x55, 0x73, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1a,
+	0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09,
+	0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x32, 0xe1, 0x09, 0x0a, 0x0a, 0x55,
+	0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x07, 0x45, 0x6e, 0x74,
+	0x41, 0x75, 0x74, 0x68, 0x12, 0x0b, 0x2e, 0x45, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65,
+	0x71, 0x1a, 0x0c, 0x2e, 0x45, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12,
+	0x27, 0x0a, 0x0a, 0x45, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x12, 0x0b, 0x2e,
+	0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x45, 0x78, 0x61,
+	0x6d, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x24, 0x0a, 0x07, 0x45, 0x6e, 0x74, 0x4c,
+	0x69, 0x73, 0x74, 0x12, 0x0b, 0x2e, 0x45, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71,
+	0x1a, 0x0c, 0x2e, 0x45, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30,
+	0x0a, 0x0b, 0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0f, 0x2e,
+	0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x10,
+	0x2e, 0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70,
+	0x12, 0x27, 0x0a, 0x08, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x12, 0x0c, 0x2e, 0x43,
+	0x68, 0x65, 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x43, 0x68, 0x65,
+	0x63, 0x6b, 0x45, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x07, 0x45, 0x6e, 0x74,
+	0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0c, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x52,
+	0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x45, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70,
+	0x12, 0x28, 0x0a, 0x09, 0x45, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x0d, 0x2e,
+	0x45, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x45,
+	0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x0b, 0x45, 0x78,
+	0x61, 0x6d, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x2e, 0x43, 0x68, 0x65, 0x63,
+	0x6b, 0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x45, 0x6e,
+	0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0f, 0x47, 0x65, 0x74,
+	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x13, 0x2e, 0x47,
+	0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65,
+	0x71, 0x1a, 0x14, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x43,
+	0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x24, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x41,
+	0x64, 0x64, 0x12, 0x0b, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x71, 0x1a,
+	0x0c, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x26, 0x0a,
+	0x0a, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x0a, 0x2e, 0x55, 0x73,
+	0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e,
+	0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x23, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c,
+	0x12, 0x0a, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x45,
+	0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x13, 0x57, 0x6f,
+	0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x6e, 0x66,
+	0x6f, 0x12, 0x17, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x4d,
+	0x65, 0x6e, 0x75, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x57, 0x6f, 0x72,
+	0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x6e, 0x66, 0x6f,
+	0x52, 0x65, 0x73, 0x70, 0x12, 0x57, 0x0a, 0x18, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b,
+	0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65,
+	0x12, 0x1c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x43, 0x6f,
+	0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1d,
+	0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6d, 0x70,
+	0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x57, 0x0a,
+	0x18, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x43, 0x6c, 0x65, 0x61,
+	0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x2e, 0x57, 0x6f, 0x72, 0x6b,
+	0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x55, 0x73, 0x65, 0x72,
+	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65,
+	0x73, 0x6b, 0x74, 0x6f, 0x70, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e,
+	0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65,
+	0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x08, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a,
+	0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x0a, 0x0e, 0x47, 0x65,
+	0x74, 0x45, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0b, 0x2e, 0x45,
+	0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x45, 0x6e, 0x74, 0x55,
+	0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x45, 0x6e,
+	0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0f, 0x2e, 0x45, 0x6e, 0x74, 0x55,
+	0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x45, 0x6e, 0x74,
+	0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x0f,
+	0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x73, 0x45, 0x6e, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12,
+	0x0b, 0x2e, 0x45, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x43,
+	0x68, 0x65, 0x63, 0x6b, 0x49, 0x73, 0x45, 0x6e, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65,
+	0x73, 0x70, 0x12, 0x2b, 0x0a, 0x0c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4c, 0x69,
+	0x73, 0x74, 0x12, 0x0c, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71,
+	0x1a, 0x0d, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12,
+	0x2b, 0x0a, 0x10, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x42, 0x79, 0x55, 0x73, 0x65,
+	0x72, 0x49, 0x64, 0x12, 0x0c, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65,
+	0x71, 0x1a, 0x09, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x2f, 0x0a, 0x14,
+	0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x42, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69,
+	0x6f, 0x6e, 0x49, 0x64, 0x12, 0x0c, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52,
+	0x65, 0x71, 0x1a, 0x09, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x2e, 0x0a,
+	0x13, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x42, 0x79, 0x45, 0x6e, 0x74, 0x55, 0x73,
+	0x65, 0x72, 0x49, 0x64, 0x12, 0x0c, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52,
+	0x65, 0x71, 0x1a, 0x09, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x2a, 0x0a,
+	0x0f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x42, 0x79, 0x45, 0x6e, 0x74, 0x49, 0x64,
+	0x12, 0x0c, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x09,
+	0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x33, 0x0a, 0x0c, 0x55, 0x73, 0x65,
+	0x72, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x10, 0x2e, 0x55, 0x73, 0x65, 0x72,
+	0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x55, 0x73,
+	0x65, 0x72, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x42, 0x06,
+	0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (

+ 102 - 130
rpc/pb/userCenter_grpc.pb.go

@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
-// - protoc-gen-go-grpc v1.3.0
-// - protoc             v3.15.1
+// - protoc-gen-go-grpc v1.2.0
+// - protoc             v3.15.5
 // source: userCenter.proto
 
 package pb
@@ -18,87 +18,59 @@ import (
 // Requires gRPC-Go v1.32.0 or later.
 const _ = grpc.SupportPackageIsVersion7
 
-const (
-	UserCenter_EntAuth_FullMethodName                  = "/UserCenter/EntAuth"
-	UserCenter_EntExamine_FullMethodName               = "/UserCenter/EntExamine"
-	UserCenter_EntList_FullMethodName                  = "/UserCenter/EntList"
-	UserCenter_ExamineList_FullMethodName              = "/UserCenter/ExamineList"
-	UserCenter_CheckEnt_FullMethodName                 = "/UserCenter/CheckEnt"
-	UserCenter_EntInfo_FullMethodName                  = "/UserCenter/EntInfo"
-	UserCenter_EntUpdate_FullMethodName                = "/UserCenter/EntUpdate"
-	UserCenter_ExamineInfo_FullMethodName              = "/UserCenter/ExamineInfo"
-	UserCenter_GetStatusByCode_FullMethodName          = "/UserCenter/GetStatusByCode"
-	UserCenter_UserAdd_FullMethodName                  = "/UserCenter/UserAdd"
-	UserCenter_UserUpdate_FullMethodName               = "/UserCenter/UserUpdate"
-	UserCenter_UserDel_FullMethodName                  = "/UserCenter/UserDel"
-	UserCenter_WorkDesktopMenuInfo_FullMethodName      = "/UserCenter/WorkDesktopMenuInfo"
-	UserCenter_WorkDesktopComprehensive_FullMethodName = "/UserCenter/WorkDesktopComprehensive"
-	UserCenter_WorkDesktopClearUserInfo_FullMethodName = "/UserCenter/WorkDesktopClearUserInfo"
-	UserCenter_GetUserInfo_FullMethodName              = "/UserCenter/GetUserInfo"
-	UserCenter_GetEntUserInfo_FullMethodName           = "/UserCenter/GetEntUserInfo"
-	UserCenter_GetEntUserList_FullMethodName           = "/UserCenter/GetEntUserList"
-	UserCenter_CheckIsEntAdmin_FullMethodName          = "/UserCenter/CheckIsEntAdmin"
-	UserCenter_IdentityList_FullMethodName             = "/UserCenter/IdentityList"
-	UserCenter_IdentityByUserId_FullMethodName         = "/UserCenter/IdentityByUserId"
-	UserCenter_IdentityByPositionId_FullMethodName     = "/UserCenter/IdentityByPositionId"
-	UserCenter_IdentityByEntUserId_FullMethodName      = "/UserCenter/IdentityByEntUserId"
-	UserCenter_IdentityByEntId_FullMethodName          = "/UserCenter/IdentityByEntId"
-	UserCenter_UserIdentity_FullMethodName             = "/UserCenter/UserIdentity"
-)
-
 // UserCenterClient is the client API for UserCenter service.
 //
 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
 type UserCenterClient interface {
-	// 企业认证
+	//企业认证
 	EntAuth(ctx context.Context, in *EntAuthReq, opts ...grpc.CallOption) (*EntAuthResp, error)
-	// 机构审核
+	//机构审核
 	EntExamine(ctx context.Context, in *ExamineReq, opts ...grpc.CallOption) (*ExamineResp, error)
-	// 企业列表
+	//企业列表
 	EntList(ctx context.Context, in *EntListReq, opts ...grpc.CallOption) (*EntListResp, error)
-	// 审核列表
+	//审核列表
 	ExamineList(ctx context.Context, in *ExamineListReq, opts ...grpc.CallOption) (*ExamineListResp, error)
-	// 查看企业状态
+	//查看企业状态
 	CheckEnt(ctx context.Context, in *CheckEntReq, opts ...grpc.CallOption) (*CheckEntResp, error)
-	// 查看企业详情
+	//查看企业详情
 	EntInfo(ctx context.Context, in *CheckEntReq, opts ...grpc.CallOption) (*EntInfoResp, error)
-	// 冻结/解冻企业
+	//冻结/解冻企业
 	EntUpdate(ctx context.Context, in *EntUpdateReq, opts ...grpc.CallOption) (*ExamineResp, error)
-	// 查看审核详情
+	//查看审核详情
 	ExamineInfo(ctx context.Context, in *CheckExamineReq, opts ...grpc.CallOption) (*EntInfoResp, error)
-	// 根据统一社会信用代码查询企业状态
+	//根据统一社会信用代码查询企业状态
 	GetStatusByCode(ctx context.Context, in *GetStatusByCodeReq, opts ...grpc.CallOption) (*GetStatusByCodeResp, error)
-	// 新增用户
+	//新增用户
 	UserAdd(ctx context.Context, in *UserAddReq, opts ...grpc.CallOption) (*UserAddResp, error)
-	// 更新用户
+	//更新用户
 	UserUpdate(ctx context.Context, in *UserIdReq, opts ...grpc.CallOption) (*ExamineResp, error)
-	// 删除用户
+	//删除用户
 	UserDel(ctx context.Context, in *UserIdReq, opts ...grpc.CallOption) (*ExamineResp, error)
-	// 获取菜单树
+	//获取菜单树
 	WorkDesktopMenuInfo(ctx context.Context, in *WorkDesktopMenuInfoReq, opts ...grpc.CallOption) (*WorkDesktopMenuInfoResp, error)
-	// 菜单选择模式||常用功能更新||常用功能列表
+	//菜单选择模式||常用功能更新||常用功能列表
 	WorkDesktopComprehensive(ctx context.Context, in *WorkDesktopComprehensiveReq, opts ...grpc.CallOption) (*WorkDesktopComprehensiveResp, error)
-	// 手动清除用户功能内存信息
+	//手动清除用户功能内存信息
 	WorkDesktopClearUserInfo(ctx context.Context, in *WorkDesktopClearUserInfoReq, opts ...grpc.CallOption) (*WorkDesktopClearUserInfoResp, error)
-	// 获取客户信息
+	//获取客户信息
 	GetUserInfo(ctx context.Context, in *UserReq, opts ...grpc.CallOption) (*UserInfo, error)
-	// 根据企业员工id获取员工的信息
+	//根据企业员工id获取员工的信息
 	GetEntUserInfo(ctx context.Context, in *EntUserReq, opts ...grpc.CallOption) (*EntUserResp, error)
-	// 获取企业员工列表
+	//获取企业员工列表
 	GetEntUserList(ctx context.Context, in *EntUserListReq, opts ...grpc.CallOption) (*EntUserListResp, error)
-	// 查看员工是否是企业管理员
+	//查看员工是否是企业管理员
 	CheckIsEntAdmin(ctx context.Context, in *EntUserReq, opts ...grpc.CallOption) (*CheckIsEntAdminResp, error)
-	// 获取用户可切换的身份列表
+	//获取用户可切换的身份列表
 	IdentityList(ctx context.Context, in *IdentityReq, opts ...grpc.CallOption) (*IdentityResp, error)
-	// 获取账号id获取个人身份信息
+	//获取账号id获取个人身份信息
 	IdentityByUserId(ctx context.Context, in *IdentityReq, opts ...grpc.CallOption) (*Identity, error)
-	// 根据职位id获取身份信息
+	//根据职位id获取身份信息
 	IdentityByPositionId(ctx context.Context, in *IdentityReq, opts ...grpc.CallOption) (*Identity, error)
-	// 根据企业员工id获取身份信息
+	//根据企业员工id获取身份信息
 	IdentityByEntUserId(ctx context.Context, in *IdentityReq, opts ...grpc.CallOption) (*Identity, error)
-	// 根据企业id获取身份信息
+	//根据企业id获取身份信息
 	IdentityByEntId(ctx context.Context, in *IdentityReq, opts ...grpc.CallOption) (*Identity, error)
-	// 获取用户身份相关参数
+	//获取用户身份相关参数
 	UserIdentity(ctx context.Context, in *UserIdentityReq, opts ...grpc.CallOption) (*UserIdentityResp, error)
 }
 
@@ -112,7 +84,7 @@ func NewUserCenterClient(cc grpc.ClientConnInterface) UserCenterClient {
 
 func (c *userCenterClient) EntAuth(ctx context.Context, in *EntAuthReq, opts ...grpc.CallOption) (*EntAuthResp, error) {
 	out := new(EntAuthResp)
-	err := c.cc.Invoke(ctx, UserCenter_EntAuth_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, "/UserCenter/EntAuth", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -121,7 +93,7 @@ func (c *userCenterClient) EntAuth(ctx context.Context, in *EntAuthReq, opts ...
 
 func (c *userCenterClient) EntExamine(ctx context.Context, in *ExamineReq, opts ...grpc.CallOption) (*ExamineResp, error) {
 	out := new(ExamineResp)
-	err := c.cc.Invoke(ctx, UserCenter_EntExamine_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, "/UserCenter/EntExamine", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -130,7 +102,7 @@ func (c *userCenterClient) EntExamine(ctx context.Context, in *ExamineReq, opts
 
 func (c *userCenterClient) EntList(ctx context.Context, in *EntListReq, opts ...grpc.CallOption) (*EntListResp, error) {
 	out := new(EntListResp)
-	err := c.cc.Invoke(ctx, UserCenter_EntList_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, "/UserCenter/EntList", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -139,7 +111,7 @@ func (c *userCenterClient) EntList(ctx context.Context, in *EntListReq, opts ...
 
 func (c *userCenterClient) ExamineList(ctx context.Context, in *ExamineListReq, opts ...grpc.CallOption) (*ExamineListResp, error) {
 	out := new(ExamineListResp)
-	err := c.cc.Invoke(ctx, UserCenter_ExamineList_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, "/UserCenter/ExamineList", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -148,7 +120,7 @@ func (c *userCenterClient) ExamineList(ctx context.Context, in *ExamineListReq,
 
 func (c *userCenterClient) CheckEnt(ctx context.Context, in *CheckEntReq, opts ...grpc.CallOption) (*CheckEntResp, error) {
 	out := new(CheckEntResp)
-	err := c.cc.Invoke(ctx, UserCenter_CheckEnt_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, "/UserCenter/CheckEnt", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -157,7 +129,7 @@ func (c *userCenterClient) CheckEnt(ctx context.Context, in *CheckEntReq, opts .
 
 func (c *userCenterClient) EntInfo(ctx context.Context, in *CheckEntReq, opts ...grpc.CallOption) (*EntInfoResp, error) {
 	out := new(EntInfoResp)
-	err := c.cc.Invoke(ctx, UserCenter_EntInfo_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, "/UserCenter/EntInfo", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -166,7 +138,7 @@ func (c *userCenterClient) EntInfo(ctx context.Context, in *CheckEntReq, opts ..
 
 func (c *userCenterClient) EntUpdate(ctx context.Context, in *EntUpdateReq, opts ...grpc.CallOption) (*ExamineResp, error) {
 	out := new(ExamineResp)
-	err := c.cc.Invoke(ctx, UserCenter_EntUpdate_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, "/UserCenter/EntUpdate", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -175,7 +147,7 @@ func (c *userCenterClient) EntUpdate(ctx context.Context, in *EntUpdateReq, opts
 
 func (c *userCenterClient) ExamineInfo(ctx context.Context, in *CheckExamineReq, opts ...grpc.CallOption) (*EntInfoResp, error) {
 	out := new(EntInfoResp)
-	err := c.cc.Invoke(ctx, UserCenter_ExamineInfo_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, "/UserCenter/ExamineInfo", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -184,7 +156,7 @@ func (c *userCenterClient) ExamineInfo(ctx context.Context, in *CheckExamineReq,
 
 func (c *userCenterClient) GetStatusByCode(ctx context.Context, in *GetStatusByCodeReq, opts ...grpc.CallOption) (*GetStatusByCodeResp, error) {
 	out := new(GetStatusByCodeResp)
-	err := c.cc.Invoke(ctx, UserCenter_GetStatusByCode_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, "/UserCenter/GetStatusByCode", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -193,7 +165,7 @@ func (c *userCenterClient) GetStatusByCode(ctx context.Context, in *GetStatusByC
 
 func (c *userCenterClient) UserAdd(ctx context.Context, in *UserAddReq, opts ...grpc.CallOption) (*UserAddResp, error) {
 	out := new(UserAddResp)
-	err := c.cc.Invoke(ctx, UserCenter_UserAdd_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, "/UserCenter/UserAdd", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -202,7 +174,7 @@ func (c *userCenterClient) UserAdd(ctx context.Context, in *UserAddReq, opts ...
 
 func (c *userCenterClient) UserUpdate(ctx context.Context, in *UserIdReq, opts ...grpc.CallOption) (*ExamineResp, error) {
 	out := new(ExamineResp)
-	err := c.cc.Invoke(ctx, UserCenter_UserUpdate_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, "/UserCenter/UserUpdate", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -211,7 +183,7 @@ func (c *userCenterClient) UserUpdate(ctx context.Context, in *UserIdReq, opts .
 
 func (c *userCenterClient) UserDel(ctx context.Context, in *UserIdReq, opts ...grpc.CallOption) (*ExamineResp, error) {
 	out := new(ExamineResp)
-	err := c.cc.Invoke(ctx, UserCenter_UserDel_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, "/UserCenter/UserDel", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -220,7 +192,7 @@ func (c *userCenterClient) UserDel(ctx context.Context, in *UserIdReq, opts ...g
 
 func (c *userCenterClient) WorkDesktopMenuInfo(ctx context.Context, in *WorkDesktopMenuInfoReq, opts ...grpc.CallOption) (*WorkDesktopMenuInfoResp, error) {
 	out := new(WorkDesktopMenuInfoResp)
-	err := c.cc.Invoke(ctx, UserCenter_WorkDesktopMenuInfo_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, "/UserCenter/WorkDesktopMenuInfo", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -229,7 +201,7 @@ func (c *userCenterClient) WorkDesktopMenuInfo(ctx context.Context, in *WorkDesk
 
 func (c *userCenterClient) WorkDesktopComprehensive(ctx context.Context, in *WorkDesktopComprehensiveReq, opts ...grpc.CallOption) (*WorkDesktopComprehensiveResp, error) {
 	out := new(WorkDesktopComprehensiveResp)
-	err := c.cc.Invoke(ctx, UserCenter_WorkDesktopComprehensive_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, "/UserCenter/WorkDesktopComprehensive", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -238,7 +210,7 @@ func (c *userCenterClient) WorkDesktopComprehensive(ctx context.Context, in *Wor
 
 func (c *userCenterClient) WorkDesktopClearUserInfo(ctx context.Context, in *WorkDesktopClearUserInfoReq, opts ...grpc.CallOption) (*WorkDesktopClearUserInfoResp, error) {
 	out := new(WorkDesktopClearUserInfoResp)
-	err := c.cc.Invoke(ctx, UserCenter_WorkDesktopClearUserInfo_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, "/UserCenter/WorkDesktopClearUserInfo", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -247,7 +219,7 @@ func (c *userCenterClient) WorkDesktopClearUserInfo(ctx context.Context, in *Wor
 
 func (c *userCenterClient) GetUserInfo(ctx context.Context, in *UserReq, opts ...grpc.CallOption) (*UserInfo, error) {
 	out := new(UserInfo)
-	err := c.cc.Invoke(ctx, UserCenter_GetUserInfo_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, "/UserCenter/GetUserInfo", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -256,7 +228,7 @@ func (c *userCenterClient) GetUserInfo(ctx context.Context, in *UserReq, opts ..
 
 func (c *userCenterClient) GetEntUserInfo(ctx context.Context, in *EntUserReq, opts ...grpc.CallOption) (*EntUserResp, error) {
 	out := new(EntUserResp)
-	err := c.cc.Invoke(ctx, UserCenter_GetEntUserInfo_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, "/UserCenter/GetEntUserInfo", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -265,7 +237,7 @@ func (c *userCenterClient) GetEntUserInfo(ctx context.Context, in *EntUserReq, o
 
 func (c *userCenterClient) GetEntUserList(ctx context.Context, in *EntUserListReq, opts ...grpc.CallOption) (*EntUserListResp, error) {
 	out := new(EntUserListResp)
-	err := c.cc.Invoke(ctx, UserCenter_GetEntUserList_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, "/UserCenter/GetEntUserList", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -274,7 +246,7 @@ func (c *userCenterClient) GetEntUserList(ctx context.Context, in *EntUserListRe
 
 func (c *userCenterClient) CheckIsEntAdmin(ctx context.Context, in *EntUserReq, opts ...grpc.CallOption) (*CheckIsEntAdminResp, error) {
 	out := new(CheckIsEntAdminResp)
-	err := c.cc.Invoke(ctx, UserCenter_CheckIsEntAdmin_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, "/UserCenter/CheckIsEntAdmin", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -283,7 +255,7 @@ func (c *userCenterClient) CheckIsEntAdmin(ctx context.Context, in *EntUserReq,
 
 func (c *userCenterClient) IdentityList(ctx context.Context, in *IdentityReq, opts ...grpc.CallOption) (*IdentityResp, error) {
 	out := new(IdentityResp)
-	err := c.cc.Invoke(ctx, UserCenter_IdentityList_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, "/UserCenter/IdentityList", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -292,7 +264,7 @@ func (c *userCenterClient) IdentityList(ctx context.Context, in *IdentityReq, op
 
 func (c *userCenterClient) IdentityByUserId(ctx context.Context, in *IdentityReq, opts ...grpc.CallOption) (*Identity, error) {
 	out := new(Identity)
-	err := c.cc.Invoke(ctx, UserCenter_IdentityByUserId_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, "/UserCenter/IdentityByUserId", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -301,7 +273,7 @@ func (c *userCenterClient) IdentityByUserId(ctx context.Context, in *IdentityReq
 
 func (c *userCenterClient) IdentityByPositionId(ctx context.Context, in *IdentityReq, opts ...grpc.CallOption) (*Identity, error) {
 	out := new(Identity)
-	err := c.cc.Invoke(ctx, UserCenter_IdentityByPositionId_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, "/UserCenter/IdentityByPositionId", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -310,7 +282,7 @@ func (c *userCenterClient) IdentityByPositionId(ctx context.Context, in *Identit
 
 func (c *userCenterClient) IdentityByEntUserId(ctx context.Context, in *IdentityReq, opts ...grpc.CallOption) (*Identity, error) {
 	out := new(Identity)
-	err := c.cc.Invoke(ctx, UserCenter_IdentityByEntUserId_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, "/UserCenter/IdentityByEntUserId", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -319,7 +291,7 @@ func (c *userCenterClient) IdentityByEntUserId(ctx context.Context, in *Identity
 
 func (c *userCenterClient) IdentityByEntId(ctx context.Context, in *IdentityReq, opts ...grpc.CallOption) (*Identity, error) {
 	out := new(Identity)
-	err := c.cc.Invoke(ctx, UserCenter_IdentityByEntId_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, "/UserCenter/IdentityByEntId", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -328,7 +300,7 @@ func (c *userCenterClient) IdentityByEntId(ctx context.Context, in *IdentityReq,
 
 func (c *userCenterClient) UserIdentity(ctx context.Context, in *UserIdentityReq, opts ...grpc.CallOption) (*UserIdentityResp, error) {
 	out := new(UserIdentityResp)
-	err := c.cc.Invoke(ctx, UserCenter_UserIdentity_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, "/UserCenter/UserIdentity", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -339,55 +311,55 @@ func (c *userCenterClient) UserIdentity(ctx context.Context, in *UserIdentityReq
 // All implementations must embed UnimplementedUserCenterServer
 // for forward compatibility
 type UserCenterServer interface {
-	// 企业认证
+	//企业认证
 	EntAuth(context.Context, *EntAuthReq) (*EntAuthResp, error)
-	// 机构审核
+	//机构审核
 	EntExamine(context.Context, *ExamineReq) (*ExamineResp, error)
-	// 企业列表
+	//企业列表
 	EntList(context.Context, *EntListReq) (*EntListResp, error)
-	// 审核列表
+	//审核列表
 	ExamineList(context.Context, *ExamineListReq) (*ExamineListResp, error)
-	// 查看企业状态
+	//查看企业状态
 	CheckEnt(context.Context, *CheckEntReq) (*CheckEntResp, error)
-	// 查看企业详情
+	//查看企业详情
 	EntInfo(context.Context, *CheckEntReq) (*EntInfoResp, error)
-	// 冻结/解冻企业
+	//冻结/解冻企业
 	EntUpdate(context.Context, *EntUpdateReq) (*ExamineResp, error)
-	// 查看审核详情
+	//查看审核详情
 	ExamineInfo(context.Context, *CheckExamineReq) (*EntInfoResp, error)
-	// 根据统一社会信用代码查询企业状态
+	//根据统一社会信用代码查询企业状态
 	GetStatusByCode(context.Context, *GetStatusByCodeReq) (*GetStatusByCodeResp, error)
-	// 新增用户
+	//新增用户
 	UserAdd(context.Context, *UserAddReq) (*UserAddResp, error)
-	// 更新用户
+	//更新用户
 	UserUpdate(context.Context, *UserIdReq) (*ExamineResp, error)
-	// 删除用户
+	//删除用户
 	UserDel(context.Context, *UserIdReq) (*ExamineResp, error)
-	// 获取菜单树
+	//获取菜单树
 	WorkDesktopMenuInfo(context.Context, *WorkDesktopMenuInfoReq) (*WorkDesktopMenuInfoResp, error)
-	// 菜单选择模式||常用功能更新||常用功能列表
+	//菜单选择模式||常用功能更新||常用功能列表
 	WorkDesktopComprehensive(context.Context, *WorkDesktopComprehensiveReq) (*WorkDesktopComprehensiveResp, error)
-	// 手动清除用户功能内存信息
+	//手动清除用户功能内存信息
 	WorkDesktopClearUserInfo(context.Context, *WorkDesktopClearUserInfoReq) (*WorkDesktopClearUserInfoResp, error)
-	// 获取客户信息
+	//获取客户信息
 	GetUserInfo(context.Context, *UserReq) (*UserInfo, error)
-	// 根据企业员工id获取员工的信息
+	//根据企业员工id获取员工的信息
 	GetEntUserInfo(context.Context, *EntUserReq) (*EntUserResp, error)
-	// 获取企业员工列表
+	//获取企业员工列表
 	GetEntUserList(context.Context, *EntUserListReq) (*EntUserListResp, error)
-	// 查看员工是否是企业管理员
+	//查看员工是否是企业管理员
 	CheckIsEntAdmin(context.Context, *EntUserReq) (*CheckIsEntAdminResp, error)
-	// 获取用户可切换的身份列表
+	//获取用户可切换的身份列表
 	IdentityList(context.Context, *IdentityReq) (*IdentityResp, error)
-	// 获取账号id获取个人身份信息
+	//获取账号id获取个人身份信息
 	IdentityByUserId(context.Context, *IdentityReq) (*Identity, error)
-	// 根据职位id获取身份信息
+	//根据职位id获取身份信息
 	IdentityByPositionId(context.Context, *IdentityReq) (*Identity, error)
-	// 根据企业员工id获取身份信息
+	//根据企业员工id获取身份信息
 	IdentityByEntUserId(context.Context, *IdentityReq) (*Identity, error)
-	// 根据企业id获取身份信息
+	//根据企业id获取身份信息
 	IdentityByEntId(context.Context, *IdentityReq) (*Identity, error)
-	// 获取用户身份相关参数
+	//获取用户身份相关参数
 	UserIdentity(context.Context, *UserIdentityReq) (*UserIdentityResp, error)
 	mustEmbedUnimplementedUserCenterServer()
 }
@@ -494,7 +466,7 @@ func _UserCenter_EntAuth_Handler(srv interface{}, ctx context.Context, dec func(
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: UserCenter_EntAuth_FullMethodName,
+		FullMethod: "/UserCenter/EntAuth",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(UserCenterServer).EntAuth(ctx, req.(*EntAuthReq))
@@ -512,7 +484,7 @@ func _UserCenter_EntExamine_Handler(srv interface{}, ctx context.Context, dec fu
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: UserCenter_EntExamine_FullMethodName,
+		FullMethod: "/UserCenter/EntExamine",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(UserCenterServer).EntExamine(ctx, req.(*ExamineReq))
@@ -530,7 +502,7 @@ func _UserCenter_EntList_Handler(srv interface{}, ctx context.Context, dec func(
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: UserCenter_EntList_FullMethodName,
+		FullMethod: "/UserCenter/EntList",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(UserCenterServer).EntList(ctx, req.(*EntListReq))
@@ -548,7 +520,7 @@ func _UserCenter_ExamineList_Handler(srv interface{}, ctx context.Context, dec f
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: UserCenter_ExamineList_FullMethodName,
+		FullMethod: "/UserCenter/ExamineList",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(UserCenterServer).ExamineList(ctx, req.(*ExamineListReq))
@@ -566,7 +538,7 @@ func _UserCenter_CheckEnt_Handler(srv interface{}, ctx context.Context, dec func
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: UserCenter_CheckEnt_FullMethodName,
+		FullMethod: "/UserCenter/CheckEnt",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(UserCenterServer).CheckEnt(ctx, req.(*CheckEntReq))
@@ -584,7 +556,7 @@ func _UserCenter_EntInfo_Handler(srv interface{}, ctx context.Context, dec func(
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: UserCenter_EntInfo_FullMethodName,
+		FullMethod: "/UserCenter/EntInfo",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(UserCenterServer).EntInfo(ctx, req.(*CheckEntReq))
@@ -602,7 +574,7 @@ func _UserCenter_EntUpdate_Handler(srv interface{}, ctx context.Context, dec fun
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: UserCenter_EntUpdate_FullMethodName,
+		FullMethod: "/UserCenter/EntUpdate",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(UserCenterServer).EntUpdate(ctx, req.(*EntUpdateReq))
@@ -620,7 +592,7 @@ func _UserCenter_ExamineInfo_Handler(srv interface{}, ctx context.Context, dec f
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: UserCenter_ExamineInfo_FullMethodName,
+		FullMethod: "/UserCenter/ExamineInfo",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(UserCenterServer).ExamineInfo(ctx, req.(*CheckExamineReq))
@@ -638,7 +610,7 @@ func _UserCenter_GetStatusByCode_Handler(srv interface{}, ctx context.Context, d
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: UserCenter_GetStatusByCode_FullMethodName,
+		FullMethod: "/UserCenter/GetStatusByCode",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(UserCenterServer).GetStatusByCode(ctx, req.(*GetStatusByCodeReq))
@@ -656,7 +628,7 @@ func _UserCenter_UserAdd_Handler(srv interface{}, ctx context.Context, dec func(
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: UserCenter_UserAdd_FullMethodName,
+		FullMethod: "/UserCenter/UserAdd",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(UserCenterServer).UserAdd(ctx, req.(*UserAddReq))
@@ -674,7 +646,7 @@ func _UserCenter_UserUpdate_Handler(srv interface{}, ctx context.Context, dec fu
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: UserCenter_UserUpdate_FullMethodName,
+		FullMethod: "/UserCenter/UserUpdate",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(UserCenterServer).UserUpdate(ctx, req.(*UserIdReq))
@@ -692,7 +664,7 @@ func _UserCenter_UserDel_Handler(srv interface{}, ctx context.Context, dec func(
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: UserCenter_UserDel_FullMethodName,
+		FullMethod: "/UserCenter/UserDel",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(UserCenterServer).UserDel(ctx, req.(*UserIdReq))
@@ -710,7 +682,7 @@ func _UserCenter_WorkDesktopMenuInfo_Handler(srv interface{}, ctx context.Contex
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: UserCenter_WorkDesktopMenuInfo_FullMethodName,
+		FullMethod: "/UserCenter/WorkDesktopMenuInfo",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(UserCenterServer).WorkDesktopMenuInfo(ctx, req.(*WorkDesktopMenuInfoReq))
@@ -728,7 +700,7 @@ func _UserCenter_WorkDesktopComprehensive_Handler(srv interface{}, ctx context.C
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: UserCenter_WorkDesktopComprehensive_FullMethodName,
+		FullMethod: "/UserCenter/WorkDesktopComprehensive",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(UserCenterServer).WorkDesktopComprehensive(ctx, req.(*WorkDesktopComprehensiveReq))
@@ -746,7 +718,7 @@ func _UserCenter_WorkDesktopClearUserInfo_Handler(srv interface{}, ctx context.C
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: UserCenter_WorkDesktopClearUserInfo_FullMethodName,
+		FullMethod: "/UserCenter/WorkDesktopClearUserInfo",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(UserCenterServer).WorkDesktopClearUserInfo(ctx, req.(*WorkDesktopClearUserInfoReq))
@@ -764,7 +736,7 @@ func _UserCenter_GetUserInfo_Handler(srv interface{}, ctx context.Context, dec f
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: UserCenter_GetUserInfo_FullMethodName,
+		FullMethod: "/UserCenter/GetUserInfo",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(UserCenterServer).GetUserInfo(ctx, req.(*UserReq))
@@ -782,7 +754,7 @@ func _UserCenter_GetEntUserInfo_Handler(srv interface{}, ctx context.Context, de
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: UserCenter_GetEntUserInfo_FullMethodName,
+		FullMethod: "/UserCenter/GetEntUserInfo",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(UserCenterServer).GetEntUserInfo(ctx, req.(*EntUserReq))
@@ -800,7 +772,7 @@ func _UserCenter_GetEntUserList_Handler(srv interface{}, ctx context.Context, de
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: UserCenter_GetEntUserList_FullMethodName,
+		FullMethod: "/UserCenter/GetEntUserList",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(UserCenterServer).GetEntUserList(ctx, req.(*EntUserListReq))
@@ -818,7 +790,7 @@ func _UserCenter_CheckIsEntAdmin_Handler(srv interface{}, ctx context.Context, d
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: UserCenter_CheckIsEntAdmin_FullMethodName,
+		FullMethod: "/UserCenter/CheckIsEntAdmin",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(UserCenterServer).CheckIsEntAdmin(ctx, req.(*EntUserReq))
@@ -836,7 +808,7 @@ func _UserCenter_IdentityList_Handler(srv interface{}, ctx context.Context, dec
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: UserCenter_IdentityList_FullMethodName,
+		FullMethod: "/UserCenter/IdentityList",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(UserCenterServer).IdentityList(ctx, req.(*IdentityReq))
@@ -854,7 +826,7 @@ func _UserCenter_IdentityByUserId_Handler(srv interface{}, ctx context.Context,
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: UserCenter_IdentityByUserId_FullMethodName,
+		FullMethod: "/UserCenter/IdentityByUserId",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(UserCenterServer).IdentityByUserId(ctx, req.(*IdentityReq))
@@ -872,7 +844,7 @@ func _UserCenter_IdentityByPositionId_Handler(srv interface{}, ctx context.Conte
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: UserCenter_IdentityByPositionId_FullMethodName,
+		FullMethod: "/UserCenter/IdentityByPositionId",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(UserCenterServer).IdentityByPositionId(ctx, req.(*IdentityReq))
@@ -890,7 +862,7 @@ func _UserCenter_IdentityByEntUserId_Handler(srv interface{}, ctx context.Contex
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: UserCenter_IdentityByEntUserId_FullMethodName,
+		FullMethod: "/UserCenter/IdentityByEntUserId",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(UserCenterServer).IdentityByEntUserId(ctx, req.(*IdentityReq))
@@ -908,7 +880,7 @@ func _UserCenter_IdentityByEntId_Handler(srv interface{}, ctx context.Context, d
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: UserCenter_IdentityByEntId_FullMethodName,
+		FullMethod: "/UserCenter/IdentityByEntId",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(UserCenterServer).IdentityByEntId(ctx, req.(*IdentityReq))
@@ -926,7 +898,7 @@ func _UserCenter_UserIdentity_Handler(srv interface{}, ctx context.Context, dec
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: UserCenter_UserIdentity_FullMethodName,
+		FullMethod: "/UserCenter/UserIdentity",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(UserCenterServer).UserIdentity(ctx, req.(*UserIdentityReq))

+ 2 - 0
rpc/userCenter.proto

@@ -361,6 +361,7 @@ message WorkDesktopMenuInfoReq{
   string entAccountId = 14;
   int64 entNicheDis = 15;
   string entUserRole = 16;
+  string entDeptId = 17;
 }
 
 //工作桌面-返回数据
@@ -445,6 +446,7 @@ message WorkDesktopComprehensiveReq{
   string entAccountId = 16;
   int64 entNicheDis = 17;
   string entUserRole = 18;
+  string entDeptId = 19;
 }
 //工作桌面 综合功能-返回数据
 message WorkDesktopComprehensiveResp{

+ 1 - 1
rpc/usercenter/usercenter.go

@@ -1,4 +1,4 @@
-// Code generated by goctl. DO NOT EDIT.
+// Code generated by goctl. DO NOT EDIT!
 // Source: userCenter.proto
 
 package usercenter

+ 16 - 11
service/workDesktop.go

@@ -151,31 +151,32 @@ func RenewWorkDesktopMenuModeOrCommonly(in *WorkDesktopComprehensiveReq) (r *Wor
 
 		if len(pIds) > 0 {
 			//P278 身份切换
-			positionType := ``
+			moreSql := ``
 			switch in.PositionType { //职位类型 0:个人 1:企业
 			case "1":
-				positionType = `AND available >= 2`
+				moreSql = `AND available >= 2`
 				//P364 企业角色
 				if in.EntUserRole != "" {
-					positionType += ` AND (FIND_IN_SET('0',entrole)`
+					moreSql += ` AND (FIND_IN_SET('0',entrole)`
 					for _, entUserRole := range strings.Split(in.EntUserRole, ",") {
-						positionType += fmt.Sprintf(` OR FIND_IN_SET('%d',entrole)`, MC.Int64All(entUserRole)+1)
+						moreSql += fmt.Sprintf(` OR FIND_IN_SET('%d',entrole)`, MC.Int64All(entUserRole)+1)
 					}
-					positionType += `)`
+					moreSql += `)`
 				} else {
-					positionType += fmt.Sprintf(` AND (FIND_IN_SET('0',entrole) OR FIND_IN_SET('%d',entrole)) `, in.EntNicheDis+1)
+					moreSql += fmt.Sprintf(` AND (FIND_IN_SET('0',entrole) OR FIND_IN_SET('%d',entrole)) `, in.EntNicheDis+1)
 				}
 			default:
-				positionType = `AND available <= 2`
+				moreSql = `AND available <= 2`
 			}
 			//常用功能存储是三级菜单id,需要四级菜单信息也查出来
 			//会出现 用户设置常用功能,此功能下线,用户设置依然保存的有此功能  查询不能加 AND status = 0
-			var menuSql = fmt.Sprintf(`SELECT * from %s WHERE (id IN (%s)  OR (parentid IN (%s)  AND status = 0)) %s  ORDER BY FIELD(id , %s);`, entity.ConfigJson.WorkTableInside, strings.Join(pIds, ","), strings.Join(pIds, ","), positionType, strings.Join(pIds, ","))
+			//var menuSql = fmt.Sprintf(`SELECT a.*,b.ent_id,b.dept_id,b.target,b.mold  FROM base_service.work_menu_new a LEFT JOIN base_service.work_menu_ent b ON a.id = b.menu_id AND b.ent_id = ? AND b.state = 0  WHERE (a.id IN (%s)  OR (a.parentid IN (%s)  AND a.status = 0)) %s  ORDER BY FIELD(a.id , %s);`, strings.Join(pIds, ","), strings.Join(pIds, ","), moreSql, strings.Join(pIds, ","))
+			var menuSql = fmt.Sprintf(`SELECT * from %s WHERE (id IN (%s)  OR (parentid IN (%s)  AND status = 0)) %s  ORDER BY FIELD(id , %s);`, entity.ConfigJson.WorkTableInside, strings.Join(pIds, ","), strings.Join(pIds, ","), moreSql, strings.Join(pIds, ","))
 			//外网访问
 			if entity.ConfigJson.WorkTableInside != entity.ConfigJson.WorkTableOut && !in.IntranetBool {
-				menuSql = fmt.Sprintf(`SELECT * from %s WHERE (id IN (%s)  OR (parentid IN (%s)  AND status = 0)) %s  ORDER BY FIELD(id , %s);`, entity.ConfigJson.WorkTableOut, strings.Join(pIds, ","), strings.Join(pIds, ","), positionType, strings.Join(pIds, ","))
+				menuSql = fmt.Sprintf(`SELECT * from %s WHERE (id IN (%s)  OR (parentid IN (%s)  AND status = 0)) %s  ORDER BY FIELD(id , %s);`, entity.ConfigJson.WorkTableOut, strings.Join(pIds, ","), strings.Join(pIds, ","), moreSql, strings.Join(pIds, ","))
 			}
-			menuData := entity.BaseMysql.SelectBySql(menuSql)
+			menuData := entity.BaseMysql.SelectBySql(menuSql, in.EntId)
 			if menuData != nil && len(*menuData) > 0 {
 				var (
 					entId, _        = strconv.ParseInt(in.EntId, 10, 64)
@@ -227,6 +228,7 @@ func RenewWorkDesktopMenuModeOrCommonly(in *WorkDesktopComprehensiveReq) (r *Wor
 						Authority:      MC.IntAll(mv["authority"]),
 						Level:          MC.IntAll(mv["level"]),
 						Exclude:        MC.ObjToString(mv["exclude"]),
+						CheckEnt:       MC.IntAll(mv["checkent"]),
 					}
 					var OpenType = map[string]string{}
 					if err := json.Unmarshal([]byte(MC.ObjToString(mv["opentype"])), &OpenType); err == nil {
@@ -363,6 +365,7 @@ func GetWordDesktopMenuTree(in *WorkDesktopMenuInfoReq) ([]*pb.MenuList, error)
 	entAccountId, _ := strconv.ParseInt(in.EntAccountId, 10, 64)
 	positionType, _ := strconv.ParseInt(in.PositionType, 10, 64)
 	positionId, _ := strconv.ParseInt(in.PositionId, 10, 64)
+	entDeptId, _ := strconv.ParseInt(in.EntDeptId, 10, 64)
 	wdm := &entity.WorkDesktopMenu{
 		MenuTree:     []*entity.JYMenu{},
 		UserId:       in.UserId, //userId 会取消,职位id
@@ -380,10 +383,12 @@ func GetWordDesktopMenuTree(in *WorkDesktopMenuInfoReq) ([]*pb.MenuList, error)
 		MgoUserId:    in.MgoUserId,
 		EntNicheDis:  in.EntNicheDis + 1,
 		EntUserRole:  in.EntUserRole,
+		EntDeptId:    entDeptId,
+		Phone:        in.Phone,
 	}
 	logx.Info("--------wdm--MgoUserId-------:", wdm.MgoUserId)
 	//获取菜单树的数据
-	if err := wdm.GetMenuTreeData(); err != nil {
+	if err = wdm.GetMenuTreeData(); err != nil {
 		return nil, err
 	}
 	logx.Info("数据长度:", len(wdm.MenuTree), "-- 查询菜单数据耗时:", time.Since(t1))