Ver Fonte

Merge branch 'dev/v1.1.20_fuwencai' of http://192.168.3.207:8080/BaseService/jyMicroservices into dev/v1.1.20_fuwencai

wangshan há 2 anos atrás
pai
commit
09beabdaa1

+ 25 - 2
jyBXCore/api/internal/logic/participateInfoLogic.go

@@ -2,6 +2,7 @@ package logic
 
 import (
 	"context"
+	"jyBXCore/rpc/type/bxcore"
 	"net/http"
 
 	"jyBXCore/api/internal/svc"
@@ -27,7 +28,29 @@ func NewParticipateInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext, r
 }
 
 func (l *ParticipateInfoLogic) ParticipateInfo(req *types.ParticipateInfoReq) (resp *types.CommonResp, err error) {
-	// todo: add your logic here and delete this line
+	res, err := l.svcCtx.BxCore.ParticipateInfo(l.ctx, &bxcore.ParticipateInfoReq{
+		EntId:        req.EntId,
+		EntUserId:    req.EntUserId,
+		PositionId:   req.PositionId,
+		PositionType: req.PositionType,
+		AppId:        req.AppId,
+		MgoUserId:    req.MgoUserId,
+		AccountId:    req.AccountId,
+		UserId:       req.UserId,
+		NewUserId:    req.NewUserId,
+		Sid:          req.Sid,
+	})
+	if err != nil {
+		return &types.CommonResp{
+			Err_code: res.ErrCode,
+			Err_msg:  res.ErrMsg,
+			Data:     false,
+		}, nil
+	}
+	return &types.CommonResp{
+		Err_code: res.ErrCode,
+		Err_msg:  res.ErrMsg,
+		Data:     res.Data,
+	}, nil
 
-	return
 }

+ 25 - 2
jyBXCore/api/internal/logic/participateShowLogic.go

