Merge branch 'dev'
This commit is contained in:
commit
dfe0e7e489
@ -7,6 +7,7 @@ RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shangh
|
|||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
#通过名称引用
|
#通过名称引用
|
||||||
|
COPY ./data /app/data
|
||||||
COPY ./build/app /app/app
|
COPY ./build/app /app/app
|
||||||
COPY ./conf/ /conf/
|
COPY ./conf/ /conf/
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -61,7 +61,18 @@ service Account {
|
|||||||
rpc GenerateSliderCaptcha(GenerateSliderCaptchaRequest) returns (GenerateSliderCaptchaResponse) {}// 生成滑块验证码图片+位置
|
rpc GenerateSliderCaptcha(GenerateSliderCaptchaRequest) returns (GenerateSliderCaptchaResponse) {}// 生成滑块验证码图片+位置
|
||||||
rpc VerifySliderCaptcha(VerifySliderCaptchaRequest) returns (VerifySliderCaptchaResponse) {}// 验证滑块验证码位置
|
rpc VerifySliderCaptcha(VerifySliderCaptchaRequest) returns (VerifySliderCaptchaResponse) {}// 验证滑块验证码位置
|
||||||
rpc SendNationMsg (SendNationMsgRequest) returns (SendMsgStatusResponse) {} //发送境外国际短信验证码 --艺术商城
|
rpc SendNationMsg (SendNationMsgRequest) returns (SendMsgStatusResponse) {} //发送境外国际短信验证码 --艺术商城
|
||||||
|
rpc VerifySliderStatus(VerifySliderStatusRequest) returns (VerifySliderStatusResponse) {}// 验证滑块验证码状态
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message VerifySliderStatusRequest {
|
||||||
|
string nonceStr = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message VerifySliderStatusResponse {
|
||||||
|
string nonceStr = 1;
|
||||||
|
int32 status = 2;
|
||||||
|
}
|
||||||
|
|
||||||
message SendNationMsgRequest {
|
message SendNationMsgRequest {
|
||||||
string Domain = 1 [json_name = "domain",(validator.field) = {string_not_empty: true,human_error: "70001"} ];
|
string Domain = 1 [json_name = "domain",(validator.field) = {string_not_empty: true,human_error: "70001"} ];
|
||||||
string TelNum = 2 [json_name = "telNum",(validator.field) = {string_not_empty: true,human_error: "70001"}];
|
string TelNum = 2 [json_name = "telNum",(validator.field) = {string_not_empty: true,human_error: "70001"}];
|
||||||
@ -128,6 +139,9 @@ message UserListInfo{
|
|||||||
string notPassRemarks = 15;
|
string notPassRemarks = 15;
|
||||||
string telNum = 16;
|
string telNum = 16;
|
||||||
string telAreaCode = 17;
|
string telAreaCode = 17;
|
||||||
|
string language = 18;
|
||||||
|
string subscriberNumber = 19;
|
||||||
|
string nickName = 20;
|
||||||
}
|
}
|
||||||
message UserListRequest{
|
message UserListRequest{
|
||||||
string domain = 1;
|
string domain = 1;
|
||||||
@ -155,6 +169,9 @@ message UserInfoResponse{
|
|||||||
string subNum = 12;
|
string subNum = 12;
|
||||||
string notPassRemarks = 13;
|
string notPassRemarks = 13;
|
||||||
string domain = 14;
|
string domain = 14;
|
||||||
|
string language = 15;
|
||||||
|
string subscriberNumber = 16;
|
||||||
|
string nickName = 17;
|
||||||
}
|
}
|
||||||
message RealNameResponse{
|
message RealNameResponse{
|
||||||
uint64 id = 1;
|
uint64 id = 1;
|
||||||
@ -400,6 +417,7 @@ message SendMsgRequest {
|
|||||||
uint32 mId = 5;
|
uint32 mId = 5;
|
||||||
string scope = 6; //标记模块
|
string scope = 6; //标记模块
|
||||||
string zone = 7; //地区 不同地区切换不同发送帐号
|
string zone = 7; //地区 不同地区切换不同发送帐号
|
||||||
|
string nonceStr = 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
message SendCustomMsgRequest {
|
message SendCustomMsgRequest {
|
||||||
@ -469,30 +487,9 @@ message RemoveResponse {
|
|||||||
|
|
||||||
message UpdateRequest {
|
message UpdateRequest {
|
||||||
uint64 ID = 1 [json_name = "ID"]; //ID
|
uint64 ID = 1 [json_name = "ID"]; //ID
|
||||||
string Domain = 2 [json_name = "domain",(validator.field) = {string_not_empty: true,human_error: "70001"} ];
|
string Domain = 2 [json_name = "domain"];
|
||||||
string NickName = 3 [json_name = "nickName"];
|
string Language = 3 [json_name = "language"];
|
||||||
string Password = 4 [json_name = "password"]; //密码
|
string NickName = 4 [json_name = "nickName"];
|
||||||
string Avatar = 5 [json_name = "avatar"]; //头像
|
|
||||||
string Status = 7 [json_name = "status"];
|
|
||||||
string TelNum = 8 [json_name = "telNum"];
|
|
||||||
string EnterDate = 14 [json_name = "enterDate"];
|
|
||||||
Extend Extend = 17 [json_name = "extend"];
|
|
||||||
string Title = 18 [json_name = "title"];
|
|
||||||
string JobNum = 19 [json_name = "jobNum"];
|
|
||||||
string BirthDate = 20 [json_name = "birthDate"];
|
|
||||||
uint64 Sex = 21 [json_name = "sex"];
|
|
||||||
string IdNum = 22 [json_name = "idNum"];
|
|
||||||
string RealName = 23 [json_name = "realName"];
|
|
||||||
string InvitationCode = 24 [json_name = "invitationCode"];
|
|
||||||
string LeftDate = 25 [json_name = "leftDate"];
|
|
||||||
string Remark = 26 [json_name = "remark"];
|
|
||||||
string RecentImg = 27 [json_name = "recentImg"];
|
|
||||||
string ICNum = 28 [json_name = "icNum"];
|
|
||||||
string Train = 29 [json_name = "train"];
|
|
||||||
string Certificate = 30 [json_name = "certificate"];
|
|
||||||
repeated trainVideo TrainVideos = 31 [json_name = "trainVideos"];
|
|
||||||
Operator operator = 32;
|
|
||||||
string SecurityCode = 33 [json_name = "securityCode"];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
message Operator {
|
message Operator {
|
||||||
@ -582,6 +579,8 @@ message RegistRequest {
|
|||||||
string code = 3;
|
string code = 3;
|
||||||
string address = 4;
|
string address = 4;
|
||||||
string telAreaCode = 5;
|
string telAreaCode = 5;
|
||||||
|
string language = 6;
|
||||||
|
string nickName = 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
message LoginRequest {
|
message LoginRequest {
|
||||||
|
@ -17,6 +17,12 @@ var _ = proto.Marshal
|
|||||||
var _ = fmt.Errorf
|
var _ = fmt.Errorf
|
||||||
var _ = math.Inf
|
var _ = math.Inf
|
||||||
|
|
||||||
|
func (this *VerifySliderStatusRequest) Validate() error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
func (this *VerifySliderStatusResponse) Validate() error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
func (this *SendNationMsgRequest) Validate() error {
|
func (this *SendNationMsgRequest) Validate() error {
|
||||||
if this.Domain == "" {
|
if this.Domain == "" {
|
||||||
return github_com_mwitkow_go_proto_validators.FieldError("Domain", fmt.Errorf(`70001`))
|
return github_com_mwitkow_go_proto_validators.FieldError("Domain", fmt.Errorf(`70001`))
|
||||||
@ -274,26 +280,6 @@ func (this *RemoveResponse) Validate() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
func (this *UpdateRequest) Validate() error {
|
func (this *UpdateRequest) Validate() error {
|
||||||
if this.Domain == "" {
|
|
||||||
return github_com_mwitkow_go_proto_validators.FieldError("Domain", fmt.Errorf(`70001`))
|
|
||||||
}
|
|
||||||
if this.Extend != nil {
|
|
||||||
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Extend); err != nil {
|
|
||||||
return github_com_mwitkow_go_proto_validators.FieldError("Extend", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for _, item := range this.TrainVideos {
|
|
||||||
if item != nil {
|
|
||||||
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
|
|
||||||
return github_com_mwitkow_go_proto_validators.FieldError("TrainVideos", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if this.Operator != nil {
|
|
||||||
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Operator); err != nil {
|
|
||||||
return github_com_mwitkow_go_proto_validators.FieldError("Operator", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
func (this *Operator) Validate() error {
|
func (this *Operator) Validate() error {
|
||||||
|
@ -67,6 +67,7 @@ type AccountClient interface {
|
|||||||
GenerateSliderCaptcha(ctx context.Context, in *GenerateSliderCaptchaRequest, opts ...grpc_go.CallOption) (*GenerateSliderCaptchaResponse, common.ErrorWithAttachment)
|
GenerateSliderCaptcha(ctx context.Context, in *GenerateSliderCaptchaRequest, opts ...grpc_go.CallOption) (*GenerateSliderCaptchaResponse, common.ErrorWithAttachment)
|
||||||
VerifySliderCaptcha(ctx context.Context, in *VerifySliderCaptchaRequest, opts ...grpc_go.CallOption) (*VerifySliderCaptchaResponse, common.ErrorWithAttachment)
|
VerifySliderCaptcha(ctx context.Context, in *VerifySliderCaptchaRequest, opts ...grpc_go.CallOption) (*VerifySliderCaptchaResponse, common.ErrorWithAttachment)
|
||||||
SendNationMsg(ctx context.Context, in *SendNationMsgRequest, opts ...grpc_go.CallOption) (*SendMsgStatusResponse, common.ErrorWithAttachment)
|
SendNationMsg(ctx context.Context, in *SendNationMsgRequest, opts ...grpc_go.CallOption) (*SendMsgStatusResponse, common.ErrorWithAttachment)
|
||||||
|
VerifySliderStatus(ctx context.Context, in *VerifySliderStatusRequest, opts ...grpc_go.CallOption) (*VerifySliderStatusResponse, common.ErrorWithAttachment)
|
||||||
}
|
}
|
||||||
|
|
||||||
type accountClient struct {
|
type accountClient struct {
|
||||||
@ -112,6 +113,7 @@ type AccountClientImpl struct {
|
|||||||
GenerateSliderCaptcha func(ctx context.Context, in *GenerateSliderCaptchaRequest) (*GenerateSliderCaptchaResponse, error)
|
GenerateSliderCaptcha func(ctx context.Context, in *GenerateSliderCaptchaRequest) (*GenerateSliderCaptchaResponse, error)
|
||||||
VerifySliderCaptcha func(ctx context.Context, in *VerifySliderCaptchaRequest) (*VerifySliderCaptchaResponse, error)
|
VerifySliderCaptcha func(ctx context.Context, in *VerifySliderCaptchaRequest) (*VerifySliderCaptchaResponse, error)
|
||||||
SendNationMsg func(ctx context.Context, in *SendNationMsgRequest) (*SendMsgStatusResponse, error)
|
SendNationMsg func(ctx context.Context, in *SendNationMsgRequest) (*SendMsgStatusResponse, error)
|
||||||
|
VerifySliderStatus func(ctx context.Context, in *VerifySliderStatusRequest) (*VerifySliderStatusResponse, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *AccountClientImpl) GetDubboStub(cc *triple.TripleConn) AccountClient {
|
func (c *AccountClientImpl) GetDubboStub(cc *triple.TripleConn) AccountClient {
|
||||||
@ -354,6 +356,12 @@ func (c *accountClient) SendNationMsg(ctx context.Context, in *SendNationMsgRequ
|
|||||||
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/SendNationMsg", in, out)
|
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/SendNationMsg", in, out)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *accountClient) VerifySliderStatus(ctx context.Context, in *VerifySliderStatusRequest, opts ...grpc_go.CallOption) (*VerifySliderStatusResponse, common.ErrorWithAttachment) {
|
||||||
|
out := new(VerifySliderStatusResponse)
|
||||||
|
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
|
||||||
|
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/VerifySliderStatus", in, out)
|
||||||
|
}
|
||||||
|
|
||||||
// AccountServer is the server API for Account service.
|
// AccountServer is the server API for Account service.
|
||||||
// All implementations must embed UnimplementedAccountServer
|
// All implementations must embed UnimplementedAccountServer
|
||||||
// for forward compatibility
|
// for forward compatibility
|
||||||
@ -397,6 +405,7 @@ type AccountServer interface {
|
|||||||
GenerateSliderCaptcha(context.Context, *GenerateSliderCaptchaRequest) (*GenerateSliderCaptchaResponse, error)
|
GenerateSliderCaptcha(context.Context, *GenerateSliderCaptchaRequest) (*GenerateSliderCaptchaResponse, error)
|
||||||
VerifySliderCaptcha(context.Context, *VerifySliderCaptchaRequest) (*VerifySliderCaptchaResponse, error)
|
VerifySliderCaptcha(context.Context, *VerifySliderCaptchaRequest) (*VerifySliderCaptchaResponse, error)
|
||||||
SendNationMsg(context.Context, *SendNationMsgRequest) (*SendMsgStatusResponse, error)
|
SendNationMsg(context.Context, *SendNationMsgRequest) (*SendMsgStatusResponse, error)
|
||||||
|
VerifySliderStatus(context.Context, *VerifySliderStatusRequest) (*VerifySliderStatusResponse, error)
|
||||||
mustEmbedUnimplementedAccountServer()
|
mustEmbedUnimplementedAccountServer()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -519,6 +528,9 @@ func (UnimplementedAccountServer) VerifySliderCaptcha(context.Context, *VerifySl
|
|||||||
func (UnimplementedAccountServer) SendNationMsg(context.Context, *SendNationMsgRequest) (*SendMsgStatusResponse, error) {
|
func (UnimplementedAccountServer) SendNationMsg(context.Context, *SendNationMsgRequest) (*SendMsgStatusResponse, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method SendNationMsg not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method SendNationMsg not implemented")
|
||||||
}
|
}
|
||||||
|
func (UnimplementedAccountServer) VerifySliderStatus(context.Context, *VerifySliderStatusRequest) (*VerifySliderStatusResponse, error) {
|
||||||
|
return nil, status.Errorf(codes.Unimplemented, "method VerifySliderStatus not implemented")
|
||||||
|
}
|
||||||
func (s *UnimplementedAccountServer) XXX_SetProxyImpl(impl protocol.Invoker) {
|
func (s *UnimplementedAccountServer) XXX_SetProxyImpl(impl protocol.Invoker) {
|
||||||
s.proxyImpl = impl
|
s.proxyImpl = impl
|
||||||
}
|
}
|
||||||
@ -1649,6 +1661,35 @@ func _Account_SendNationMsg_Handler(srv interface{}, ctx context.Context, dec fu
|
|||||||
return interceptor(ctx, in, info, handler)
|
return interceptor(ctx, in, info, handler)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func _Account_VerifySliderStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
|
||||||
|
in := new(VerifySliderStatusRequest)
|
||||||
|
if err := dec(in); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
base := srv.(dubbo3.Dubbo3GrpcService)
|
||||||
|
args := []interface{}{}
|
||||||
|
args = append(args, in)
|
||||||
|
md, _ := metadata.FromIncomingContext(ctx)
|
||||||
|
invAttachment := make(map[string]interface{}, len(md))
|
||||||
|
for k, v := range md {
|
||||||
|
invAttachment[k] = v
|
||||||
|
}
|
||||||
|
invo := invocation.NewRPCInvocation("VerifySliderStatus", args, invAttachment)
|
||||||
|
if interceptor == nil {
|
||||||
|
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
|
||||||
|
return result, result.Error()
|
||||||
|
}
|
||||||
|
info := &grpc_go.UnaryServerInfo{
|
||||||
|
Server: srv,
|
||||||
|
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
|
||||||
|
}
|
||||||
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
|
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
|
||||||
|
return result, result.Error()
|
||||||
|
}
|
||||||
|
return interceptor(ctx, in, info, handler)
|
||||||
|
}
|
||||||
|
|
||||||
// Account_ServiceDesc is the grpc_go.ServiceDesc for Account service.
|
// Account_ServiceDesc is the grpc_go.ServiceDesc for Account service.
|
||||||
// It's only intended for direct use with grpc_go.RegisterService,
|
// It's only intended for direct use with grpc_go.RegisterService,
|
||||||
// and not to be introspected or modified (even as a copy)
|
// and not to be introspected or modified (even as a copy)
|
||||||
@ -1808,6 +1849,10 @@ var Account_ServiceDesc = grpc_go.ServiceDesc{
|
|||||||
MethodName: "SendNationMsg",
|
MethodName: "SendNationMsg",
|
||||||
Handler: _Account_SendNationMsg_Handler,
|
Handler: _Account_SendNationMsg_Handler,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
MethodName: "VerifySliderStatus",
|
||||||
|
Handler: _Account_VerifySliderStatus_Handler,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
Streams: []grpc_go.StreamDesc{},
|
Streams: []grpc_go.StreamDesc{},
|
||||||
Metadata: "api/account/account.proto",
|
Metadata: "api/account/account.proto",
|
||||||
|
@ -97,6 +97,8 @@ type BundleProfile struct {
|
|||||||
Language string `protobuf:"bytes,7,opt,name=language,proto3" json:"language,omitempty"`
|
Language string `protobuf:"bytes,7,opt,name=language,proto3" json:"language,omitempty"`
|
||||||
CreatedAt string `protobuf:"bytes,8,opt,name=createdAt,proto3" json:"createdAt,omitempty"`
|
CreatedAt string `protobuf:"bytes,8,opt,name=createdAt,proto3" json:"createdAt,omitempty"`
|
||||||
UpdatedAt string `protobuf:"bytes,9,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"`
|
UpdatedAt string `protobuf:"bytes,9,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"`
|
||||||
|
CompanySign string `protobuf:"bytes,10,opt,name=companySign,proto3" json:"companySign,omitempty"`
|
||||||
|
ContractDuration int64 `protobuf:"varint,11,opt,name=contractDuration,proto3" json:"contractDuration,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *BundleProfile) Reset() {
|
func (x *BundleProfile) Reset() {
|
||||||
@ -194,6 +196,20 @@ func (x *BundleProfile) GetUpdatedAt() string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *BundleProfile) GetCompanySign() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.CompanySign
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *BundleProfile) GetContractDuration() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.ContractDuration
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
type DelBundleRequest struct {
|
type DelBundleRequest struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
@ -499,6 +515,7 @@ type OrderRecord struct {
|
|||||||
Status int64 `protobuf:"varint,15,opt,name=status,proto3" json:"status,omitempty"`
|
Status int64 `protobuf:"varint,15,opt,name=status,proto3" json:"status,omitempty"`
|
||||||
OrderNo string `protobuf:"bytes,16,opt,name=orderNo,proto3" json:"orderNo,omitempty"`
|
OrderNo string `protobuf:"bytes,16,opt,name=orderNo,proto3" json:"orderNo,omitempty"`
|
||||||
BundleName string `protobuf:"bytes,17,opt,name=bundleName,proto3" json:"bundleName,omitempty"`
|
BundleName string `protobuf:"bytes,17,opt,name=bundleName,proto3" json:"bundleName,omitempty"`
|
||||||
|
ContractNo string `protobuf:"bytes,18,opt,name=contractNo,proto3" json:"contractNo,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *OrderRecord) Reset() {
|
func (x *OrderRecord) Reset() {
|
||||||
@ -652,6 +669,13 @@ func (x *OrderRecord) GetBundleName() string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *OrderRecord) GetContractNo() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.ContractNo
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
type OrderRecordsRequest struct {
|
type OrderRecordsRequest struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
@ -977,7 +1001,7 @@ var file_pb_bundle_proto_rawDesc = []byte{
|
|||||||
0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a,
|
0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a,
|
||||||
0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69,
|
0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69,
|
||||||
0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01,
|
0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01,
|
||||||
0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x22, 0xf9, 0x01, 0x0a, 0x0d,
|
0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x22, 0xc7, 0x02, 0x0a, 0x0d,
|
||||||
0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a,
|
0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a,
|
||||||
0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69,
|
0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69,
|
||||||
0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
|
0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||||
@ -993,162 +1017,169 @@ var file_pb_bundle_proto_rawDesc = []byte{
|
|||||||
0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
|
0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
|
||||||
0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64,
|
0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64,
|
||||||
0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70,
|
0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70,
|
||||||
0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x26, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x42, 0x75,
|
0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61,
|
||||||
0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75,
|
0x6e, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f,
|
||||||
0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22,
|
0x6d, 0x70, 0x61, 0x6e, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6e,
|
||||||
0x8d, 0x01, 0x0a, 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
|
0x74, 0x72, 0x61, 0x63, 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20,
|
||||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20,
|
0x01, 0x28, 0x03, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, 0x75, 0x72,
|
||||||
0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67,
|
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x26, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x42, 0x75, 0x6e, 0x64,
|
||||||
0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67,
|
0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69,
|
||||||
0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20,
|
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x8d, 0x01,
|
||||||
0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e,
|
0x0a, 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75,
|
||||||
0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74,
|
0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||||
0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18,
|
0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53,
|
||||||
0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22,
|
0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53,
|
||||||
0x5b, 0x0a, 0x12, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73,
|
0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
|
||||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73,
|
0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65,
|
||||||
0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e,
|
0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
|
||||||
0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x07, 0x62,
|
0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20,
|
||||||
0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18,
|
0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x5b, 0x0a,
|
||||||
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x29, 0x0a, 0x13,
|
0x12, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
||||||
0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75,
|
0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x01,
|
||||||
0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75,
|
||||||
0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x57, 0x0a, 0x14, 0x42, 0x75, 0x6e, 0x64, 0x6c,
|
0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x07, 0x62, 0x75, 0x6e,
|
||||||
0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
|
0x64, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20,
|
||||||
0x2d, 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x29, 0x0a, 0x13, 0x42, 0x75,
|
||||||
0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50,
|
0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||||
0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x10,
|
0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||||
0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67,
|
0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x57, 0x0a, 0x14, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44,
|
||||||
0x22, 0xa5, 0x04, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
|
0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a,
|
||||||
0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
|
0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e,
|
||||||
0x75, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75,
|
0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f,
|
||||||
0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65,
|
0x66, 0x69, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03,
|
||||||
0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72,
|
0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xc5,
|
||||||
0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d,
|
0x04, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x12,
|
||||||
0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72,
|
0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75,
|
||||||
0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f,
|
0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64,
|
||||||
0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d,
|
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75,
|
||||||
0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75,
|
0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44,
|
||||||
0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d,
|
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72,
|
||||||
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75,
|
0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75,
|
||||||
0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65,
|
0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65,
|
||||||
0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79,
|
0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72,
|
||||||
0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61,
|
0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74,
|
||||||
0x63, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f,
|
0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75,
|
||||||
0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74,
|
0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
|
||||||
0x75, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61,
|
0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07,
|
||||||
0x74, 0x75, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69,
|
0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65,
|
||||||
0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64,
|
0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74,
|
||||||
0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18,
|
0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74,
|
||||||
0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18,
|
0x72, 0x61, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72,
|
||||||
0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52,
|
0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75,
|
||||||
0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x68, 0x65, 0x63,
|
0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65,
|
||||||
0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x0d, 0x20,
|
0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69,
|
||||||
0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73,
|
0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20,
|
||||||
0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f,
|
0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07,
|
||||||
0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01,
|
0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70,
|
||||||
0x28, 0x09, 0x52, 0x12, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73,
|
0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f,
|
||||||
0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
|
0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28,
|
||||||
0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18,
|
0x09, 0x52, 0x11, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69,
|
||||||
0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52,
|
0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74,
|
||||||
0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64,
|
0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09,
|
||||||
0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75,
|
0x52, 0x12, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f,
|
||||||
0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xb1, 0x03, 0x0a, 0x13, 0x4f, 0x72, 0x64,
|
0x6e, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f,
|
||||||
0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07,
|
||||||
0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
|
0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f,
|
||||||
0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65,
|
0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65,
|
||||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65,
|
0x4e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64,
|
||||||
0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18,
|
0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61,
|
||||||
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e,
|
0x63, 0x74, 0x4e, 0x6f, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74,
|
||||||
0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61,
|
0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x22, 0xb1, 0x03, 0x0a, 0x13, 0x4f, 0x72, 0x64, 0x65, 0x72,
|
||||||
0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d,
|
0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12,
|
||||||
0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65,
|
0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61,
|
||||||
0x55, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64,
|
0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02,
|
||||||
0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e,
|
0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x20,
|
||||||
0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f,
|
0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20,
|
||||||
0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03,
|
0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d,
|
||||||
0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64,
|
0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65,
|
||||||
0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75,
|
0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72,
|
||||||
0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72,
|
0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55,
|
||||||
0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28,
|
0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65,
|
||||||
0x09, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69,
|
0x55, 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18,
|
||||||
0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x65, 0x6e, 0x64, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54,
|
0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x16,
|
||||||
0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x53, 0x69,
|
0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06,
|
||||||
0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72,
|
0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65,
|
||||||
0x74, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
|
0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64,
|
||||||
0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a,
|
0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53,
|
||||||
0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09,
|
0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||||
0x52, 0x0a, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a,
|
0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65,
|
||||||
0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09,
|
0x12, 0x24, 0x0a, 0x0d, 0x65, 0x6e, 0x64, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d,
|
||||||
0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x22, 0x65, 0x0a, 0x14,
|
0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x53, 0x69, 0x67, 0x6e,
|
||||||
0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70,
|
0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50,
|
||||||
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63,
|
0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74,
|
||||||
0x6f, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x75, 0x6e,
|
0x61, 0x72, 0x74, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x6e,
|
||||||
0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52,
|
0x64, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
|
||||||
0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a,
|
0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75,
|
||||||
0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f,
|
0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
|
||||||
0x74, 0x61, 0x6c, 0x22, 0x69, 0x0a, 0x19, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f,
|
0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x22, 0x65, 0x0a, 0x14, 0x4f, 0x72,
|
||||||
0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||||
0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
|
0x73, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72,
|
||||||
0x75, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18,
|
0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c,
|
||||||
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e,
|
0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0c, 0x6f,
|
||||||
0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01,
|
0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74,
|
||||||
0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x22, 0x65,
|
0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61,
|
||||||
0x0a, 0x1a, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65,
|
0x6c, 0x22, 0x69, 0x0a, 0x19, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
|
||||||
0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0b,
|
0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12,
|
||||||
0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75,
|
||||||
0x0b, 0x32, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72,
|
0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x02, 0x20,
|
||||||
0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63,
|
0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a,
|
||||||
0x6f, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
|
0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
|
||||||
0x52, 0x03, 0x6d, 0x73, 0x67, 0x32, 0xe7, 0x05, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65,
|
0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x22, 0x65, 0x0a, 0x1a,
|
||||||
0x12, 0x3f, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65,
|
|
||||||
0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65,
|
|
||||||
0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65,
|
|
||||||
0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
|
|
||||||
0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c,
|
|
||||||
0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c,
|
|
||||||
0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c,
|
|
||||||
0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
|
||||||
0x22, 0x00, 0x12, 0x42, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64,
|
|
||||||
0x6c, 0x65, 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x42,
|
|
||||||
0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62,
|
|
||||||
0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70,
|
|
||||||
0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0a, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65,
|
|
||||||
0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75,
|
|
||||||
0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
|
|
||||||
0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c,
|
|
||||||
0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a,
|
|
||||||
0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x2e,
|
|
||||||
0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74,
|
|
||||||
0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e,
|
|
||||||
0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
|
|
||||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x11, 0x43, 0x72,
|
|
||||||
0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12,
|
|
||||||
0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65,
|
|
||||||
0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f,
|
|
||||||
0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42,
|
|
||||||
0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63,
|
|
||||||
0x6f, 0x72, 0x64, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64,
|
|
||||||
0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c,
|
|
||||||
0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
|
||||||
0x22, 0x00, 0x12, 0x4b, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65,
|
|
||||||
0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f,
|
|
||||||
0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52,
|
|
||||||
0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43,
|
|
||||||
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
|
|
||||||
0x4f, 0x0a, 0x10, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c,
|
|
||||||
0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64,
|
|
||||||
0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
|
||||||
0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52,
|
|
||||||
0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
|
|
||||||
0x12, 0x5d, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73,
|
|
||||||
0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e,
|
|
||||||
0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61,
|
0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61,
|
||||||
0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64,
|
0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0b, 0x6f, 0x72,
|
||||||
0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44,
|
0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||||
0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42,
|
0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65,
|
||||||
0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f,
|
0x63, 0x6f, 0x72, 0x64, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72,
|
||||||
0x74, 0x6f, 0x33,
|
0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
|
||||||
|
0x6d, 0x73, 0x67, 0x32, 0xe7, 0x05, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x3f,
|
||||||
|
0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15,
|
||||||
|
0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72,
|
||||||
|
0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43,
|
||||||
|
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
|
||||||
|
0x3f, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12,
|
||||||
|
0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50,
|
||||||
|
0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e,
|
||||||
|
0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
|
||||||
|
0x12, 0x42, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65,
|
||||||
|
0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x42, 0x75, 0x6e,
|
||||||
|
0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e,
|
||||||
|
0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||||
|
0x73, 0x65, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0a, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69,
|
||||||
|
0x73, 0x74, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64,
|
||||||
|
0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e,
|
||||||
|
0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73,
|
||||||
|
0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x42,
|
||||||
|
0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x2e, 0x62, 0x75,
|
||||||
|
0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69,
|
||||||
|
0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c,
|
||||||
|
0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65,
|
||||||
|
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61,
|
||||||
|
0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x13, 0x2e,
|
||||||
|
0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f,
|
||||||
|
0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
|
||||||
|
0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x11,
|
||||||
|
0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72,
|
||||||
|
0x64, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72,
|
||||||
|
0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e,
|
||||||
|
0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
|
||||||
|
0x12, 0x4b, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52,
|
||||||
|
0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x13,
|
||||||
|
0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63,
|
||||||
|
0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d,
|
||||||
|
0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a,
|
||||||
|
0x10, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73,
|
||||||
|
0x74, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72,
|
||||||
|
0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c,
|
||||||
|
0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63,
|
||||||
|
0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d,
|
||||||
|
0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65,
|
||||||
|
0x74, 0x61, 0x69, 0x6c, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72,
|
||||||
|
0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
|
||||||
|
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65,
|
||||||
|
0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74,
|
||||||
|
0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0a, 0x5a,
|
||||||
|
0x08, 0x2e, 0x2f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||||
|
0x33,
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -35,6 +35,8 @@ message BundleProfile {
|
|||||||
string language = 7 [json_name = "language"];
|
string language = 7 [json_name = "language"];
|
||||||
string createdAt = 8 [json_name = "createdAt"];
|
string createdAt = 8 [json_name = "createdAt"];
|
||||||
string updatedAt = 9 [json_name = "updatedAt"];
|
string updatedAt = 9 [json_name = "updatedAt"];
|
||||||
|
string companySign = 10 [json_name = "companySign"];
|
||||||
|
int64 contractDuration = 11 [json_name = "contractDuration"];
|
||||||
}
|
}
|
||||||
|
|
||||||
message DelBundleRequest {
|
message DelBundleRequest {
|
||||||
@ -81,6 +83,7 @@ message OrderRecord {
|
|||||||
int64 status = 15 [json_name = "status"];
|
int64 status = 15 [json_name = "status"];
|
||||||
string orderNo = 16 [json_name = "orderNo"];
|
string orderNo = 16 [json_name = "orderNo"];
|
||||||
string bundleName = 17 [json_name = "bundleName"];
|
string bundleName = 17 [json_name = "bundleName"];
|
||||||
|
string contractNo = 18 [json_name = "contractNo"];
|
||||||
}
|
}
|
||||||
|
|
||||||
message OrderRecordsRequest {
|
message OrderRecordsRequest {
|
||||||
|
17
cmd/app.go
17
cmd/app.go
@ -20,6 +20,7 @@ package main
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"fonchain-fiee/cmd/config"
|
"fonchain-fiee/cmd/config"
|
||||||
|
"fonchain-fiee/pkg/cache"
|
||||||
"fonchain-fiee/pkg/router"
|
"fonchain-fiee/pkg/router"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -44,14 +45,14 @@ func bootstrap() (err error) {
|
|||||||
fmt.Println(config.AppConfig)
|
fmt.Println(config.AppConfig)
|
||||||
|
|
||||||
////redis
|
////redis
|
||||||
//redisConfig := cache.RedisConfig{
|
redisConfig := cache.RedisConfig{
|
||||||
// RedisDB: configEnv.Redis.RedisDB,
|
RedisDB: configEnv.Redis.RedisDB,
|
||||||
// RedisAddr: configEnv.Redis.RedisAddr,
|
RedisAddr: configEnv.Redis.RedisAddr,
|
||||||
// RedisPw: configEnv.Redis.RedisPW,
|
RedisPw: configEnv.Redis.RedisPW,
|
||||||
// RedisDbName: configEnv.Redis.RedisDBNAme,
|
RedisDbName: configEnv.Redis.RedisDBNAme,
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//cache.LoadRedis(redisConfig)
|
cache.LoadRedis(redisConfig)
|
||||||
//
|
//
|
||||||
//gpt.InitSet(configEnv.Ai.Host, configEnv.Ai.TelNum, configEnv.Ai.Password)
|
//gpt.InitSet(configEnv.Ai.Host, configEnv.Ai.TelNum, configEnv.Ai.Password)
|
||||||
return nil
|
return nil
|
||||||
|
@ -21,10 +21,11 @@ BucketName = "fontree-test"
|
|||||||
BaseDir = "fonchain-main"
|
BaseDir = "fonchain-main"
|
||||||
CdnHost = "https://cdn-test.szjixun.cn"
|
CdnHost = "https://cdn-test.szjixun.cn"
|
||||||
[redis]
|
[redis]
|
||||||
RedisDB = "1"
|
RedisDB = "2"
|
||||||
RedisAddr = "127.0.0.1:6379"
|
RedisAddr = "127.0.0.1:6379"
|
||||||
RedisPW = ""
|
RedisPW = ""
|
||||||
RedisDBNAme = "1"
|
RedisDBNAme = "2"
|
||||||
|
|
||||||
|
|
||||||
[ai]
|
[ai]
|
||||||
Host = "https://erpapi.fontree.cn"
|
Host = "https://erpapi.fontree.cn"
|
||||||
|
@ -1 +0,0 @@
|
|||||||
package data
|
|
BIN
data/simfang.ttf
Normal file
BIN
data/simfang.ttf
Normal file
Binary file not shown.
@ -22,10 +22,10 @@ BaseDir = "fiee"
|
|||||||
CdnHost = "https://cdn-test.szjixun.cn"
|
CdnHost = "https://cdn-test.szjixun.cn"
|
||||||
|
|
||||||
[redis]
|
[redis]
|
||||||
RedisDB = "1"
|
RedisDB = "2"
|
||||||
RedisAddr = "172.16.100.114:6379"
|
RedisAddr = "172.16.100.114:6379"
|
||||||
RedisPW = "kP6tW4tS3qB2dW4aE6uI5cX2"
|
RedisPW = "kP6tW4tS3qB2dW4aE6uI5cX2"
|
||||||
RedisDBNAme = "1"
|
RedisDBNAme = "2"
|
||||||
|
|
||||||
[ai]
|
[ai]
|
||||||
Host = "https://erpapi.fontree.cn"
|
Host = "https://erpapi.fontree.cn"
|
||||||
|
@ -25,5 +25,6 @@ dubbo:
|
|||||||
interface: com.fontree.microservices.fiee.bundle # must be compatible with grpc or dubbo-java
|
interface: com.fontree.microservices.fiee.bundle # must be compatible with grpc or dubbo-java
|
||||||
AccountClientImpl:
|
AccountClientImpl:
|
||||||
protocol: tri
|
protocol: tri
|
||||||
retries: 0
|
retries: 3
|
||||||
interface: com.fontree.microservices.common.micro.account
|
interface: com.fontree.microservices.common.micro.account
|
||||||
|
# filter: echo,metrics,token,accesslog,sign,tps,generic_service,execute,pshutdown,auth,fonValidateFilter
|
||||||
|
@ -14,10 +14,10 @@ BosBaseDir = "fonchain-main"
|
|||||||
BosHttp = "https://"
|
BosHttp = "https://"
|
||||||
|
|
||||||
[redis]
|
[redis]
|
||||||
RedisDB = "1"
|
RedisDB = "2"
|
||||||
RedisAddr = "svc-fontree-redis-service:6379"
|
RedisAddr = "svc-fontree-redis-service:6379"
|
||||||
RedisPW = "fonchain_opv:kP6tW4tS3qB2dW4aE6uI5cX2"
|
RedisPW = "fonchain_opv:kP6tW4tS3qB2dW4aE6uI5cX2"
|
||||||
RedisDBNAme = "1"
|
RedisDBNAme = "2"
|
||||||
|
|
||||||
[ai]
|
[ai]
|
||||||
Host = "https://erpapi.fontree.cn"
|
Host = "https://erpapi.fontree.cn"
|
||||||
|
1
go.mod
1
go.mod
@ -17,6 +17,7 @@ go 1.18
|
|||||||
//github.com/fonchain_enterprise/utils/ipAddrQuery => ../utils/ipAddrQuery
|
//github.com/fonchain_enterprise/utils/ipAddrQuery => ../utils/ipAddrQuery
|
||||||
//github.com/fonchain_enterprise/utils/jwt => ../utils/jwt
|
//github.com/fonchain_enterprise/utils/jwt => ../utils/jwt
|
||||||
//github.com/fonchain_enterprise/utils/logger => ../utils/logger
|
//github.com/fonchain_enterprise/utils/logger => ../utils/logger
|
||||||
|
//replace github.com/fonchain_enterprise/utils/objstorage => ../../tyfon-新/utils/objstorage
|
||||||
replace github.com/fonchain_enterprise/utils/objstorage => ../utils/objstorage
|
replace github.com/fonchain_enterprise/utils/objstorage => ../utils/objstorage
|
||||||
|
|
||||||
require (
|
require (
|
||||||
|
@ -56,4 +56,158 @@ var EnMessages = map[string]string{
|
|||||||
"验证码已失效": "The verification code is invalid",
|
"验证码已失效": "The verification code is invalid",
|
||||||
"服务器错误": "Server error",
|
"服务器错误": "Server error",
|
||||||
"验证失败,请控制拼图对齐缺口": "Verification failed, please control puzzle alignment gap",
|
"验证失败,请控制拼图对齐缺口": "Verification failed, please control puzzle alignment gap",
|
||||||
|
"滑块验证状态不存在,请退出重试": "The slider verification status does not exist. Please exit and try again",
|
||||||
|
}
|
||||||
|
|
||||||
|
var DeDEMessages = map[string]string{
|
||||||
|
"获取套餐列表失败": "Fehler beim Abrufen der Bundle-Liste",
|
||||||
|
"创建套餐信息失败": "Fehler beim Erstellen von Bundle-Informationen",
|
||||||
|
"创建套餐信息成功": "Bundle-Informationen erfolgreich erstellt",
|
||||||
|
"更新套餐信息失败": "Fehler beim Aktualisieren von Bundle-Informationen",
|
||||||
|
"更新套餐信息成功": "Bundle-Informationen erfolgreich aktualisiert",
|
||||||
|
"删除套餐信息失败": "Fehler beim Löschen von Bundle-Informationen",
|
||||||
|
"删除套餐信息成功": "Bundle-Informationen erfolgreich gelöscht",
|
||||||
|
"获取套餐信息失败": "Fehler beim Abrufen von Bundle-Informationen",
|
||||||
|
"创建订单信息失败": "Fehler beim Erstellen von Bestellinformationen",
|
||||||
|
"创建订单信息成功": "Bestellinformationen erfolgreich erstellt",
|
||||||
|
"更新订单信息失败": "Fehler beim Aktualisieren von Bestellinformationen",
|
||||||
|
"更新订单信息成功": "Bestellinformationen erfolgreich aktualisiert",
|
||||||
|
"获取订单信息失败": "Fehler beim Abrufen von Bestellinformationen",
|
||||||
|
"获取订单列表失败": "Fehler beim Abrufen der Bestellliste",
|
||||||
|
"缺少套餐UUID": "Fehlende Bundle-UUID",
|
||||||
|
"缺少客户签名信息": "Fehlende Kundenunterschrift",
|
||||||
|
"插入签名失败": "Fehler beim Einfügen der Signatur",
|
||||||
|
"缺少订单号": "Fehlende Bestellnummer",
|
||||||
|
"缺少订单信息": "Fehlende Bestellinformationen",
|
||||||
|
"非当前用户订单信息不可操作": "Bestellinformationen anderer Benutzer können nicht bearbeitet werden",
|
||||||
|
"订单已支付": "Bestellung wurde bezahlt",
|
||||||
|
"您已购买过套餐,无法再次购买": "Sie haben dieses Bundle bereits gekauft und können es nicht erneut kaufen",
|
||||||
|
"查询支付信息失败": "Fehler beim Abfragen von Zahlungsinformationen",
|
||||||
|
"下载文件失败": "Fehler beim Herunterladen der Datei",
|
||||||
|
"上传文件失败": "Fehler beim Hochladen der Datei",
|
||||||
|
"时间格式错误": "Ungültiges Zeitformat",
|
||||||
|
|
||||||
|
"账号或密码错误": "Konto oder Passwort falsch",
|
||||||
|
"账号或验证码错误": "Konto oder Verifizierungscode falsch",
|
||||||
|
"账号已存在": "Konto existiert bereits",
|
||||||
|
"没有找到数据": "Keine Daten gefunden",
|
||||||
|
"已经发送过,验证码尚可用": "Es wurde gesendet. Der Verifizierungscode funktioniert noch",
|
||||||
|
"系统提示:已经发送过,验证码尚可用": "Systemnachricht: Bereits gesendet, Verifizierungscode ist noch verfügbar",
|
||||||
|
"您的手机号当天发送次数过多,请联系管理员通过密码登录": "Ihre Telefonnummer wurde an diesem Tag zu oft gesendet. Bitte wenden Sie sich an den Administrator, um sich über das Passwort anzumelden",
|
||||||
|
"您的手机号验证码错误,请确认之后注册": "Ihre Telefonnummer Verifizierungscode ist falsch, bitte bestätigen und registrieren",
|
||||||
|
"手机号不合法": "Telefonnummer ungültig",
|
||||||
|
"手机号未更改": "Telefonnummer wurde nicht geändert",
|
||||||
|
"新手机号过期": "Neue Telefonnummer abgelaufen",
|
||||||
|
"验证码错误": "Verifizierungscode falsch",
|
||||||
|
"验证码未发送": "Der Verifizierungscode wurde nicht gesendet",
|
||||||
|
"账号不存在": "Konto existiert nicht",
|
||||||
|
"已实名": "In echt",
|
||||||
|
"实名审核中,请勿重复提交": "Während der Echtheitsprüfung bitte nicht wiederholen",
|
||||||
|
"用户状态异常,无法进行审核": "Der Benutzer ist abnorm und kann nicht geprüft werden. Verfahren",
|
||||||
|
"验证码已失效": "Der Verifizierungscode ist ungültig",
|
||||||
|
"服务器错误": "Serverfehler",
|
||||||
|
"验证失败,请控制拼图对齐缺口": "Überprüfung fehlgeschlagen, bitte Steuerung Puzzle-Ausrichtungslücke",
|
||||||
|
"滑块验证状态不存在,请退出重试": "Die krümmbestätigung existiert nicht. Bitte beenden sie den vorgang",
|
||||||
|
}
|
||||||
|
|
||||||
|
var JaJPMessages = map[string]string{
|
||||||
|
"获取套餐列表失败": "バンドルリストの取得に失敗しました",
|
||||||
|
"创建套餐信息失败": "バンドル情報の作成に失敗しました",
|
||||||
|
"创建套餐信息成功": "バンドル情報の作成に成功しました",
|
||||||
|
"更新套餐信息失败": "バンドル情報の更新に失敗しました",
|
||||||
|
"更新套餐信息成功": "バンドル情報の更新に成功しました",
|
||||||
|
"删除套餐信息失败": "バンドル情報の削除に失敗しました",
|
||||||
|
"删除套餐信息成功": "バンドル情報の削除に成功しました",
|
||||||
|
"获取套餐信息失败": "バンドル情報の取得に失敗しました",
|
||||||
|
"创建订单信息失败": "注文情報の作成に失敗しました",
|
||||||
|
"创建订单信息成功": "注文情報の作成に成功しました",
|
||||||
|
"更新订单信息失败": "注文情報の更新に失敗しました",
|
||||||
|
"更新订单信息成功": "注文情報の更新に成功しました",
|
||||||
|
"获取订单信息失败": "注文情報の取得に失敗しました",
|
||||||
|
"获取订单列表失败": "注文リストの取得に失敗しました",
|
||||||
|
"缺少套餐UUID": "バンドルUUIDがありません",
|
||||||
|
"缺少客户签名信息": "顧客署名情報がありません",
|
||||||
|
"插入签名失败": "署名の挿入に失敗しました",
|
||||||
|
"缺少订单号": "注文番号がありません",
|
||||||
|
"缺少订单信息": "注文情報がありません",
|
||||||
|
"非当前用户订单信息不可操作": "他のユーザーの注文情報を操作できません",
|
||||||
|
"订单已支付": "注文は支払われました",
|
||||||
|
"您已购买过套餐,无法再次购买": "このバンドルはすでに購入済みであり、再度購入することはできません",
|
||||||
|
"查询支付信息失败": "支払い情報のクエリに失敗しました",
|
||||||
|
"下载文件失败": "ファイルのダウンロードに失敗しました",
|
||||||
|
"上传文件失败": "ファイルのアップロードに失敗しました",
|
||||||
|
"时间格式错误": "無効な時間形式",
|
||||||
|
|
||||||
|
"账号或密码错误": "アカウントまたはパスワードが間違っています",
|
||||||
|
"账号或验证码错误": "アカウントまたは検証コードが間違っています",
|
||||||
|
"账号已存在": "アカウントはすでに存在します",
|
||||||
|
"没有找到数据": "データが見つかりません",
|
||||||
|
"已经发送过,验证码尚可用": "送信されました。検証コードは引き続き有効です",
|
||||||
|
"系统提示:已经发送过,验证码尚可用": "システムメッセージ:すでに送信され、検証コードは引き続き有効です",
|
||||||
|
"您的手机号当天发送次数过多,请联系管理员通过密码登录": "その日の電話番号が送信されすぎています。管理者に連絡してパスワードでログインしてください",
|
||||||
|
"您的手机号验证码错误,请确认之后注册": "電話番号の検証コードが間違っています。確認して登録してください",
|
||||||
|
"手机号不合法": "電話番号が無効です",
|
||||||
|
"手机号未更改": "電話番号が変更されていません",
|
||||||
|
"新手机号过期": "新しい電話番号の有効期限が切れました",
|
||||||
|
"验证码错误": "検証コードが間違っています",
|
||||||
|
"验证码未发送": "検証コードが送信されていません",
|
||||||
|
"账号不存在": "アカウントが存在しません",
|
||||||
|
"已实名": "実名",
|
||||||
|
"实名审核中,请勿重复提交": "実名審査中、繰り返し提出しないでください",
|
||||||
|
"用户状态异常,无法进行审核": "ユーザーが異常であり、審査できません。手続き",
|
||||||
|
"验证码已失效": "検証コードが無効です",
|
||||||
|
"服务器错误": "サーバーエラー",
|
||||||
|
"验证失败,请控制拼图对齐缺口": "検証に失敗しました。パズルの整列ギャップを制御してください",
|
||||||
|
"滑块验证状态不存在,请退出重试": "スライダー検証状態が存在しません,リトライをログアウトしてください",
|
||||||
|
}
|
||||||
|
|
||||||
|
var ZhTWMessages = map[string]string{
|
||||||
|
"获取套餐列表失败": "獲取套餐列表失敗",
|
||||||
|
"创建套餐信息失败": "創建套餐信息失敗",
|
||||||
|
"创建套餐信息成功": "創建套餐信息成功",
|
||||||
|
"更新套餐信息失败": "更新套餐信息失敗",
|
||||||
|
"更新套餐信息成功": "更新套餐信息成功",
|
||||||
|
"删除套餐信息失败": "刪除套餐信息失敗",
|
||||||
|
"删除套餐信息成功": "刪除套餐信息成功",
|
||||||
|
"获取套餐信息失败": "獲取套餐信息失敗",
|
||||||
|
"创建订单信息失败": "創建訂單信息失敗",
|
||||||
|
"创建订单信息成功": "創建訂單信息成功",
|
||||||
|
"更新订单信息失败": "更新訂單信息失敗",
|
||||||
|
"更新订单信息成功": "更新訂單信息成功",
|
||||||
|
"获取订单信息失败": "獲取訂單信息失敗",
|
||||||
|
"获取订单列表失败": "獲取訂單列表失敗",
|
||||||
|
"缺少套餐UUID": "缺少套餐UUID",
|
||||||
|
"缺少客户签名信息": "缺少客戶簽名信息",
|
||||||
|
"插入签名失败": "插入簽名失敗",
|
||||||
|
"缺少订单号": "缺少訂單號",
|
||||||
|
"缺少订单信息": "缺少訂單信息",
|
||||||
|
"非当前用户订单信息不可操作": "非當前用戶訂單信息不可操作",
|
||||||
|
"订单已支付": "訂單已支付",
|
||||||
|
"您已购买过套餐,无法再次购买": "您已購買過套餐,無法再次購買",
|
||||||
|
"查询支付信息失败": "查詢支付信息失敗",
|
||||||
|
"下载文件失败": "下載文件失敗",
|
||||||
|
"上传文件失败": "上傳文件失敗",
|
||||||
|
"时间格式错误": "時間格式錯誤",
|
||||||
|
|
||||||
|
"账号或密码错误": "帳號或密碼錯誤",
|
||||||
|
"账号或验证码错误": "帳號或驗證碼錯誤",
|
||||||
|
"账号已存在": "帳號已存在",
|
||||||
|
"没有找到数据": "沒有找到數據",
|
||||||
|
"已经发送过,验证码尚可用": "已經發送過,驗證碼尚可用",
|
||||||
|
"系统提示:已经发送过,验证码尚可用": "系統提示:已經發送過,驗證碼尚可用",
|
||||||
|
"您的手机号当天发送次数过多,请联系管理员通过密码登录": "您的手機號當天發送次數過多,請聯繫管理員通過密碼登錄",
|
||||||
|
"您的手机号验证码错误,请确认之后注册": "您的手機號驗證碼錯誤,請確認之後註冊",
|
||||||
|
"手机号不合法": "手機號不合法",
|
||||||
|
"手机号未更改": "手機號未更改",
|
||||||
|
"新手机号过期": "新手機號過期",
|
||||||
|
"验证码错误": "驗證碼錯誤",
|
||||||
|
"验证码未发送": "驗證碼未發送",
|
||||||
|
"账号不存在": "帳號不存在",
|
||||||
|
"已实名": "已實名",
|
||||||
|
"实名审核中,请勿重复提交": "實名審核中,請勿重複提交",
|
||||||
|
"用户状态异常,无法进行审核": "用戶狀態異常,無法進行審核",
|
||||||
|
"验证码已失效": "驗證碼已失效",
|
||||||
|
"服务器错误": "服務器錯誤",
|
||||||
|
"验证失败,请控制拼图对齐缺口": "驗證失敗,請控制拼圖對齊缺口",
|
||||||
|
"滑块验证状态不存在,请退出重试": "滑塊驗證狀態不存在,請退出重試",
|
||||||
}
|
}
|
||||||
|
@ -60,6 +60,8 @@ func CheckLogin(provider *api.AccountClientImpl) gin.HandlerFunc {
|
|||||||
SubNum: infoRes.SubNum,
|
SubNum: infoRes.SubNum,
|
||||||
NotPassRemarks: infoRes.NotPassRemarks,
|
NotPassRemarks: infoRes.NotPassRemarks,
|
||||||
Domain: infoRes.Domain,
|
Domain: infoRes.Domain,
|
||||||
|
TelNum: jwt.Phone,
|
||||||
|
SubscriberNumber: infoRes.SubscriberNumber,
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.Set("jwtInfo", loginInfo)
|
ctx.Set("jwtInfo", loginInfo)
|
||||||
|
@ -25,6 +25,8 @@ type Info struct {
|
|||||||
SubNum string `json:"subNum"`
|
SubNum string `json:"subNum"`
|
||||||
NotPassRemarks string `json:"notPassRemarks"`
|
NotPassRemarks string `json:"notPassRemarks"`
|
||||||
Domain string `json:"domain"`
|
Domain string `json:"domain"`
|
||||||
|
TelNum string `json:"telNum"`
|
||||||
|
SubscriberNumber string `json:"subscriberNumber"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetUserInfoFromC(c *gin.Context) Info {
|
func GetUserInfoFromC(c *gin.Context) Info {
|
||||||
|
@ -57,6 +57,7 @@ func NewRouter() *gin.Engine {
|
|||||||
{
|
{
|
||||||
acRoute.POST("real-name", account.RealName) //实名
|
acRoute.POST("real-name", account.RealName) //实名
|
||||||
acRoute.POST("info", account.UserInfo) //用户详情
|
acRoute.POST("info", account.UserInfo) //用户详情
|
||||||
|
acRoute.POST("update", account.UserUpdate) //用户更新
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
acRoute.POST("list", account.UserList) //用户列表
|
acRoute.POST("list", account.UserList) //用户列表
|
||||||
|
@ -2,18 +2,14 @@ package account
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"errors"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"fonchain-fiee/api/account"
|
"fonchain-fiee/api/account"
|
||||||
"fonchain-fiee/pkg/cache"
|
|
||||||
"fonchain-fiee/pkg/e"
|
"fonchain-fiee/pkg/e"
|
||||||
"fonchain-fiee/pkg/model/login"
|
"fonchain-fiee/pkg/model/login"
|
||||||
"fonchain-fiee/pkg/model/union"
|
"fonchain-fiee/pkg/model/union"
|
||||||
"fonchain-fiee/pkg/service"
|
"fonchain-fiee/pkg/service"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"github.com/gin-gonic/gin/binding"
|
"github.com/gin-gonic/gin/binding"
|
||||||
"github.com/go-redis/redis"
|
|
||||||
"time"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func UserApproval(c *gin.Context) {
|
func UserApproval(c *gin.Context) {
|
||||||
@ -62,6 +58,29 @@ func UserInfo(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func UserUpdate(c *gin.Context) {
|
||||||
|
var req account.UpdateRequest
|
||||||
|
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
|
||||||
|
service.Error(c, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
user := login.GetUserInfoFromC(c)
|
||||||
|
req.ID = user.ID
|
||||||
|
req.Domain = user.Domain
|
||||||
|
res, err := service.AccountProvider.Update(context.Background(), &account.UpdateRequest{
|
||||||
|
ID: req.ID,
|
||||||
|
Domain: req.Domain,
|
||||||
|
Language: req.Language,
|
||||||
|
NickName: req.NickName,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
service.Error(c, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
service.Success(c, res)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// SendMsg 用户发送验证码
|
// SendMsg 用户发送验证码
|
||||||
func SendMsg(c *gin.Context) {
|
func SendMsg(c *gin.Context) {
|
||||||
var req account.SendMsgRequest
|
var req account.SendMsgRequest
|
||||||
@ -69,50 +88,59 @@ func SendMsg(c *gin.Context) {
|
|||||||
service.Error(c, err)
|
service.Error(c, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
data, err := service.AccountProvider.VerifySliderStatus(context.Background(), &account.VerifySliderStatusRequest{
|
||||||
|
NonceStr: req.NonceStr,
|
||||||
|
})
|
||||||
|
fmt.Println("data=============>", data, err)
|
||||||
|
if err != nil {
|
||||||
|
service.Error(c, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
req.Project = "fiee"
|
req.Project = "fiee"
|
||||||
req.TelNum = req.Zone + req.TelNum
|
req.TelNum = req.Zone + req.TelNum
|
||||||
if req.Zone != e.ZoneCn && req.Zone != "" {
|
if req.Zone != e.ZoneCn && req.Zone != "" {
|
||||||
// ============================== redis检查ip开始
|
// ============================== redis检查ip开始
|
||||||
ip := c.ClientIP()
|
ip := c.ClientIP()
|
||||||
daykey := "day_sms_limit:" + ip
|
fmt.Println("当前ip:", ip, ";手机号:", req.TelNum, ";domain:", req.Domain)
|
||||||
minutekey := "minute_sms_limit:" + ip
|
//daykey := "day_sms_limit:" + ip
|
||||||
duration := time.Second
|
//minutekey := "minute_sms_limit:" + ip
|
||||||
isBlacklisted, blackErr := cache.RedisClient.SIsMember("nation_sms_blacklist", ip).Result()
|
//duration := time.Second
|
||||||
if blackErr != nil {
|
//isBlacklisted, blackErr := cache.RedisClient.SIsMember("nation_sms_blacklist", ip).Result()
|
||||||
service.Error(c, errors.New("Redis error"))
|
//if blackErr != nil {
|
||||||
return
|
// service.Error(c, errors.New("Redis error"))
|
||||||
}
|
// return
|
||||||
if isBlacklisted {
|
//}
|
||||||
fmt.Println("当前ip手机号在黑名单中:", ip, ";手机号:", req.TelNum, ";domain:", req.Domain)
|
//if isBlacklisted {
|
||||||
service.Success(c, "succes!!")
|
// fmt.Println("当前ip手机号在黑名单中:", ip, ";手机号:", req.TelNum, ";domain:", req.Domain)
|
||||||
return
|
// service.Success(c, "succes!!")
|
||||||
}
|
// return
|
||||||
|
//}
|
||||||
// 一分钟5次,一天30次
|
//
|
||||||
if dayCount, redisErr := cache.RedisClient.Get(daykey).Int(); redisErr == redis.Nil {
|
//// 一分钟5次,一天30次
|
||||||
cache.RedisClient.Set(daykey, 1, 24*time.Hour)
|
//if dayCount, redisErr := cache.RedisClient.Get(daykey).Int(); redisErr == redis.Nil {
|
||||||
} else if redisErr != nil {
|
// cache.RedisClient.Set(daykey, 1, 24*time.Hour)
|
||||||
service.Error(c, errors.New("Redis error"))
|
//} else if redisErr != nil {
|
||||||
return
|
// service.Error(c, errors.New("Redis error"))
|
||||||
} else if dayCount >= 30 {
|
// return
|
||||||
cache.RedisClient.SAdd("nation_sms_blacklist", ip)
|
//} else if dayCount >= 30 {
|
||||||
cache.RedisClient.Expire("nation_sms_blacklist", 24*time.Hour) // 黑名单记录有效期为24小时
|
// cache.RedisClient.SAdd("nation_sms_blacklist", ip)
|
||||||
fmt.Println("当前ip手机号在黑名单中:", ip, ";手机号:", req.TelNum, ";domain:", req.Domain)
|
// cache.RedisClient.Expire("nation_sms_blacklist", 24*time.Hour) // 黑名单记录有效期为24小时
|
||||||
service.Success(c, "succes!!")
|
// fmt.Println("当前ip手机号在黑名单中:", ip, ";手机号:", req.TelNum, ";domain:", req.Domain)
|
||||||
return
|
// service.Success(c, "succes!!")
|
||||||
}
|
// return
|
||||||
if minuteCount, redisErr := cache.RedisClient.Get(minutekey).Int(); redisErr == redis.Nil {
|
//}
|
||||||
cache.RedisClient.Set(minutekey, 1, duration)
|
//if minuteCount, redisErr := cache.RedisClient.Get(minutekey).Int(); redisErr == redis.Nil {
|
||||||
} else if redisErr != nil {
|
// cache.RedisClient.Set(minutekey, 1, duration)
|
||||||
service.Error(c, errors.New("Redis error"))
|
//} else if redisErr != nil {
|
||||||
return
|
// service.Error(c, errors.New("Redis error"))
|
||||||
} else if minuteCount >= 5 {
|
// return
|
||||||
fmt.Println("当前ip触发每分钟5次限制:", ip, ";手机号:", req.TelNum, ";domain:", req.Domain)
|
//} else if minuteCount >= 5 {
|
||||||
service.Success(c, "succes!!")
|
// fmt.Println("当前ip触发每分钟5次限制:", ip, ";手机号:", req.TelNum, ";domain:", req.Domain)
|
||||||
return
|
// service.Success(c, "succes!!")
|
||||||
}
|
// return
|
||||||
cache.RedisClient.Incr(daykey)
|
//}
|
||||||
cache.RedisClient.Incr(minutekey)
|
//cache.RedisClient.Incr(daykey)
|
||||||
|
//cache.RedisClient.Incr(minutekey)
|
||||||
// ============================== redis检查ip结束
|
// ============================== redis检查ip结束
|
||||||
|
|
||||||
tempReq := &account.SendNationMsgRequest{
|
tempReq := &account.SendNationMsgRequest{
|
||||||
|
@ -94,6 +94,12 @@ func translateErrorMessage(c *gin.Context, message string) string {
|
|||||||
switch lang {
|
switch lang {
|
||||||
case "zh-CN":
|
case "zh-CN":
|
||||||
return message
|
return message
|
||||||
|
case "zh-TW":
|
||||||
|
return common.ZhTWMessages[message]
|
||||||
|
case "de-DE":
|
||||||
|
return common.DeDEMessages[message]
|
||||||
|
case "ja-JP":
|
||||||
|
return common.JaJPMessages[message]
|
||||||
default:
|
default:
|
||||||
return common.EnMessages[message]
|
return common.EnMessages[message]
|
||||||
}
|
}
|
||||||
|
@ -55,6 +55,25 @@ func CreateBundleOrderSignature(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取 最后一次的 合同编号
|
||||||
|
lastOrderRecord, lastOrderRecordErr := service.BundleProvider.OrderRecordsList(context.Background(), &bundle.OrderRecordsRequest{
|
||||||
|
PageSize: 1,
|
||||||
|
Page: 1,
|
||||||
|
})
|
||||||
|
|
||||||
|
if lastOrderRecordErr != nil {
|
||||||
|
service.Error(c, lastOrderRecordErr)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
lastContractNo := ""
|
||||||
|
|
||||||
|
if lastOrderRecord.OrderRecords != nil {
|
||||||
|
for _, lastOrder := range lastOrderRecord.OrderRecords {
|
||||||
|
lastContractNo = lastOrder.ContractNo
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
req.CustomerNum = userInfo.SubNum
|
req.CustomerNum = userInfo.SubNum
|
||||||
req.CustomerName = userInfo.Name
|
req.CustomerName = userInfo.Name
|
||||||
req.CustomerID = strconv.FormatUint(userInfo.ID, 10)
|
req.CustomerID = strconv.FormatUint(userInfo.ID, 10)
|
||||||
@ -75,8 +94,10 @@ func CreateBundleOrderSignature(c *gin.Context) {
|
|||||||
|
|
||||||
req.PayType = 1 // 默认 人民币
|
req.PayType = 1 // 默认 人民币
|
||||||
|
|
||||||
|
req.ContractNo = common.GenerateContractNo(lastContractNo)
|
||||||
|
|
||||||
// 当前 未将 签名 写入合同中
|
// 当前 未将 签名 写入合同中
|
||||||
signContract, signContractErr := logic.SignContract(req.CustomerNum, bundleDetail.Bundle.Contract, req.Signature)
|
signContract, signContractErr := logic.SignContract(req.CustomerNum, bundleDetail.Bundle.Contract, req.Signature, bundleDetail.Bundle.CompanySign, req.ContractNo, userInfo.Name, userInfo.SubscriberNumber, userInfo.TelNum, userInfo.PlaceOfResidence, bundleDetail.Bundle.Price, bundleDetail.Bundle.ContractDuration)
|
||||||
if signContractErr != nil {
|
if signContractErr != nil {
|
||||||
service.Error(c, signContractErr)
|
service.Error(c, signContractErr)
|
||||||
return
|
return
|
||||||
|
30
pkg/service/bundle/common/contractNo.go
Normal file
30
pkg/service/bundle/common/contractNo.go
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
package common
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"strconv"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// GenerateContractNo 生成 contractNo 规则 YYYY-MM-DD-xxxxx xxxxx 是从 00001 开始 自增
|
||||||
|
func GenerateContractNo(lastContractNo string) string {
|
||||||
|
prefix := time.Now().Format("2006-01-02") + "-"
|
||||||
|
|
||||||
|
if lastContractNo == "" {
|
||||||
|
return prefix + "00001"
|
||||||
|
}
|
||||||
|
|
||||||
|
suffix := lastContractNo[11:]
|
||||||
|
|
||||||
|
suffixInt, _ := strconv.ParseInt(suffix, 10, 64)
|
||||||
|
|
||||||
|
if suffixInt >= 99999 {
|
||||||
|
suffixInt = suffixInt + 1
|
||||||
|
return prefix + strconv.FormatInt(suffixInt, 10)
|
||||||
|
} else {
|
||||||
|
suffixInt = suffixInt + 1
|
||||||
|
suffix = strconv.FormatInt(suffixInt, 10)
|
||||||
|
suffix = fmt.Sprintf("%05d", suffixInt)
|
||||||
|
return prefix + suffix
|
||||||
|
}
|
||||||
|
}
|
@ -14,10 +14,11 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
func SignContract(customerNum string, contract string, signImgPath string) (outputUrl string, err error) {
|
func SignContract(customerNum, contract, signImgPath, companyImgPath, contractNo, buyerName, idNo, telNum, address string, price float32, contractDuration int64) (outputUrl string, err error) {
|
||||||
filePath := model.MediaPath + customerNum + time.Now().Format("20060102150405") + ".pdf"
|
filePath := model.MediaPath + customerNum + time.Now().Format("20060102150405") + ".pdf"
|
||||||
downloadFileErr := DownloadFile(filePath, contract)
|
downloadFileErr := DownloadFile(filePath, contract)
|
||||||
if downloadFileErr != nil {
|
if downloadFileErr != nil {
|
||||||
@ -28,7 +29,13 @@ func SignContract(customerNum string, contract string, signImgPath string) (outp
|
|||||||
|
|
||||||
signFile := model.MediaPath + customerNum + "signed" + time.Now().Format("20060102150405") + ".pdf"
|
signFile := model.MediaPath + customerNum + "signed" + time.Now().Format("20060102150405") + ".pdf"
|
||||||
|
|
||||||
signErr := InsertSignature(filePath, signFile, signImgPath)
|
/*signErr := InsertSignature(filePath, signFile, signImgPath, contractNo, idNo, telNum, address, price)
|
||||||
|
if signErr != nil {
|
||||||
|
zap.L().Error("insert signature error: ", zap.Error(signErr))
|
||||||
|
return outputUrl, errors.New(common.ErrorInsertSignature)
|
||||||
|
}*/
|
||||||
|
|
||||||
|
signErr := InsertSignatureV1(filePath, signFile, signImgPath, companyImgPath, contractNo, buyerName, idNo, telNum, address, price, contractDuration)
|
||||||
if signErr != nil {
|
if signErr != nil {
|
||||||
zap.L().Error("insert signature error: ", zap.Error(signErr))
|
zap.L().Error("insert signature error: ", zap.Error(signErr))
|
||||||
return outputUrl, errors.New(common.ErrorInsertSignature)
|
return outputUrl, errors.New(common.ErrorInsertSignature)
|
||||||
@ -112,6 +119,189 @@ func InsertSignature(templatePath string, outputPath string, signImgPath string)
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func InsertSignatureV1(templatePath, outputPath, signImgPath, companyImgPath, contractNo, buyerName, idNo, telNum, address string, price float32, contractDuration int64) error {
|
||||||
|
pdf := gopdf.GoPdf{}
|
||||||
|
pdf.Start(gopdf.Config{PageSize: *gopdf.PageSizeA4})
|
||||||
|
|
||||||
|
// 导入模板文件中的页面
|
||||||
|
err := pdf.ImportPagesFromSource(templatePath, "/MediaBox")
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("无法导入页面: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取模板文件的总页数
|
||||||
|
totalPages := pdf.GetNumberOfPages()
|
||||||
|
fmt.Printf("模板文件的总页数: %d\n", totalPages)
|
||||||
|
|
||||||
|
buyerPage := 1
|
||||||
|
|
||||||
|
pricePage := 2
|
||||||
|
|
||||||
|
limitTimePage := 3
|
||||||
|
|
||||||
|
signPage := totalPages
|
||||||
|
|
||||||
|
tffErr := pdf.AddTTFFont("simfang", "./data/simfang.ttf")
|
||||||
|
if tffErr != nil {
|
||||||
|
fmt.Printf("加载中文字体失败: %v\n", tffErr)
|
||||||
|
log.Fatalf("加载中文字体失败: %v", tffErr)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置字体和字号
|
||||||
|
err = pdf.SetFont("simfang", "", 14)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("设置字体失败: %v\n", err)
|
||||||
|
log.Fatalf("设置字体失败: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 写 buyer info
|
||||||
|
pdf.SetPage(buyerPage)
|
||||||
|
pdf.SetX(149)
|
||||||
|
pdf.SetY(126)
|
||||||
|
pdf.Cell(nil, contractNo)
|
||||||
|
|
||||||
|
pdf.SetX(149)
|
||||||
|
pdf.SetY(152)
|
||||||
|
pdf.Cell(nil, time.Now().Format("2006-01-02"))
|
||||||
|
|
||||||
|
pdf.SetX(180)
|
||||||
|
pdf.SetY(203)
|
||||||
|
pdf.Cell(nil, buyerName)
|
||||||
|
|
||||||
|
pdf.SetX(210)
|
||||||
|
pdf.SetY(229)
|
||||||
|
pdf.Cell(nil, idNo)
|
||||||
|
|
||||||
|
pdf.SetX(200)
|
||||||
|
pdf.SetY(256)
|
||||||
|
pdf.Cell(nil, telNum)
|
||||||
|
|
||||||
|
pdf.SetX(200)
|
||||||
|
pdf.SetY(282)
|
||||||
|
pdf.Cell(nil, address)
|
||||||
|
|
||||||
|
// 填 金额
|
||||||
|
pdf.SetPage(pricePage)
|
||||||
|
pdf.SetX(380)
|
||||||
|
pdf.SetY(626)
|
||||||
|
// 保留整数
|
||||||
|
//pdf.Cell(nil, strconv.FormatFloat(float64(price), 'f', 0, 32))
|
||||||
|
pdf.Cell(nil, strconv.FormatFloat(float64(price/10000.0), 'f', -1, 32))
|
||||||
|
|
||||||
|
// 写 有效期
|
||||||
|
t := time.Now().AddDate(int(contractDuration), 0, 0)
|
||||||
|
pdf.SetPage(limitTimePage)
|
||||||
|
pdf.SetX(317)
|
||||||
|
pdf.SetY(327)
|
||||||
|
pdf.Cell(nil, t.Format("2006"))
|
||||||
|
|
||||||
|
pdf.SetX(398)
|
||||||
|
pdf.SetY(327)
|
||||||
|
pdf.Cell(nil, t.Format("01"))
|
||||||
|
|
||||||
|
pdf.SetX(456)
|
||||||
|
pdf.SetY(327)
|
||||||
|
pdf.Cell(nil, t.Format("02"))
|
||||||
|
|
||||||
|
// 只在目标页插入签名
|
||||||
|
pdf.SetPage(signPage)
|
||||||
|
|
||||||
|
signImgResp, imageErr := http.Get(signImgPath)
|
||||||
|
if imageErr != nil {
|
||||||
|
fmt.Printf("下载签名图片失败: %v\n", imageErr)
|
||||||
|
return errors.New("error downloading signature image")
|
||||||
|
}
|
||||||
|
defer signImgResp.Body.Close()
|
||||||
|
|
||||||
|
signImgB, _err := io.ReadAll(signImgResp.Body)
|
||||||
|
if _err != nil {
|
||||||
|
fmt.Printf("读取签名图片失败: %v\n", _err)
|
||||||
|
return errors.New("error reading signature image")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create a new reader from the bytes
|
||||||
|
signImgReader := bytes.NewReader(signImgB)
|
||||||
|
signImg, _, err := image.DecodeConfig(signImgReader)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("解码签名图片失败: %v\n", err)
|
||||||
|
return errors.New("error decoding signature image")
|
||||||
|
}
|
||||||
|
|
||||||
|
signImgw := signImg.Width
|
||||||
|
signImgh := signImg.Height
|
||||||
|
|
||||||
|
imgH1, _err := gopdf.ImageHolderByBytes(signImgB)
|
||||||
|
if _err != nil {
|
||||||
|
fmt.Printf("处理签名图片失败: %v\n", _err)
|
||||||
|
return errors.New("error processing signature image")
|
||||||
|
}
|
||||||
|
newSignWidth := 80.0
|
||||||
|
newSignHeight := (newSignWidth / float64(signImgw)) * float64(signImgh)
|
||||||
|
|
||||||
|
// buyer sign
|
||||||
|
err = pdf.ImageByHolder(imgH1, 175, 530, &gopdf.Rect{W: newSignWidth, H: newSignHeight})
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("插入签名失败: %v\n", err)
|
||||||
|
return errors.New("error inserting signature")
|
||||||
|
}
|
||||||
|
|
||||||
|
pdf.SetX(365)
|
||||||
|
pdf.SetY(560)
|
||||||
|
pdf.Cell(nil, time.Now().Format("2006-01-02"))
|
||||||
|
|
||||||
|
companyImgResp, companyImageErr := http.Get(companyImgPath)
|
||||||
|
if companyImageErr != nil {
|
||||||
|
fmt.Printf("下载公司章图片: %v\n", companyImgPath)
|
||||||
|
fmt.Printf("下载公司章图片失败: %v\n", companyImageErr)
|
||||||
|
return errors.New("error downloading signature image")
|
||||||
|
}
|
||||||
|
defer companyImgResp.Body.Close()
|
||||||
|
|
||||||
|
companyImgB, _err := io.ReadAll(companyImgResp.Body)
|
||||||
|
if _err != nil {
|
||||||
|
fmt.Printf("读取公司章图片失败: %v\n", _err)
|
||||||
|
return errors.New("error reading signature image")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create a new reader from the bytes
|
||||||
|
companyImgReader := bytes.NewReader(companyImgB)
|
||||||
|
companyImg, _, err := image.DecodeConfig(companyImgReader)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("解码公司章图片失败: %v\n", err)
|
||||||
|
return errors.New("error decoding signature image")
|
||||||
|
}
|
||||||
|
|
||||||
|
companyImgw := companyImg.Width
|
||||||
|
companyImgh := companyImg.Height
|
||||||
|
|
||||||
|
companyImgH1, _err := gopdf.ImageHolderByBytes(companyImgB)
|
||||||
|
if _err != nil {
|
||||||
|
fmt.Printf("处理公司章图片失败: %v\n", _err)
|
||||||
|
return errors.New("error processing signature image")
|
||||||
|
}
|
||||||
|
newCompanyWidth := 80.0
|
||||||
|
newCompanyHeight := (newCompanyWidth / float64(companyImgw)) * float64(companyImgh)
|
||||||
|
|
||||||
|
// seller sign
|
||||||
|
err = pdf.ImageByHolder(companyImgH1, 175, 590, &gopdf.Rect{W: newCompanyWidth, H: newCompanyHeight})
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("插入公司章失败: %v\n", err)
|
||||||
|
return errors.New("error inserting signature")
|
||||||
|
}
|
||||||
|
|
||||||
|
pdf.SetX(365)
|
||||||
|
pdf.SetY(607)
|
||||||
|
pdf.Cell(nil, time.Now().Format("2006-01-02"))
|
||||||
|
|
||||||
|
// 生成新的 PDF
|
||||||
|
if err = pdf.WritePdf(outputPath); err != nil {
|
||||||
|
fmt.Printf("写入 PDF 失败: %v\n", err)
|
||||||
|
return errors.New("error writing final PDF")
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func DownloadFile(filepath string, url string) error {
|
func DownloadFile(filepath string, url string) error {
|
||||||
resp, err := http.Get(url)
|
resp, err := http.Get(url)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user