@@ -2,6 +2,7 @@ package logic
 
 import (
 	"context"
+	"jyBXCore/rpc/type/bxcore"
 	"net/http"
 
 	"jyBXCore/api/internal/svc"
@@ -27,7 +28,29 @@ func NewParticipateShowLogic(ctx context.Context, svcCtx *svc.ServiceContext, r
 }
 
 func (l *ParticipateShowLogic) ParticipateShow(req *types.ParticipateShowReq) (resp *types.CommonResp, err error) {
-	// todo: add your logic here and delete this line
+	res, err := l.svcCtx.BxCore.ParticipateShow(l.ctx, &bxcore.ParticipateShowReq{
+		EntId:        req.EntId,
+		EntUserId:    req.EntUserId,
+		PositionId:   req.PositionId,
+		PositionType: req.PositionType,
+		AppId:        req.AppId,
+		MgoUserId:    req.MgoUserId,
+		AccountId:    req.AccountId,
+		UserId:       req.UserId,
+		NewUserId:    req.NewUserId,
+		Ids:          req.Ids,
+	})
+	if err != nil {
+		return &types.CommonResp{
+			Err_code: res.ErrCode,
+			Err_msg:  res.ErrMsg,
+			Data:     false,
+		}, nil
+	}
+	return &types.CommonResp{
+		Err_code: res.ErrCode,
+		Err_msg:  res.ErrMsg,
+		Data:     res.Data,
+	}, nil
 
-	return
 }

+ 11 - 11
jyBXCore/rpc/bxcore.proto

@@ -139,14 +139,14 @@ message ParticipateShowReq{
   string mgoUserId = 6;  //原userId
   string appId = 7;//剑鱼默认10000
   string userId = 8;//用户id
-  string newUserId = 9;//base_user_id 新用户id
-  string accountId = 10; //账户id
+  int64 newUserId = 9;//base_user_id 新用户id
+  int64 accountId = 10; //账户id
 
 }
 
 // 列表数据参标信息返回值
 message ShowInfo{
-  string Id = 1;// 标讯id
+  string id = 1;// 标讯id
   int64 value = 2; // 按钮显示值:0-参标   1- 已参标
 }
 message ParticipateShowRes{
@@ -164,8 +164,8 @@ message ParticipateInfoReq{
   string mgoUserId = 6;  //原userId
   string appId = 7;//剑鱼默认10000
   string userId = 8;//用户id
-  string newUserId = 9;//base_user_id 新用户id
-  string accountId = 10; //账户id
+  int64 newUserId = 9;//base_user_id 新用户id
+  int64 accountId = 10; //账户id
 
 }
 // 详情页参标信息返回值
@@ -198,8 +198,8 @@ message UpdateBidStatusReq{
   string mgoUserId = 13;  //原userId
   string appId = 14;//剑鱼默认10000
   string  userId = 15;//用户id
-  string  newUserId = 16;//base_user_id 新用户id
-  string accountId = 17; //账户id
+  int64  newUserId = 16;//base_user_id 新用户id
+  int64 accountId = 17; //账户id
 
 }
 // 投标状态更新返回值
@@ -219,8 +219,8 @@ message ParticipateContentReq{
   string mgoUserId = 6;  //原userId
   string appId = 7;//剑鱼默认10000
   string  userId = 8;//用户id
-  string  newUserId = 9;//base_user_id 新用户id
-  string accountId = 10; //账户id
+  int64  newUserId = 9;//base_user_id 新用户id
+  int64 accountId = 10; //账户id
 
 }
 
@@ -251,8 +251,8 @@ message ParticipateRecordsReq{
   string mgoUserId = 8;  //原userId
   string appId = 9;//剑鱼默认10000
   string  userId = 10;//用户id
-  string  newUserId = 11;//base_user_id 新用户id
-  string accountId = 12; //账户id
+  int64  newUserId = 11;//base_user_id 新用户id
+  int64  accountId = 12; //账户id
 
 }
 // 参标操作记录返回

+ 1 - 5
jyBXCore/rpc/internal/logic/participateinfologic.go

@@ -7,7 +7,6 @@ import (
 	IC "jyBXCore/rpc/init"
 	"jyBXCore/rpc/service"
 	"jyBXCore/rpc/util"
-	"strconv"
 	"time"
 
 	"jyBXCore/rpc/internal/svc"
@@ -38,11 +37,8 @@ func (l *ParticipateInfoLogic) ParticipateInfo(in *bxcore.ParticipateInfoReq) (*
 		ErrCode: 0,
 		Data:    format,
 	}
-
 	// 1. 判断身份是否有权限 不是超级订阅也不是大会员  则直接返回不展示
-	baseUserId, _ := strconv.ParseInt(in.NewUserId, 10, 64)
-	accountId, _ := strconv.ParseInt(in.AccountId, 10, 64)
-	userInfo := IC.Middleground.PowerCheckCenter.Check(in.AppId, in.UserId, baseUserId, accountId, in.EntId, in.PositionType, in.PositionId)
+	userInfo := IC.Middleground.PowerCheckCenter.Check(in.AppId, in.UserId, in.NewUserId, in.AccountId, in.EntId, in.PositionType, in.PositionId)
 	//不是超级订阅 也不是大会员
 	if userInfo.Vip.Status <= 0 && userInfo.Member.Status <= 0 {
 		return &result, fmt.Errorf("没权限")

+ 3 - 7
jyBXCore/rpc/internal/logic/participateshowlogic.go

@@ -4,12 +4,10 @@ import (
 	"context"
 	"fmt"
 	IC "jyBXCore/rpc/init"
-	"jyBXCore/rpc/service"
-	"jyBXCore/rpc/util"
-	"strconv"
-
 	"jyBXCore/rpc/internal/svc"
+	"jyBXCore/rpc/service"
 	"jyBXCore/rpc/type/bxcore"
+	"jyBXCore/rpc/util"
 
 	"github.com/zeromicro/go-zero/core/logx"
 )
@@ -36,9 +34,7 @@ func (l *ParticipateShowLogic) ParticipateShow(in *bxcore.ParticipateShowReq) (*
 		Data:    []*bxcore.ShowInfo{},
 	}
 	// 1. 判断身份是否有权限 不是超级订阅也不是大会员  则直接返回不展示
-	baseUserId, _ := strconv.ParseInt(in.NewUserId, 10, 64)
-	accountId, _ := strconv.ParseInt(in.AccountId, 10, 64)
-	userInfo := IC.Middleground.PowerCheckCenter.Check(in.AppId, in.UserId, baseUserId, accountId, in.EntId, in.PositionType, in.PositionId)
+	userInfo := IC.Middleground.PowerCheckCenter.Check(in.AppId, in.UserId, in.NewUserId, in.AccountId, in.EntId, in.PositionType, in.PositionId)
 	//不是超级订阅 也不是大会员
 	if userInfo.Vip.Status < 0 && userInfo.Member.Status < 0 {
 		return &result, fmt.Errorf("没权限")

+ 20 - 18
jyBXCore/rpc/service/participateBid.go

@@ -12,15 +12,16 @@ import (
 )
 
 const (
-	IndexProjectSet         = "projectset"    // 项目信息es index
-	TypeProjectSet          = "projectset"    // 项目信息es type
-	TableEntnicheUser       = "entniche_user" // 企业用户表
-	PositionTypeEnt         = 1               // 职位类型企业
-	PositionTypePersonal    = 0               // 职位类型个人
-	ButtonValueParticipate  = 0               // 参标按钮 显示值 0-参标
-	ButtonValueParticipated = 1               // 按钮显示值 列表页面 1-已参标
-	RoleEntManager          = 1               //  企业管理员角色
-	RoleDepartManager       = 2               //  部门管理员角色
+	IndexProjectSet         = "projectset"       // 项目信息es index
+	TypeProjectSet          = "projectset"       // 项目信息es type
+	TableEntnicheUser       = "entniche_user"    // 企业用户表
+	TableParticipateUser    = "participate_user" // 参标用户表
+	PositionTypeEnt         = 1                  // 职位类型企业
+	PositionTypePersonal    = 0                  // 职位类型个人
+	ButtonValueParticipate  = 0                  // 参标按钮 显示值 0-参标
+	ButtonValueParticipated = 1                  // 按钮显示值 列表页面 1-已参标
+	RoleEntManager          = 1                  //  企业管理员角色
+	RoleDepartManager       = 2                  //  部门管理员角色
 
 )
 
@@ -80,8 +81,8 @@ func (p *ParticipateBid) PersonalExistProject(projectId []string) map[string]str
 		value = append(value, projectId[i])
 	}
 	argStr := strings.Join(arg, ",")
-	query := "select project_id from participate_user where position_id = ? and project_id in (%s)  and state>=0"
-	rs := IC.BaseMysql.SelectBySql(query, fmt.Sprintf(query, argStr), value)
+	query := "select project_id from " + TableParticipateUser + " where position_id = ? and project_id in (%s)  and state>=0"
+	rs := IC.BaseMysql.SelectBySql(fmt.Sprintf(query, argStr), value...)
 	existProjectSet := map[string]struct{}{}
 	if rs != nil && len(*rs) > 0 { // 如果查到了  说明已经参标 这部分应该显示已参标
 		// 处理成map
@@ -117,11 +118,11 @@ func (p *ParticipateBid) EntExistProject(projectId []string) map[string]string {
 	value = append(value, p.EntId)
 	for i := 0; i < len(projectId); i++ {
 		arg = append(arg, "?")
-		value = append(value, p.PositionId)
+		value = append(value, projectId[i])
 	}
-	argStr := strings.Join(arg, ",") // todo
-	query := "select GROUP_CONCAT(ent_user_id) as personIds ,project_id from participate_user where ent_id=? and  project_id in (%s) and state>=0  group by project_id "
-	rs := IC.BaseMysql.SelectBySql(query, fmt.Sprintf(query, argStr), value)
+	argStr := strings.Join(arg, ",")
+	query := "select GROUP_CONCAT(ent_user_id) as personIds ,project_id from " + TableParticipateUser + " where ent_id=? and  project_id in (%s) and state>=0  group by project_id "
+	rs := IC.BaseMysql.SelectBySql(fmt.Sprintf(query, argStr), value...)
 	existProjectMap := map[string]string{}
 	if rs != nil && len(*rs) > 0 { // 如果查到了  说明这个项目公司里面已经参标 处理一下信息用于后边判断是否是自己参标
 		// 处理成map
@@ -168,7 +169,7 @@ func (p *ParticipateBid) ListEntFormat(existProjectMap, infoM map[string]string,
 
 // DetailEntFormat 企业版 详情页数据格式化  返回数据 参标按钮 终止参标按钮 转给同事按钮 参标人姓名
 //  判断企业下是否有参标人
-//  - 无参标人&&没有到 展示参标按钮   其余按钮不显示
+//  - 无参标人&&没有到开标时间 展示参标按钮   其余按钮不显示
 //  - 有参标人  展示参标人信息
 //    - 未到开标时间
 //      - 管理员  未到开标时间 展示 转给同事、终止参标
@@ -195,7 +196,7 @@ func (p *ParticipateBid) DetailEntFormat(existProjectMap map[string]string, isVa
 	if !isValid {
 		return
 	}
-	// 如果是管理员 显示 终止参标按钮 、转给同事按钮
+	// 如果是管理员 显示 终止参标按钮、转给同事按钮
 	if p.EntRoleId == RoleEntManager || p.EntRoleId == RoleDepartManager {
 		formatData.ShowStopParticipate = true
 		formatData.ShowTransfer = true
@@ -284,7 +285,8 @@ func ContainId(ids string, objId string) bool {
 //  参数:逗号分割的用户id "11,22,333..."
 //  返回: "张三,李四,王五..."
 func GetNameByUserIds(ids string) *[]map[string]interface{} {
-	query := "select  group_concat( name)  from" + TableEntnicheUser + "where id in (" + ids + ") "
+	query := "select  group_concat(name) as name  from " + TableEntnicheUser + " where id in (" + ids + ") "
+	fmt.Println(query)
 	rs := IC.MainMysql.SelectBySql(query)
 	return rs
 }

+ 43 - 43
jyBXCore/rpc/type/bxcore/bxcore.pb.go

@@ -1182,8 +1182,8 @@ type ParticipateShowReq struct {
 	MgoUserId    string `protobuf:"bytes,6,opt,name=mgoUserId,proto3" json:"mgoUserId,omitempty"`        //原userId
 	AppId        string `protobuf:"bytes,7,opt,name=appId,proto3" json:"appId,omitempty"`                //剑鱼默认10000
 	UserId       string `protobuf:"bytes,8,opt,name=userId,proto3" json:"userId,omitempty"`              //用户id
-	NewUserId    string `protobuf:"bytes,9,opt,name=newUserId,proto3" json:"newUserId,omitempty"`        //base_user_id 新用户id
-	AccountId    string `protobuf:"bytes,10,opt,name=accountId,proto3" json:"accountId,omitempty"`       //账户id
+	NewUserId    int64  `protobuf:"varint,9,opt,name=newUserId,proto3" json:"newUserId,omitempty"`       //base_user_id 新用户id
+	AccountId    int64  `protobuf:"varint,10,opt,name=accountId,proto3" json:"accountId,omitempty"`      //账户id
 }
 
 func (x *ParticipateShowReq) Reset() {
@@ -1274,18 +1274,18 @@ func (x *ParticipateShowReq) GetUserId() string {
 	return ""
 }
 
-func (x *ParticipateShowReq) GetNewUserId() string {
+func (x *ParticipateShowReq) GetNewUserId() int64 {
 	if x != nil {
 		return x.NewUserId
 	}
-	return ""
+	return 0
 }
 
-func (x *ParticipateShowReq) GetAccountId() string {
+func (x *ParticipateShowReq) GetAccountId() int64 {
 	if x != nil {
 		return x.AccountId
 	}
-	return ""
+	return 0
 }
 
 // 列表数据参标信息返回值
@@ -1294,7 +1294,7 @@ type ShowInfo struct {
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Id    string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"`        // 标讯id
+	Id    string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`        // 标讯id
 	Value int64  `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"` // 按钮显示值:0-参标   1- 已参标
 }
 
@@ -1421,8 +1421,8 @@ type ParticipateInfoReq struct {
 	MgoUserId    string `protobuf:"bytes,6,opt,name=mgoUserId,proto3" json:"mgoUserId,omitempty"`        //原userId
 	AppId        string `protobuf:"bytes,7,opt,name=appId,proto3" json:"appId,omitempty"`                //剑鱼默认10000
 	UserId       string `protobuf:"bytes,8,opt,name=userId,proto3" json:"userId,omitempty"`              //用户id
-	NewUserId    string `protobuf:"bytes,9,opt,name=newUserId,proto3" json:"newUserId,omitempty"`        //base_user_id 新用户id
-	AccountId    string `protobuf:"bytes,10,opt,name=accountId,proto3" json:"accountId,omitempty"`       //账户id
+	NewUserId    int64  `protobuf:"varint,9,opt,name=newUserId,proto3" json:"newUserId,omitempty"`       //base_user_id 新用户id
+	AccountId    int64  `protobuf:"varint,10,opt,name=accountId,proto3" json:"accountId,omitempty"`      //账户id
 }
 
 func (x *ParticipateInfoReq) Reset() {
@@ -1513,18 +1513,18 @@ func (x *ParticipateInfoReq) GetUserId() string {
 	return ""
 }
 
-func (x *ParticipateInfoReq) GetNewUserId() string {
+func (x *ParticipateInfoReq) GetNewUserId() int64 {
 	if x != nil {
 		return x.NewUserId
 	}
-	return ""
+	return 0
 }
 
-func (x *ParticipateInfoReq) GetAccountId() string {
+func (x *ParticipateInfoReq) GetAccountId() int64 {
 	if x != nil {
 		return x.AccountId
 	}
-	return ""
+	return 0
 }
 
 // 详情页参标信息返回值
@@ -1683,8 +1683,8 @@ type UpdateBidStatusReq struct {
 	MgoUserId     string   `protobuf:"bytes,13,opt,name=mgoUserId,proto3" json:"mgoUserId,omitempty"`        //原userId
 	AppId         string   `protobuf:"bytes,14,opt,name=appId,proto3" json:"appId,omitempty"`                //剑鱼默认10000
 	UserId        string   `protobuf:"bytes,15,opt,name=userId,proto3" json:"userId,omitempty"`              //用户id
-	NewUserId     string   `protobuf:"bytes,16,opt,name=newUserId,proto3" json:"newUserId,omitempty"`        //base_user_id 新用户id
-	AccountId     string   `protobuf:"bytes,17,opt,name=accountId,proto3" json:"accountId,omitempty"`        //账户id
+	NewUserId     int64    `protobuf:"varint,16,opt,name=newUserId,proto3" json:"newUserId,omitempty"`       //base_user_id 新用户id
+	AccountId     int64    `protobuf:"varint,17,opt,name=accountId,proto3" json:"accountId,omitempty"`       //账户id
 }
 
 func (x *UpdateBidStatusReq) Reset() {
@@ -1824,18 +1824,18 @@ func (x *UpdateBidStatusReq) GetUserId() string {
 	return ""
 }
 
-func (x *UpdateBidStatusReq) GetNewUserId() string {
+func (x *UpdateBidStatusReq) GetNewUserId() int64 {
 	if x != nil {
 		return x.NewUserId
 	}
-	return ""
+	return 0
 }
 
-func (x *UpdateBidStatusReq) GetAccountId() string {
+func (x *UpdateBidStatusReq) GetAccountId() int64 {
 	if x != nil {
 		return x.AccountId
 	}
-	return ""
+	return 0
 }
 
 // 投标状态更新返回值
@@ -1916,8 +1916,8 @@ type ParticipateContentReq struct {
 	MgoUserId    string `protobuf:"bytes,6,opt,name=mgoUserId,proto3" json:"mgoUserId,omitempty"`        //原userId
 	AppId        string `protobuf:"bytes,7,opt,name=appId,proto3" json:"appId,omitempty"`                //剑鱼默认10000
 	UserId       string `protobuf:"bytes,8,opt,name=userId,proto3" json:"userId,omitempty"`              //用户id
-	NewUserId    string `protobuf:"bytes,9,opt,name=newUserId,proto3" json:"newUserId,omitempty"`        //base_user_id 新用户id
-	AccountId    string `protobuf:"bytes,10,opt,name=accountId,proto3" json:"accountId,omitempty"`       //账户id
+	NewUserId    int64  `protobuf:"varint,9,opt,name=newUserId,proto3" json:"newUserId,omitempty"`       //base_user_id 新用户id
+	AccountId    int64  `protobuf:"varint,10,opt,name=accountId,proto3" json:"accountId,omitempty"`      //账户id
 }
 
 func (x *ParticipateContentReq) Reset() {
@@ -2008,18 +2008,18 @@ func (x *ParticipateContentReq) GetUserId() string {
 	return ""
 }
 
-func (x *ParticipateContentReq) GetNewUserId() string {
+func (x *ParticipateContentReq) GetNewUserId() int64 {
 	if x != nil {
 		return x.NewUserId
 	}
-	return ""
+	return 0
 }
 
-func (x *ParticipateContentReq) GetAccountId() string {
+func (x *ParticipateContentReq) GetAccountId() int64 {
 	if x != nil {
 		return x.AccountId
 	}
-	return ""
+	return 0
 }
 
 // 获取投标状态信息结果
@@ -2189,8 +2189,8 @@ type ParticipateRecordsReq struct {
 	MgoUserId    string `protobuf:"bytes,8,opt,name=mgoUserId,proto3" json:"mgoUserId,omitempty"`        //原userId
 	AppId        string `protobuf:"bytes,9,opt,name=appId,proto3" json:"appId,omitempty"`                //剑鱼默认10000
 	UserId       string `protobuf:"bytes,10,opt,name=userId,proto3" json:"userId,omitempty"`             //用户id
-	NewUserId    string `protobuf:"bytes,11,opt,name=newUserId,proto3" json:"newUserId,omitempty"`       //base_user_id 新用户id
-	AccountId    string `protobuf:"bytes,12,opt,name=accountId,proto3" json:"accountId,omitempty"`       //账户id
+	NewUserId    int64  `protobuf:"varint,11,opt,name=newUserId,proto3" json:"newUserId,omitempty"`      //base_user_id 新用户id
+	AccountId    int64  `protobuf:"varint,12,opt,name=accountId,proto3" json:"accountId,omitempty"`      //账户id
 }
 
 func (x *ParticipateRecordsReq) Reset() {
@@ -2295,18 +2295,18 @@ func (x *ParticipateRecordsReq) GetUserId() string {
 	return ""
 }
 
-func (x *ParticipateRecordsReq) GetNewUserId() string {
+func (x *ParticipateRecordsReq) GetNewUserId() int64 {
 	if x != nil {
 		return x.NewUserId
 	}
-	return ""
+	return 0
 }
 
-func (x *ParticipateRecordsReq) GetAccountId() string {
+func (x *ParticipateRecordsReq) GetAccountId() int64 {
 	if x != nil {
 		return x.AccountId
 	}
-	return ""
+	return 0
 }
 
 // 参标操作记录返回
@@ -3964,11 +3964,11 @@ var file_bxcore_proto_rawDesc = []byte{
 	0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75,
 	0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65,
 	0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64,
-	0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49,
+	0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49,
 	0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x0a,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22,
-	0x30, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49,
-	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76,
+	0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22,
+	0x30, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69,
+	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76,
 	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
 	0x65, 0x22, 0x6e, 0x0a, 0x12, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65,
 	0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x5f, 0x63,
@@ -3993,8 +3993,8 @@ var file_bxcore_proto_rawDesc = []byte{
 	0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64,
 	0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c,
 	0x0a, 0x09, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09,
-	0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x03, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09,
+	0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52,
 	0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0xb3, 0x01, 0x0a, 0x15, 0x50,
 	0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
 	0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x68, 0x6f, 0x77, 0x50, 0x61, 0x72, 0x74,
@@ -4043,9 +4043,9 @@ var file_bxcore_proto_rawDesc = []byte{
 	0x61, 0x70, 0x70, 0x49, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, 0x70,
 	0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01,
 	0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x65,
-	0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e,
+	0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6e,
 	0x65, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f,
-	0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63,
+	0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x63, 0x63,
 	0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x5c, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
 	0x42, 0x69, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08,
 	0x65, 0x72, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07,
@@ -4068,9 +4068,9 @@ var file_bxcore_proto_rawDesc = []byte{
 	0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06,
 	0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73,
 	0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49,
-	0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65, 0x72,
+	0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65, 0x72,
 	0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18,
-	0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64,
+	0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64,
 	0x22, 0xd0, 0x01, 0x0a, 0x16, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65,
 	0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x62,
 	0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x62, 0x69,
@@ -4111,9 +4111,9 @@ var file_bxcore_proto_rawDesc = []byte{
 	0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06,
 	0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73,
 	0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49,
-	0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65, 0x72,
+	0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65, 0x72,
 	0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18,
-	0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64,
+	0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64,
 	0x22, 0x7a, 0x0a, 0x12, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x52,
 	0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64,
 	0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x63,