Merge branch 'dev' of http://gitea-inner.fontree.cn/fiee/fonchain-fiee into dev
This commit is contained in:
commit
df3c90476b
File diff suppressed because it is too large
Load Diff
@ -207,6 +207,7 @@ message UserInfoResponse{
|
|||||||
string subscriberNumber = 16;
|
string subscriberNumber = 16;
|
||||||
string nickName = 17;
|
string nickName = 17;
|
||||||
string telNum = 18;
|
string telNum = 18;
|
||||||
|
string telAreaCode = 19;
|
||||||
}
|
}
|
||||||
message RealNameResponse{
|
message RealNameResponse{
|
||||||
uint64 id = 1;
|
uint64 id = 1;
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
// Code generated by protoc-gen-go-triple. DO NOT EDIT.
|
// Code generated by protoc-gen-go-triple. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// - protoc-gen-go-triple v1.0.8
|
// - protoc-gen-go-triple v1.0.8
|
||||||
// - protoc v4.22.0--rc2
|
// - protoc v4.24.0--rc1
|
||||||
// source: accountFiee.proto
|
// source: api/accountFiee/accountFiee.proto
|
||||||
|
|
||||||
package accountFiee
|
package accountFiee
|
||||||
|
|
||||||
@ -35,7 +35,7 @@ type AccountFieeClient interface {
|
|||||||
OnlineLog(ctx context.Context, in *LoginInfosByUserIdRequest, opts ...grpc_go.CallOption) (*LoginLogsResponse, common.ErrorWithAttachment)
|
OnlineLog(ctx context.Context, in *LoginInfosByUserIdRequest, opts ...grpc_go.CallOption) (*LoginLogsResponse, common.ErrorWithAttachment)
|
||||||
OnlineLogById(ctx context.Context, in *OnlineLogByIdRequest, opts ...grpc_go.CallOption) (*LoginLog, common.ErrorWithAttachment)
|
OnlineLogById(ctx context.Context, in *OnlineLogByIdRequest, opts ...grpc_go.CallOption) (*LoginLog, common.ErrorWithAttachment)
|
||||||
CheckPwd(ctx context.Context, in *CheckPwdRequest, opts ...grpc_go.CallOption) (*UpdateResponse, common.ErrorWithAttachment)
|
CheckPwd(ctx context.Context, in *CheckPwdRequest, opts ...grpc_go.CallOption) (*UpdateResponse, common.ErrorWithAttachment)
|
||||||
// rpc RegisterOrExist (RegistRequest) returns (RequestStatus) {}
|
// rpc RegisterOrExist (RegistRequest) returns (RequestStatus) {}
|
||||||
SendMsg(ctx context.Context, in *SendMsgRequest, opts ...grpc_go.CallOption) (*SendMsgStatusResponse, common.ErrorWithAttachment)
|
SendMsg(ctx context.Context, in *SendMsgRequest, opts ...grpc_go.CallOption) (*SendMsgStatusResponse, common.ErrorWithAttachment)
|
||||||
SendCustomMsg(ctx context.Context, in *SendCustomMsgRequest, opts ...grpc_go.CallOption) (*SendMsgStatusResponse, common.ErrorWithAttachment)
|
SendCustomMsg(ctx context.Context, in *SendCustomMsgRequest, opts ...grpc_go.CallOption) (*SendMsgStatusResponse, common.ErrorWithAttachment)
|
||||||
SendExCustomMsg(ctx context.Context, in *SendCustomMsgRequest, opts ...grpc_go.CallOption) (*SendMsgStatusResponse, common.ErrorWithAttachment)
|
SendExCustomMsg(ctx context.Context, in *SendCustomMsgRequest, opts ...grpc_go.CallOption) (*SendMsgStatusResponse, common.ErrorWithAttachment)
|
||||||
@ -70,7 +70,7 @@ type AccountFieeClient interface {
|
|||||||
VerifySliderStatus(ctx context.Context, in *VerifySliderStatusRequest, opts ...grpc_go.CallOption) (*VerifySliderStatusResponse, common.ErrorWithAttachment)
|
VerifySliderStatus(ctx context.Context, in *VerifySliderStatusRequest, opts ...grpc_go.CallOption) (*VerifySliderStatusResponse, common.ErrorWithAttachment)
|
||||||
// submit info
|
// submit info
|
||||||
SaveSubmitInfo(ctx context.Context, in *SubmitInfoRequest, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment)
|
SaveSubmitInfo(ctx context.Context, in *SubmitInfoRequest, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment)
|
||||||
// -----------------------------客服聊天系统--------------------------------
|
//-----------------------------客服聊天系统--------------------------------
|
||||||
CreateChatUser(ctx context.Context, in *ChatUserData, opts ...grpc_go.CallOption) (*CreateChatUserResp, common.ErrorWithAttachment)
|
CreateChatUser(ctx context.Context, in *ChatUserData, opts ...grpc_go.CallOption) (*CreateChatUserResp, common.ErrorWithAttachment)
|
||||||
UpdateChatUser(ctx context.Context, in *ChatUserData, opts ...grpc_go.CallOption) (*CommonMsg, common.ErrorWithAttachment)
|
UpdateChatUser(ctx context.Context, in *ChatUserData, opts ...grpc_go.CallOption) (*CommonMsg, common.ErrorWithAttachment)
|
||||||
SaveChatUser(ctx context.Context, in *ChatUserData, opts ...grpc_go.CallOption) (*CommonMsg, common.ErrorWithAttachment)
|
SaveChatUser(ctx context.Context, in *ChatUserData, opts ...grpc_go.CallOption) (*CommonMsg, common.ErrorWithAttachment)
|
||||||
@ -591,7 +591,7 @@ type AccountFieeServer interface {
|
|||||||
OnlineLog(context.Context, *LoginInfosByUserIdRequest) (*LoginLogsResponse, error)
|
OnlineLog(context.Context, *LoginInfosByUserIdRequest) (*LoginLogsResponse, error)
|
||||||
OnlineLogById(context.Context, *OnlineLogByIdRequest) (*LoginLog, error)
|
OnlineLogById(context.Context, *OnlineLogByIdRequest) (*LoginLog, error)
|
||||||
CheckPwd(context.Context, *CheckPwdRequest) (*UpdateResponse, error)
|
CheckPwd(context.Context, *CheckPwdRequest) (*UpdateResponse, error)
|
||||||
// rpc RegisterOrExist (RegistRequest) returns (RequestStatus) {}
|
// rpc RegisterOrExist (RegistRequest) returns (RequestStatus) {}
|
||||||
SendMsg(context.Context, *SendMsgRequest) (*SendMsgStatusResponse, error)
|
SendMsg(context.Context, *SendMsgRequest) (*SendMsgStatusResponse, error)
|
||||||
SendCustomMsg(context.Context, *SendCustomMsgRequest) (*SendMsgStatusResponse, error)
|
SendCustomMsg(context.Context, *SendCustomMsgRequest) (*SendMsgStatusResponse, error)
|
||||||
SendExCustomMsg(context.Context, *SendCustomMsgRequest) (*SendMsgStatusResponse, error)
|
SendExCustomMsg(context.Context, *SendCustomMsgRequest) (*SendMsgStatusResponse, error)
|
||||||
@ -626,7 +626,7 @@ type AccountFieeServer interface {
|
|||||||
VerifySliderStatus(context.Context, *VerifySliderStatusRequest) (*VerifySliderStatusResponse, error)
|
VerifySliderStatus(context.Context, *VerifySliderStatusRequest) (*VerifySliderStatusResponse, error)
|
||||||
// submit info
|
// submit info
|
||||||
SaveSubmitInfo(context.Context, *SubmitInfoRequest) (*CommonResponse, error)
|
SaveSubmitInfo(context.Context, *SubmitInfoRequest) (*CommonResponse, error)
|
||||||
// -----------------------------客服聊天系统--------------------------------
|
//-----------------------------客服聊天系统--------------------------------
|
||||||
CreateChatUser(context.Context, *ChatUserData) (*CreateChatUserResp, error)
|
CreateChatUser(context.Context, *ChatUserData) (*CreateChatUserResp, error)
|
||||||
UpdateChatUser(context.Context, *ChatUserData) (*CommonMsg, error)
|
UpdateChatUser(context.Context, *ChatUserData) (*CommonMsg, error)
|
||||||
SaveChatUser(context.Context, *ChatUserData) (*CommonMsg, error)
|
SaveChatUser(context.Context, *ChatUserData) (*CommonMsg, error)
|
||||||
@ -3074,5 +3074,5 @@ var AccountFiee_ServiceDesc = grpc_go.ServiceDesc{
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
Streams: []grpc_go.StreamDesc{},
|
Streams: []grpc_go.StreamDesc{},
|
||||||
Metadata: "accountFiee.proto",
|
Metadata: "api/accountFiee/accountFiee.proto",
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -7,8 +7,8 @@ import (
|
|||||||
fmt "fmt"
|
fmt "fmt"
|
||||||
math "math"
|
math "math"
|
||||||
proto "github.com/golang/protobuf/proto"
|
proto "github.com/golang/protobuf/proto"
|
||||||
_ "google.golang.org/protobuf/types/descriptorpb"
|
|
||||||
_ "github.com/mwitkow/go-proto-validators"
|
_ "github.com/mwitkow/go-proto-validators"
|
||||||
|
_ "google.golang.org/protobuf/types/descriptorpb"
|
||||||
github_com_mwitkow_go_proto_validators "github.com/mwitkow/go-proto-validators"
|
github_com_mwitkow_go_proto_validators "github.com/mwitkow/go-proto-validators"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -36,6 +36,7 @@ type BundleClient interface {
|
|||||||
BundleListV2(ctx context.Context, in *BundleListRequest, opts ...grpc_go.CallOption) (*BundleListResponse, common.ErrorWithAttachment)
|
BundleListV2(ctx context.Context, in *BundleListRequest, opts ...grpc_go.CallOption) (*BundleListResponse, common.ErrorWithAttachment)
|
||||||
BundleDetailV2(ctx context.Context, in *BundleDetailRequest, opts ...grpc_go.CallOption) (*BundleDetailResponseV2, common.ErrorWithAttachment)
|
BundleDetailV2(ctx context.Context, in *BundleDetailRequest, opts ...grpc_go.CallOption) (*BundleDetailResponseV2, common.ErrorWithAttachment)
|
||||||
BundleListH5V2(ctx context.Context, in *BundleListRequest, opts ...grpc_go.CallOption) (*BundleListResponse, common.ErrorWithAttachment)
|
BundleListH5V2(ctx context.Context, in *BundleListRequest, opts ...grpc_go.CallOption) (*BundleListResponse, common.ErrorWithAttachment)
|
||||||
|
BundleLangDetailV2(ctx context.Context, in *BundleDetailRequest, opts ...grpc_go.CallOption) (*BundleProfileLang, common.ErrorWithAttachment)
|
||||||
BundleList(ctx context.Context, in *BundleListRequest, opts ...grpc_go.CallOption) (*BundleListResponse, common.ErrorWithAttachment)
|
BundleList(ctx context.Context, in *BundleListRequest, opts ...grpc_go.CallOption) (*BundleListResponse, common.ErrorWithAttachment)
|
||||||
BundleDetail(ctx context.Context, in *BundleDetailRequest, opts ...grpc_go.CallOption) (*BundleDetailResponse, common.ErrorWithAttachment)
|
BundleDetail(ctx context.Context, in *BundleDetailRequest, opts ...grpc_go.CallOption) (*BundleDetailResponse, common.ErrorWithAttachment)
|
||||||
CreateOrderRecord(ctx context.Context, in *OrderCreateRecord, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment)
|
CreateOrderRecord(ctx context.Context, in *OrderCreateRecord, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment)
|
||||||
@ -94,6 +95,7 @@ type BundleClientImpl struct {
|
|||||||
BundleListV2 func(ctx context.Context, in *BundleListRequest) (*BundleListResponse, error)
|
BundleListV2 func(ctx context.Context, in *BundleListRequest) (*BundleListResponse, error)
|
||||||
BundleDetailV2 func(ctx context.Context, in *BundleDetailRequest) (*BundleDetailResponseV2, error)
|
BundleDetailV2 func(ctx context.Context, in *BundleDetailRequest) (*BundleDetailResponseV2, error)
|
||||||
BundleListH5V2 func(ctx context.Context, in *BundleListRequest) (*BundleListResponse, error)
|
BundleListH5V2 func(ctx context.Context, in *BundleListRequest) (*BundleListResponse, error)
|
||||||
|
BundleLangDetailV2 func(ctx context.Context, in *BundleDetailRequest) (*BundleProfileLang, error)
|
||||||
BundleList func(ctx context.Context, in *BundleListRequest) (*BundleListResponse, error)
|
BundleList func(ctx context.Context, in *BundleListRequest) (*BundleListResponse, error)
|
||||||
BundleDetail func(ctx context.Context, in *BundleDetailRequest) (*BundleDetailResponse, error)
|
BundleDetail func(ctx context.Context, in *BundleDetailRequest) (*BundleDetailResponse, error)
|
||||||
CreateOrderRecord func(ctx context.Context, in *OrderCreateRecord) (*CommonResponse, error)
|
CreateOrderRecord func(ctx context.Context, in *OrderCreateRecord) (*CommonResponse, error)
|
||||||
@ -194,6 +196,12 @@ func (c *bundleClient) BundleListH5V2(ctx context.Context, in *BundleListRequest
|
|||||||
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/BundleListH5V2", in, out)
|
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/BundleListH5V2", in, out)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *bundleClient) BundleLangDetailV2(ctx context.Context, in *BundleDetailRequest, opts ...grpc_go.CallOption) (*BundleProfileLang, common.ErrorWithAttachment) {
|
||||||
|
out := new(BundleProfileLang)
|
||||||
|
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
|
||||||
|
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/BundleLangDetailV2", in, out)
|
||||||
|
}
|
||||||
|
|
||||||
func (c *bundleClient) BundleList(ctx context.Context, in *BundleListRequest, opts ...grpc_go.CallOption) (*BundleListResponse, common.ErrorWithAttachment) {
|
func (c *bundleClient) BundleList(ctx context.Context, in *BundleListRequest, opts ...grpc_go.CallOption) (*BundleListResponse, common.ErrorWithAttachment) {
|
||||||
out := new(BundleListResponse)
|
out := new(BundleListResponse)
|
||||||
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
|
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
|
||||||
@ -434,6 +442,7 @@ type BundleServer interface {
|
|||||||
BundleListV2(context.Context, *BundleListRequest) (*BundleListResponse, error)
|
BundleListV2(context.Context, *BundleListRequest) (*BundleListResponse, error)
|
||||||
BundleDetailV2(context.Context, *BundleDetailRequest) (*BundleDetailResponseV2, error)
|
BundleDetailV2(context.Context, *BundleDetailRequest) (*BundleDetailResponseV2, error)
|
||||||
BundleListH5V2(context.Context, *BundleListRequest) (*BundleListResponse, error)
|
BundleListH5V2(context.Context, *BundleListRequest) (*BundleListResponse, error)
|
||||||
|
BundleLangDetailV2(context.Context, *BundleDetailRequest) (*BundleProfileLang, error)
|
||||||
BundleList(context.Context, *BundleListRequest) (*BundleListResponse, error)
|
BundleList(context.Context, *BundleListRequest) (*BundleListResponse, error)
|
||||||
BundleDetail(context.Context, *BundleDetailRequest) (*BundleDetailResponse, error)
|
BundleDetail(context.Context, *BundleDetailRequest) (*BundleDetailResponse, error)
|
||||||
CreateOrderRecord(context.Context, *OrderCreateRecord) (*CommonResponse, error)
|
CreateOrderRecord(context.Context, *OrderCreateRecord) (*CommonResponse, error)
|
||||||
@ -509,6 +518,9 @@ func (UnimplementedBundleServer) BundleDetailV2(context.Context, *BundleDetailRe
|
|||||||
func (UnimplementedBundleServer) BundleListH5V2(context.Context, *BundleListRequest) (*BundleListResponse, error) {
|
func (UnimplementedBundleServer) BundleListH5V2(context.Context, *BundleListRequest) (*BundleListResponse, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method BundleListH5V2 not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method BundleListH5V2 not implemented")
|
||||||
}
|
}
|
||||||
|
func (UnimplementedBundleServer) BundleLangDetailV2(context.Context, *BundleDetailRequest) (*BundleProfileLang, error) {
|
||||||
|
return nil, status.Errorf(codes.Unimplemented, "method BundleLangDetailV2 not implemented")
|
||||||
|
}
|
||||||
func (UnimplementedBundleServer) BundleList(context.Context, *BundleListRequest) (*BundleListResponse, error) {
|
func (UnimplementedBundleServer) BundleList(context.Context, *BundleListRequest) (*BundleListResponse, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method BundleList not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method BundleList not implemented")
|
||||||
}
|
}
|
||||||
@ -883,6 +895,35 @@ func _Bundle_BundleListH5V2_Handler(srv interface{}, ctx context.Context, dec fu
|
|||||||
return interceptor(ctx, in, info, handler)
|
return interceptor(ctx, in, info, handler)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func _Bundle_BundleLangDetailV2_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
|
||||||
|
in := new(BundleDetailRequest)
|
||||||
|
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("BundleLangDetailV2", 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)
|
||||||
|
}
|
||||||
|
|
||||||
func _Bundle_BundleList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
|
func _Bundle_BundleList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
|
||||||
in := new(BundleListRequest)
|
in := new(BundleListRequest)
|
||||||
if err := dec(in); err != nil {
|
if err := dec(in); err != nil {
|
||||||
@ -2024,6 +2065,10 @@ var Bundle_ServiceDesc = grpc_go.ServiceDesc{
|
|||||||
MethodName: "BundleListH5V2",
|
MethodName: "BundleListH5V2",
|
||||||
Handler: _Bundle_BundleListH5V2_Handler,
|
Handler: _Bundle_BundleListH5V2_Handler,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
MethodName: "BundleLangDetailV2",
|
||||||
|
Handler: _Bundle_BundleLangDetailV2_Handler,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
MethodName: "BundleList",
|
MethodName: "BundleList",
|
||||||
Handler: _Bundle_BundleList_Handler,
|
Handler: _Bundle_BundleList_Handler,
|
||||||
|
1455
api/cast/cast.pb.go
1455
api/cast/cast.pb.go
File diff suppressed because it is too large
Load Diff
@ -443,6 +443,8 @@ func (m *UpdateMediaAccountReq) validate(all bool) error {
|
|||||||
|
|
||||||
// no validation rules for ManagerUserName
|
// no validation rules for ManagerUserName
|
||||||
|
|
||||||
|
// no validation rules for ArtistPhoneAreaCode
|
||||||
|
|
||||||
if len(errors) > 0 {
|
if len(errors) > 0 {
|
||||||
return UpdateMediaAccountReqMultiError(errors)
|
return UpdateMediaAccountReqMultiError(errors)
|
||||||
}
|
}
|
||||||
@ -729,6 +731,110 @@ var _ interface {
|
|||||||
ErrorName() string
|
ErrorName() string
|
||||||
} = UnbindManagerReqValidationError{}
|
} = UnbindManagerReqValidationError{}
|
||||||
|
|
||||||
|
// Validate checks the field values on UnbindManagerResp with the rules defined
|
||||||
|
// in the proto definition for this message. If any rules are violated, the
|
||||||
|
// first error encountered is returned, or nil if there are no violations.
|
||||||
|
func (m *UnbindManagerResp) Validate() error {
|
||||||
|
return m.validate(false)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidateAll checks the field values on UnbindManagerResp with the rules
|
||||||
|
// defined in the proto definition for this message. If any rules are
|
||||||
|
// violated, the result is a list of violation errors wrapped in
|
||||||
|
// UnbindManagerRespMultiError, or nil if none found.
|
||||||
|
func (m *UnbindManagerResp) ValidateAll() error {
|
||||||
|
return m.validate(true)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *UnbindManagerResp) validate(all bool) error {
|
||||||
|
if m == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var errors []error
|
||||||
|
|
||||||
|
// no validation rules for OldBindArtistUuid
|
||||||
|
|
||||||
|
if len(errors) > 0 {
|
||||||
|
return UnbindManagerRespMultiError(errors)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnbindManagerRespMultiError is an error wrapping multiple validation errors
|
||||||
|
// returned by UnbindManagerResp.ValidateAll() if the designated constraints
|
||||||
|
// aren't met.
|
||||||
|
type UnbindManagerRespMultiError []error
|
||||||
|
|
||||||
|
// Error returns a concatenation of all the error messages it wraps.
|
||||||
|
func (m UnbindManagerRespMultiError) Error() string {
|
||||||
|
var msgs []string
|
||||||
|
for _, err := range m {
|
||||||
|
msgs = append(msgs, err.Error())
|
||||||
|
}
|
||||||
|
return strings.Join(msgs, "; ")
|
||||||
|
}
|
||||||
|
|
||||||
|
// AllErrors returns a list of validation violation errors.
|
||||||
|
func (m UnbindManagerRespMultiError) AllErrors() []error { return m }
|
||||||
|
|
||||||
|
// UnbindManagerRespValidationError is the validation error returned by
|
||||||
|
// UnbindManagerResp.Validate if the designated constraints aren't met.
|
||||||
|
type UnbindManagerRespValidationError struct {
|
||||||
|
field string
|
||||||
|
reason string
|
||||||
|
cause error
|
||||||
|
key bool
|
||||||
|
}
|
||||||
|
|
||||||
|
// Field function returns field value.
|
||||||
|
func (e UnbindManagerRespValidationError) Field() string { return e.field }
|
||||||
|
|
||||||
|
// Reason function returns reason value.
|
||||||
|
func (e UnbindManagerRespValidationError) Reason() string { return e.reason }
|
||||||
|
|
||||||
|
// Cause function returns cause value.
|
||||||
|
func (e UnbindManagerRespValidationError) Cause() error { return e.cause }
|
||||||
|
|
||||||
|
// Key function returns key value.
|
||||||
|
func (e UnbindManagerRespValidationError) Key() bool { return e.key }
|
||||||
|
|
||||||
|
// ErrorName returns error name.
|
||||||
|
func (e UnbindManagerRespValidationError) ErrorName() string {
|
||||||
|
return "UnbindManagerRespValidationError"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Error satisfies the builtin error interface
|
||||||
|
func (e UnbindManagerRespValidationError) Error() string {
|
||||||
|
cause := ""
|
||||||
|
if e.cause != nil {
|
||||||
|
cause = fmt.Sprintf(" | caused by: %v", e.cause)
|
||||||
|
}
|
||||||
|
|
||||||
|
key := ""
|
||||||
|
if e.key {
|
||||||
|
key = "key for "
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Sprintf(
|
||||||
|
"invalid %sUnbindManagerResp.%s: %s%s",
|
||||||
|
key,
|
||||||
|
e.field,
|
||||||
|
e.reason,
|
||||||
|
cause)
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ error = UnbindManagerRespValidationError{}
|
||||||
|
|
||||||
|
var _ interface {
|
||||||
|
Field() string
|
||||||
|
Reason() string
|
||||||
|
Key() bool
|
||||||
|
Cause() error
|
||||||
|
ErrorName() string
|
||||||
|
} = UnbindManagerRespValidationError{}
|
||||||
|
|
||||||
// Validate checks the field values on BindManagerReq with the rules defined in
|
// Validate checks the field values on BindManagerReq with the rules defined in
|
||||||
// the proto definition for this message. If any rules are violated, the first
|
// the proto definition for this message. If any rules are violated, the first
|
||||||
// error encountered is returned, or nil if there are no violations.
|
// error encountered is returned, or nil if there are no violations.
|
||||||
@ -958,6 +1064,8 @@ func (m *UpdateWorkImageReq) validate(all bool) error {
|
|||||||
|
|
||||||
// no validation rules for ArtistName
|
// no validation rules for ArtistName
|
||||||
|
|
||||||
|
// no validation rules for ArtistPhoneAreaCode
|
||||||
|
|
||||||
if len(errors) > 0 {
|
if len(errors) > 0 {
|
||||||
return UpdateWorkImageReqMultiError(errors)
|
return UpdateWorkImageReqMultiError(errors)
|
||||||
}
|
}
|
||||||
@ -1381,6 +1489,8 @@ func (m *UpdateWorkVideoReq) validate(all bool) error {
|
|||||||
|
|
||||||
// no validation rules for ArtistName
|
// no validation rules for ArtistName
|
||||||
|
|
||||||
|
// no validation rules for ArtistPhoneAreaCode
|
||||||
|
|
||||||
if len(errors) > 0 {
|
if len(errors) > 0 {
|
||||||
return UpdateWorkVideoReqMultiError(errors)
|
return UpdateWorkVideoReqMultiError(errors)
|
||||||
}
|
}
|
||||||
@ -2355,6 +2465,8 @@ func (m *UpdateStatusReq) validate(all bool) error {
|
|||||||
|
|
||||||
// no validation rules for ConfirmStatus
|
// no validation rules for ConfirmStatus
|
||||||
|
|
||||||
|
// no validation rules for ApprovalReply
|
||||||
|
|
||||||
if len(errors) > 0 {
|
if len(errors) > 0 {
|
||||||
return UpdateStatusReqMultiError(errors)
|
return UpdateStatusReqMultiError(errors)
|
||||||
}
|
}
|
||||||
@ -3038,6 +3150,8 @@ func (m *RePublishResp) validate(all bool) error {
|
|||||||
|
|
||||||
// no validation rules for ArtistUuid
|
// no validation rules for ArtistUuid
|
||||||
|
|
||||||
|
// no validation rules for WorkCategory
|
||||||
|
|
||||||
if len(errors) > 0 {
|
if len(errors) > 0 {
|
||||||
return RePublishRespMultiError(errors)
|
return RePublishRespMultiError(errors)
|
||||||
}
|
}
|
||||||
@ -3116,6 +3230,317 @@ var _ interface {
|
|||||||
ErrorName() string
|
ErrorName() string
|
||||||
} = RePublishRespValidationError{}
|
} = RePublishRespValidationError{}
|
||||||
|
|
||||||
|
// Validate checks the field values on DelWorkReq with the rules defined in the
|
||||||
|
// proto definition for this message. If any rules are violated, the first
|
||||||
|
// error encountered is returned, or nil if there are no violations.
|
||||||
|
func (m *DelWorkReq) Validate() error {
|
||||||
|
return m.validate(false)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidateAll checks the field values on DelWorkReq with the rules defined in
|
||||||
|
// the proto definition for this message. If any rules are violated, the
|
||||||
|
// result is a list of violation errors wrapped in DelWorkReqMultiError, or
|
||||||
|
// nil if none found.
|
||||||
|
func (m *DelWorkReq) ValidateAll() error {
|
||||||
|
return m.validate(true)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *DelWorkReq) validate(all bool) error {
|
||||||
|
if m == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var errors []error
|
||||||
|
|
||||||
|
// no validation rules for WorkUuid
|
||||||
|
|
||||||
|
if len(errors) > 0 {
|
||||||
|
return DelWorkReqMultiError(errors)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// DelWorkReqMultiError is an error wrapping multiple validation errors
|
||||||
|
// returned by DelWorkReq.ValidateAll() if the designated constraints aren't met.
|
||||||
|
type DelWorkReqMultiError []error
|
||||||
|
|
||||||
|
// Error returns a concatenation of all the error messages it wraps.
|
||||||
|
func (m DelWorkReqMultiError) Error() string {
|
||||||
|
var msgs []string
|
||||||
|
for _, err := range m {
|
||||||
|
msgs = append(msgs, err.Error())
|
||||||
|
}
|
||||||
|
return strings.Join(msgs, "; ")
|
||||||
|
}
|
||||||
|
|
||||||
|
// AllErrors returns a list of validation violation errors.
|
||||||
|
func (m DelWorkReqMultiError) AllErrors() []error { return m }
|
||||||
|
|
||||||
|
// DelWorkReqValidationError is the validation error returned by
|
||||||
|
// DelWorkReq.Validate if the designated constraints aren't met.
|
||||||
|
type DelWorkReqValidationError struct {
|
||||||
|
field string
|
||||||
|
reason string
|
||||||
|
cause error
|
||||||
|
key bool
|
||||||
|
}
|
||||||
|
|
||||||
|
// Field function returns field value.
|
||||||
|
func (e DelWorkReqValidationError) Field() string { return e.field }
|
||||||
|
|
||||||
|
// Reason function returns reason value.
|
||||||
|
func (e DelWorkReqValidationError) Reason() string { return e.reason }
|
||||||
|
|
||||||
|
// Cause function returns cause value.
|
||||||
|
func (e DelWorkReqValidationError) Cause() error { return e.cause }
|
||||||
|
|
||||||
|
// Key function returns key value.
|
||||||
|
func (e DelWorkReqValidationError) Key() bool { return e.key }
|
||||||
|
|
||||||
|
// ErrorName returns error name.
|
||||||
|
func (e DelWorkReqValidationError) ErrorName() string { return "DelWorkReqValidationError" }
|
||||||
|
|
||||||
|
// Error satisfies the builtin error interface
|
||||||
|
func (e DelWorkReqValidationError) Error() string {
|
||||||
|
cause := ""
|
||||||
|
if e.cause != nil {
|
||||||
|
cause = fmt.Sprintf(" | caused by: %v", e.cause)
|
||||||
|
}
|
||||||
|
|
||||||
|
key := ""
|
||||||
|
if e.key {
|
||||||
|
key = "key for "
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Sprintf(
|
||||||
|
"invalid %sDelWorkReq.%s: %s%s",
|
||||||
|
key,
|
||||||
|
e.field,
|
||||||
|
e.reason,
|
||||||
|
cause)
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ error = DelWorkReqValidationError{}
|
||||||
|
|
||||||
|
var _ interface {
|
||||||
|
Field() string
|
||||||
|
Reason() string
|
||||||
|
Key() bool
|
||||||
|
Cause() error
|
||||||
|
ErrorName() string
|
||||||
|
} = DelWorkReqValidationError{}
|
||||||
|
|
||||||
|
// Validate checks the field values on WorkInfoReq with the rules defined in
|
||||||
|
// the proto definition for this message. If any rules are violated, the first
|
||||||
|
// error encountered is returned, or nil if there are no violations.
|
||||||
|
func (m *WorkInfoReq) Validate() error {
|
||||||
|
return m.validate(false)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidateAll checks the field values on WorkInfoReq with the rules defined in
|
||||||
|
// the proto definition for this message. If any rules are violated, the
|
||||||
|
// result is a list of violation errors wrapped in WorkInfoReqMultiError, or
|
||||||
|
// nil if none found.
|
||||||
|
func (m *WorkInfoReq) ValidateAll() error {
|
||||||
|
return m.validate(true)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *WorkInfoReq) validate(all bool) error {
|
||||||
|
if m == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var errors []error
|
||||||
|
|
||||||
|
// no validation rules for WorkUuid
|
||||||
|
|
||||||
|
if len(errors) > 0 {
|
||||||
|
return WorkInfoReqMultiError(errors)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// WorkInfoReqMultiError is an error wrapping multiple validation errors
|
||||||
|
// returned by WorkInfoReq.ValidateAll() if the designated constraints aren't met.
|
||||||
|
type WorkInfoReqMultiError []error
|
||||||
|
|
||||||
|
// Error returns a concatenation of all the error messages it wraps.
|
||||||
|
func (m WorkInfoReqMultiError) Error() string {
|
||||||
|
var msgs []string
|
||||||
|
for _, err := range m {
|
||||||
|
msgs = append(msgs, err.Error())
|
||||||
|
}
|
||||||
|
return strings.Join(msgs, "; ")
|
||||||
|
}
|
||||||
|
|
||||||
|
// AllErrors returns a list of validation violation errors.
|
||||||
|
func (m WorkInfoReqMultiError) AllErrors() []error { return m }
|
||||||
|
|
||||||
|
// WorkInfoReqValidationError is the validation error returned by
|
||||||
|
// WorkInfoReq.Validate if the designated constraints aren't met.
|
||||||
|
type WorkInfoReqValidationError struct {
|
||||||
|
field string
|
||||||
|
reason string
|
||||||
|
cause error
|
||||||
|
key bool
|
||||||
|
}
|
||||||
|
|
||||||
|
// Field function returns field value.
|
||||||
|
func (e WorkInfoReqValidationError) Field() string { return e.field }
|
||||||
|
|
||||||
|
// Reason function returns reason value.
|
||||||
|
func (e WorkInfoReqValidationError) Reason() string { return e.reason }
|
||||||
|
|
||||||
|
// Cause function returns cause value.
|
||||||
|
func (e WorkInfoReqValidationError) Cause() error { return e.cause }
|
||||||
|
|
||||||
|
// Key function returns key value.
|
||||||
|
func (e WorkInfoReqValidationError) Key() bool { return e.key }
|
||||||
|
|
||||||
|
// ErrorName returns error name.
|
||||||
|
func (e WorkInfoReqValidationError) ErrorName() string { return "WorkInfoReqValidationError" }
|
||||||
|
|
||||||
|
// Error satisfies the builtin error interface
|
||||||
|
func (e WorkInfoReqValidationError) Error() string {
|
||||||
|
cause := ""
|
||||||
|
if e.cause != nil {
|
||||||
|
cause = fmt.Sprintf(" | caused by: %v", e.cause)
|
||||||
|
}
|
||||||
|
|
||||||
|
key := ""
|
||||||
|
if e.key {
|
||||||
|
key = "key for "
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Sprintf(
|
||||||
|
"invalid %sWorkInfoReq.%s: %s%s",
|
||||||
|
key,
|
||||||
|
e.field,
|
||||||
|
e.reason,
|
||||||
|
cause)
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ error = WorkInfoReqValidationError{}
|
||||||
|
|
||||||
|
var _ interface {
|
||||||
|
Field() string
|
||||||
|
Reason() string
|
||||||
|
Key() bool
|
||||||
|
Cause() error
|
||||||
|
ErrorName() string
|
||||||
|
} = WorkInfoReqValidationError{}
|
||||||
|
|
||||||
|
// Validate checks the field values on WorkInfoResp with the rules defined in
|
||||||
|
// the proto definition for this message. If any rules are violated, the first
|
||||||
|
// error encountered is returned, or nil if there are no violations.
|
||||||
|
func (m *WorkInfoResp) Validate() error {
|
||||||
|
return m.validate(false)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidateAll checks the field values on WorkInfoResp with the rules defined
|
||||||
|
// in the proto definition for this message. If any rules are violated, the
|
||||||
|
// result is a list of violation errors wrapped in WorkInfoRespMultiError, or
|
||||||
|
// nil if none found.
|
||||||
|
func (m *WorkInfoResp) ValidateAll() error {
|
||||||
|
return m.validate(true)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *WorkInfoResp) validate(all bool) error {
|
||||||
|
if m == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var errors []error
|
||||||
|
|
||||||
|
// no validation rules for WorkStatus
|
||||||
|
|
||||||
|
// no validation rules for ArtistUuid
|
||||||
|
|
||||||
|
// no validation rules for ArtistName
|
||||||
|
|
||||||
|
// no validation rules for ArtistPhone
|
||||||
|
|
||||||
|
// no validation rules for ArtistPhoneAreaCode
|
||||||
|
|
||||||
|
if len(errors) > 0 {
|
||||||
|
return WorkInfoRespMultiError(errors)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// WorkInfoRespMultiError is an error wrapping multiple validation errors
|
||||||
|
// returned by WorkInfoResp.ValidateAll() if the designated constraints aren't met.
|
||||||
|
type WorkInfoRespMultiError []error
|
||||||
|
|
||||||
|
// Error returns a concatenation of all the error messages it wraps.
|
||||||
|
func (m WorkInfoRespMultiError) Error() string {
|
||||||
|
var msgs []string
|
||||||
|
for _, err := range m {
|
||||||
|
msgs = append(msgs, err.Error())
|
||||||
|
}
|
||||||
|
return strings.Join(msgs, "; ")
|
||||||
|
}
|
||||||
|
|
||||||
|
// AllErrors returns a list of validation violation errors.
|
||||||
|
func (m WorkInfoRespMultiError) AllErrors() []error { return m }
|
||||||
|
|
||||||
|
// WorkInfoRespValidationError is the validation error returned by
|
||||||
|
// WorkInfoResp.Validate if the designated constraints aren't met.
|
||||||
|
type WorkInfoRespValidationError struct {
|
||||||
|
field string
|
||||||
|
reason string
|
||||||
|
cause error
|
||||||
|
key bool
|
||||||
|
}
|
||||||
|
|
||||||
|
// Field function returns field value.
|
||||||
|
func (e WorkInfoRespValidationError) Field() string { return e.field }
|
||||||
|
|
||||||
|
// Reason function returns reason value.
|
||||||
|
func (e WorkInfoRespValidationError) Reason() string { return e.reason }
|
||||||
|
|
||||||
|
// Cause function returns cause value.
|
||||||
|
func (e WorkInfoRespValidationError) Cause() error { return e.cause }
|
||||||
|
|
||||||
|
// Key function returns key value.
|
||||||
|
func (e WorkInfoRespValidationError) Key() bool { return e.key }
|
||||||
|
|
||||||
|
// ErrorName returns error name.
|
||||||
|
func (e WorkInfoRespValidationError) ErrorName() string { return "WorkInfoRespValidationError" }
|
||||||
|
|
||||||
|
// Error satisfies the builtin error interface
|
||||||
|
func (e WorkInfoRespValidationError) Error() string {
|
||||||
|
cause := ""
|
||||||
|
if e.cause != nil {
|
||||||
|
cause = fmt.Sprintf(" | caused by: %v", e.cause)
|
||||||
|
}
|
||||||
|
|
||||||
|
key := ""
|
||||||
|
if e.key {
|
||||||
|
key = "key for "
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Sprintf(
|
||||||
|
"invalid %sWorkInfoResp.%s: %s%s",
|
||||||
|
key,
|
||||||
|
e.field,
|
||||||
|
e.reason,
|
||||||
|
cause)
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ error = WorkInfoRespValidationError{}
|
||||||
|
|
||||||
|
var _ interface {
|
||||||
|
Field() string
|
||||||
|
Reason() string
|
||||||
|
Key() bool
|
||||||
|
Cause() error
|
||||||
|
ErrorName() string
|
||||||
|
} = WorkInfoRespValidationError{}
|
||||||
|
|
||||||
// Validate checks the field values on OAuthYoutubeUrlReq with the rules
|
// Validate checks the field values on OAuthYoutubeUrlReq with the rules
|
||||||
// defined in the proto definition for this message. If any rules are
|
// defined in the proto definition for this message. If any rules are
|
||||||
// violated, the first error encountered is returned, or nil if there are no violations.
|
// violated, the first error encountered is returned, or nil if there are no violations.
|
||||||
@ -3576,6 +4001,8 @@ func (m *WorkListResp_Info) validate(all bool) error {
|
|||||||
|
|
||||||
// no validation rules for StatusUpdateTime
|
// no validation rules for StatusUpdateTime
|
||||||
|
|
||||||
|
// no validation rules for ApprovalID
|
||||||
|
|
||||||
if len(errors) > 0 {
|
if len(errors) > 0 {
|
||||||
return WorkListResp_InfoMultiError(errors)
|
return WorkListResp_InfoMultiError(errors)
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,7 @@ const _ = grpc_go.SupportPackageIsVersion7
|
|||||||
type CastClient interface {
|
type CastClient interface {
|
||||||
MediaUserList(ctx context.Context, in *MediaUserListReq, opts ...grpc_go.CallOption) (*MediaUserListResp, common.ErrorWithAttachment)
|
MediaUserList(ctx context.Context, in *MediaUserListReq, opts ...grpc_go.CallOption) (*MediaUserListResp, common.ErrorWithAttachment)
|
||||||
UpdateMediaAccount(ctx context.Context, in *UpdateMediaAccountReq, opts ...grpc_go.CallOption) (*UpdateMediaAccountResp, common.ErrorWithAttachment)
|
UpdateMediaAccount(ctx context.Context, in *UpdateMediaAccountReq, opts ...grpc_go.CallOption) (*UpdateMediaAccountResp, common.ErrorWithAttachment)
|
||||||
UnbindManager(ctx context.Context, in *UnbindManagerReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment)
|
UnbindManager(ctx context.Context, in *UnbindManagerReq, opts ...grpc_go.CallOption) (*UnbindManagerResp, common.ErrorWithAttachment)
|
||||||
BindManager(ctx context.Context, in *BindManagerReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment)
|
BindManager(ctx context.Context, in *BindManagerReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment)
|
||||||
UpdateWorkImage(ctx context.Context, in *UpdateWorkImageReq, opts ...grpc_go.CallOption) (*UpdateWorkImageResp, common.ErrorWithAttachment)
|
UpdateWorkImage(ctx context.Context, in *UpdateWorkImageReq, opts ...grpc_go.CallOption) (*UpdateWorkImageResp, common.ErrorWithAttachment)
|
||||||
UpdateWorkVideo(ctx context.Context, in *UpdateWorkVideoReq, opts ...grpc_go.CallOption) (*UpdateWorkVideoResp, common.ErrorWithAttachment)
|
UpdateWorkVideo(ctx context.Context, in *UpdateWorkVideoReq, opts ...grpc_go.CallOption) (*UpdateWorkVideoResp, common.ErrorWithAttachment)
|
||||||
@ -41,6 +41,8 @@ type CastClient interface {
|
|||||||
MediaAccounts(ctx context.Context, in *MediaAccountsReq, opts ...grpc_go.CallOption) (*MediaAccountsResp, common.ErrorWithAttachment)
|
MediaAccounts(ctx context.Context, in *MediaAccountsReq, opts ...grpc_go.CallOption) (*MediaAccountsResp, common.ErrorWithAttachment)
|
||||||
MediaWorks(ctx context.Context, in *MediaWorksReq, opts ...grpc_go.CallOption) (*MediaWorksResp, common.ErrorWithAttachment)
|
MediaWorks(ctx context.Context, in *MediaWorksReq, opts ...grpc_go.CallOption) (*MediaWorksResp, common.ErrorWithAttachment)
|
||||||
RePublish(ctx context.Context, in *RePublishReq, opts ...grpc_go.CallOption) (*RePublishResp, common.ErrorWithAttachment)
|
RePublish(ctx context.Context, in *RePublishReq, opts ...grpc_go.CallOption) (*RePublishResp, common.ErrorWithAttachment)
|
||||||
|
DelWork(ctx context.Context, in *DelWorkReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment)
|
||||||
|
WorkInfo(ctx context.Context, in *WorkInfoReq, opts ...grpc_go.CallOption) (*WorkInfoResp, common.ErrorWithAttachment)
|
||||||
OAuthYoutubeUrl(ctx context.Context, in *OAuthYoutubeUrlReq, opts ...grpc_go.CallOption) (*OAuthYoutubeUrlResp, common.ErrorWithAttachment)
|
OAuthYoutubeUrl(ctx context.Context, in *OAuthYoutubeUrlReq, opts ...grpc_go.CallOption) (*OAuthYoutubeUrlResp, common.ErrorWithAttachment)
|
||||||
OAuthYoutubeToken(ctx context.Context, in *OAuthYoutubeTokenReq, opts ...grpc_go.CallOption) (*OAuthYoutubeTokenResp, common.ErrorWithAttachment)
|
OAuthYoutubeToken(ctx context.Context, in *OAuthYoutubeTokenReq, opts ...grpc_go.CallOption) (*OAuthYoutubeTokenResp, common.ErrorWithAttachment)
|
||||||
}
|
}
|
||||||
@ -52,7 +54,7 @@ type castClient struct {
|
|||||||
type CastClientImpl struct {
|
type CastClientImpl struct {
|
||||||
MediaUserList func(ctx context.Context, in *MediaUserListReq) (*MediaUserListResp, error)
|
MediaUserList func(ctx context.Context, in *MediaUserListReq) (*MediaUserListResp, error)
|
||||||
UpdateMediaAccount func(ctx context.Context, in *UpdateMediaAccountReq) (*UpdateMediaAccountResp, error)
|
UpdateMediaAccount func(ctx context.Context, in *UpdateMediaAccountReq) (*UpdateMediaAccountResp, error)
|
||||||
UnbindManager func(ctx context.Context, in *UnbindManagerReq) (*emptypb.Empty, error)
|
UnbindManager func(ctx context.Context, in *UnbindManagerReq) (*UnbindManagerResp, error)
|
||||||
BindManager func(ctx context.Context, in *BindManagerReq) (*emptypb.Empty, error)
|
BindManager func(ctx context.Context, in *BindManagerReq) (*emptypb.Empty, error)
|
||||||
UpdateWorkImage func(ctx context.Context, in *UpdateWorkImageReq) (*UpdateWorkImageResp, error)
|
UpdateWorkImage func(ctx context.Context, in *UpdateWorkImageReq) (*UpdateWorkImageResp, error)
|
||||||
UpdateWorkVideo func(ctx context.Context, in *UpdateWorkVideoReq) (*UpdateWorkVideoResp, error)
|
UpdateWorkVideo func(ctx context.Context, in *UpdateWorkVideoReq) (*UpdateWorkVideoResp, error)
|
||||||
@ -62,6 +64,8 @@ type CastClientImpl struct {
|
|||||||
MediaAccounts func(ctx context.Context, in *MediaAccountsReq) (*MediaAccountsResp, error)
|
MediaAccounts func(ctx context.Context, in *MediaAccountsReq) (*MediaAccountsResp, error)
|
||||||
MediaWorks func(ctx context.Context, in *MediaWorksReq) (*MediaWorksResp, error)
|
MediaWorks func(ctx context.Context, in *MediaWorksReq) (*MediaWorksResp, error)
|
||||||
RePublish func(ctx context.Context, in *RePublishReq) (*RePublishResp, error)
|
RePublish func(ctx context.Context, in *RePublishReq) (*RePublishResp, error)
|
||||||
|
DelWork func(ctx context.Context, in *DelWorkReq) (*emptypb.Empty, error)
|
||||||
|
WorkInfo func(ctx context.Context, in *WorkInfoReq) (*WorkInfoResp, error)
|
||||||
OAuthYoutubeUrl func(ctx context.Context, in *OAuthYoutubeUrlReq) (*OAuthYoutubeUrlResp, error)
|
OAuthYoutubeUrl func(ctx context.Context, in *OAuthYoutubeUrlReq) (*OAuthYoutubeUrlResp, error)
|
||||||
OAuthYoutubeToken func(ctx context.Context, in *OAuthYoutubeTokenReq) (*OAuthYoutubeTokenResp, error)
|
OAuthYoutubeToken func(ctx context.Context, in *OAuthYoutubeTokenReq) (*OAuthYoutubeTokenResp, error)
|
||||||
}
|
}
|
||||||
@ -90,8 +94,8 @@ func (c *castClient) UpdateMediaAccount(ctx context.Context, in *UpdateMediaAcco
|
|||||||
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateMediaAccount", in, out)
|
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateMediaAccount", in, out)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *castClient) UnbindManager(ctx context.Context, in *UnbindManagerReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) {
|
func (c *castClient) UnbindManager(ctx context.Context, in *UnbindManagerReq, opts ...grpc_go.CallOption) (*UnbindManagerResp, common.ErrorWithAttachment) {
|
||||||
out := new(emptypb.Empty)
|
out := new(UnbindManagerResp)
|
||||||
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
|
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
|
||||||
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UnbindManager", in, out)
|
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UnbindManager", in, out)
|
||||||
}
|
}
|
||||||
@ -150,6 +154,18 @@ func (c *castClient) RePublish(ctx context.Context, in *RePublishReq, opts ...gr
|
|||||||
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/RePublish", in, out)
|
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/RePublish", in, out)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *castClient) DelWork(ctx context.Context, in *DelWorkReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) {
|
||||||
|
out := new(emptypb.Empty)
|
||||||
|
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
|
||||||
|
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/DelWork", in, out)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *castClient) WorkInfo(ctx context.Context, in *WorkInfoReq, opts ...grpc_go.CallOption) (*WorkInfoResp, common.ErrorWithAttachment) {
|
||||||
|
out := new(WorkInfoResp)
|
||||||
|
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
|
||||||
|
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/WorkInfo", in, out)
|
||||||
|
}
|
||||||
|
|
||||||
func (c *castClient) OAuthYoutubeUrl(ctx context.Context, in *OAuthYoutubeUrlReq, opts ...grpc_go.CallOption) (*OAuthYoutubeUrlResp, common.ErrorWithAttachment) {
|
func (c *castClient) OAuthYoutubeUrl(ctx context.Context, in *OAuthYoutubeUrlReq, opts ...grpc_go.CallOption) (*OAuthYoutubeUrlResp, common.ErrorWithAttachment) {
|
||||||
out := new(OAuthYoutubeUrlResp)
|
out := new(OAuthYoutubeUrlResp)
|
||||||
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
|
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
|
||||||
@ -168,7 +184,7 @@ func (c *castClient) OAuthYoutubeToken(ctx context.Context, in *OAuthYoutubeToke
|
|||||||
type CastServer interface {
|
type CastServer interface {
|
||||||
MediaUserList(context.Context, *MediaUserListReq) (*MediaUserListResp, error)
|
MediaUserList(context.Context, *MediaUserListReq) (*MediaUserListResp, error)
|
||||||
UpdateMediaAccount(context.Context, *UpdateMediaAccountReq) (*UpdateMediaAccountResp, error)
|
UpdateMediaAccount(context.Context, *UpdateMediaAccountReq) (*UpdateMediaAccountResp, error)
|
||||||
UnbindManager(context.Context, *UnbindManagerReq) (*emptypb.Empty, error)
|
UnbindManager(context.Context, *UnbindManagerReq) (*UnbindManagerResp, error)
|
||||||
BindManager(context.Context, *BindManagerReq) (*emptypb.Empty, error)
|
BindManager(context.Context, *BindManagerReq) (*emptypb.Empty, error)
|
||||||
UpdateWorkImage(context.Context, *UpdateWorkImageReq) (*UpdateWorkImageResp, error)
|
UpdateWorkImage(context.Context, *UpdateWorkImageReq) (*UpdateWorkImageResp, error)
|
||||||
UpdateWorkVideo(context.Context, *UpdateWorkVideoReq) (*UpdateWorkVideoResp, error)
|
UpdateWorkVideo(context.Context, *UpdateWorkVideoReq) (*UpdateWorkVideoResp, error)
|
||||||
@ -178,6 +194,8 @@ type CastServer interface {
|
|||||||
MediaAccounts(context.Context, *MediaAccountsReq) (*MediaAccountsResp, error)
|
MediaAccounts(context.Context, *MediaAccountsReq) (*MediaAccountsResp, error)
|
||||||
MediaWorks(context.Context, *MediaWorksReq) (*MediaWorksResp, error)
|
MediaWorks(context.Context, *MediaWorksReq) (*MediaWorksResp, error)
|
||||||
RePublish(context.Context, *RePublishReq) (*RePublishResp, error)
|
RePublish(context.Context, *RePublishReq) (*RePublishResp, error)
|
||||||
|
DelWork(context.Context, *DelWorkReq) (*emptypb.Empty, error)
|
||||||
|
WorkInfo(context.Context, *WorkInfoReq) (*WorkInfoResp, error)
|
||||||
OAuthYoutubeUrl(context.Context, *OAuthYoutubeUrlReq) (*OAuthYoutubeUrlResp, error)
|
OAuthYoutubeUrl(context.Context, *OAuthYoutubeUrlReq) (*OAuthYoutubeUrlResp, error)
|
||||||
OAuthYoutubeToken(context.Context, *OAuthYoutubeTokenReq) (*OAuthYoutubeTokenResp, error)
|
OAuthYoutubeToken(context.Context, *OAuthYoutubeTokenReq) (*OAuthYoutubeTokenResp, error)
|
||||||
mustEmbedUnimplementedCastServer()
|
mustEmbedUnimplementedCastServer()
|
||||||
@ -194,7 +212,7 @@ func (UnimplementedCastServer) MediaUserList(context.Context, *MediaUserListReq)
|
|||||||
func (UnimplementedCastServer) UpdateMediaAccount(context.Context, *UpdateMediaAccountReq) (*UpdateMediaAccountResp, error) {
|
func (UnimplementedCastServer) UpdateMediaAccount(context.Context, *UpdateMediaAccountReq) (*UpdateMediaAccountResp, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method UpdateMediaAccount not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method UpdateMediaAccount not implemented")
|
||||||
}
|
}
|
||||||
func (UnimplementedCastServer) UnbindManager(context.Context, *UnbindManagerReq) (*emptypb.Empty, error) {
|
func (UnimplementedCastServer) UnbindManager(context.Context, *UnbindManagerReq) (*UnbindManagerResp, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method UnbindManager not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method UnbindManager not implemented")
|
||||||
}
|
}
|
||||||
func (UnimplementedCastServer) BindManager(context.Context, *BindManagerReq) (*emptypb.Empty, error) {
|
func (UnimplementedCastServer) BindManager(context.Context, *BindManagerReq) (*emptypb.Empty, error) {
|
||||||
@ -224,6 +242,12 @@ func (UnimplementedCastServer) MediaWorks(context.Context, *MediaWorksReq) (*Med
|
|||||||
func (UnimplementedCastServer) RePublish(context.Context, *RePublishReq) (*RePublishResp, error) {
|
func (UnimplementedCastServer) RePublish(context.Context, *RePublishReq) (*RePublishResp, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method RePublish not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method RePublish not implemented")
|
||||||
}
|
}
|
||||||
|
func (UnimplementedCastServer) DelWork(context.Context, *DelWorkReq) (*emptypb.Empty, error) {
|
||||||
|
return nil, status.Errorf(codes.Unimplemented, "method DelWork not implemented")
|
||||||
|
}
|
||||||
|
func (UnimplementedCastServer) WorkInfo(context.Context, *WorkInfoReq) (*WorkInfoResp, error) {
|
||||||
|
return nil, status.Errorf(codes.Unimplemented, "method WorkInfo not implemented")
|
||||||
|
}
|
||||||
func (UnimplementedCastServer) OAuthYoutubeUrl(context.Context, *OAuthYoutubeUrlReq) (*OAuthYoutubeUrlResp, error) {
|
func (UnimplementedCastServer) OAuthYoutubeUrl(context.Context, *OAuthYoutubeUrlReq) (*OAuthYoutubeUrlResp, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method OAuthYoutubeUrl not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method OAuthYoutubeUrl not implemented")
|
||||||
}
|
}
|
||||||
@ -606,6 +630,64 @@ func _Cast_RePublish_Handler(srv interface{}, ctx context.Context, dec func(inte
|
|||||||
return interceptor(ctx, in, info, handler)
|
return interceptor(ctx, in, info, handler)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func _Cast_DelWork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
|
||||||
|
in := new(DelWorkReq)
|
||||||
|
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("DelWork", 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)
|
||||||
|
}
|
||||||
|
|
||||||
|
func _Cast_WorkInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
|
||||||
|
in := new(WorkInfoReq)
|
||||||
|
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("WorkInfo", 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)
|
||||||
|
}
|
||||||
|
|
||||||
func _Cast_OAuthYoutubeUrl_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
|
func _Cast_OAuthYoutubeUrl_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
|
||||||
in := new(OAuthYoutubeUrlReq)
|
in := new(OAuthYoutubeUrlReq)
|
||||||
if err := dec(in); err != nil {
|
if err := dec(in); err != nil {
|
||||||
@ -719,6 +801,14 @@ var Cast_ServiceDesc = grpc_go.ServiceDesc{
|
|||||||
MethodName: "RePublish",
|
MethodName: "RePublish",
|
||||||
Handler: _Cast_RePublish_Handler,
|
Handler: _Cast_RePublish_Handler,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
MethodName: "DelWork",
|
||||||
|
Handler: _Cast_DelWork_Handler,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
MethodName: "WorkInfo",
|
||||||
|
Handler: _Cast_WorkInfo_Handler,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
MethodName: "OAuthYoutubeUrl",
|
MethodName: "OAuthYoutubeUrl",
|
||||||
Handler: _Cast_OAuthYoutubeUrl_Handler,
|
Handler: _Cast_OAuthYoutubeUrl_Handler,
|
||||||
|
@ -1817,8 +1817,11 @@ type SearchResp_Nested struct {
|
|||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
Dir bool `protobuf:"varint,1,opt,name=dir,proto3" json:"dir,omitempty"`
|
IsDir bool `protobuf:"varint,1,opt,name=isDir,proto3" json:"isDir,omitempty"`
|
||||||
Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
|
Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
|
||||||
|
Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
|
||||||
|
Size int64 `protobuf:"varint,4,opt,name=size,proto3" json:"size,omitempty"`
|
||||||
|
ModTime int64 `protobuf:"varint,5,opt,name=modTime,proto3" json:"modTime,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *SearchResp_Nested) Reset() {
|
func (x *SearchResp_Nested) Reset() {
|
||||||
@ -1853,9 +1856,9 @@ func (*SearchResp_Nested) Descriptor() ([]byte, []int) {
|
|||||||
return file_files_proto_rawDescGZIP(), []int{11, 0}
|
return file_files_proto_rawDescGZIP(), []int{11, 0}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *SearchResp_Nested) GetDir() bool {
|
func (x *SearchResp_Nested) GetIsDir() bool {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Dir
|
return x.IsDir
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
@ -1867,6 +1870,27 @@ func (x *SearchResp_Nested) GetPath() string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *SearchResp_Nested) GetName() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Name
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *SearchResp_Nested) GetSize() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Size
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *SearchResp_Nested) GetModTime() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.ModTime
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
var File_files_proto protoreflect.FileDescriptor
|
var File_files_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
var file_files_proto_rawDesc = []byte{
|
var file_files_proto_rawDesc = []byte{
|
||||||
@ -1944,157 +1968,161 @@ var file_files_proto_rawDesc = []byte{
|
|||||||
0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73,
|
0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73,
|
||||||
0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x71,
|
0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x71,
|
||||||
0x75, 0x65, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72,
|
0x75, 0x65, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72,
|
||||||
0x79, 0x22, 0x6c, 0x0a, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12,
|
0x79, 0x22, 0xb2, 0x01, 0x0a, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70,
|
||||||
0x2e, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18,
|
0x12, 0x2e, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
||||||
0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73,
|
0x18, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65,
|
||||||
0x70, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a,
|
0x73, 0x70, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73,
|
||||||
0x2e, 0x0a, 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x69, 0x72,
|
0x1a, 0x74, 0x0a, 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73,
|
||||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x64, 0x69, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70,
|
0x44, 0x69, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x44, 0x69, 0x72,
|
||||||
0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22,
|
0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
|
||||||
0x64, 0x0a, 0x0c, 0x54, 0x75, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12,
|
0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01,
|
||||||
0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70,
|
0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65,
|
||||||
0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65,
|
0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07,
|
||||||
0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72,
|
0x6d, 0x6f, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d,
|
||||||
0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x76, 0x65,
|
0x6f, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x64, 0x0a, 0x0c, 0x54, 0x75, 0x73, 0x43, 0x72, 0x65,
|
||||||
0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6f, 0x76, 0x65,
|
0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01,
|
||||||
0x72, 0x72, 0x69, 0x64, 0x65, 0x22, 0x57, 0x0a, 0x0d, 0x54, 0x75, 0x73, 0x43, 0x72, 0x65, 0x61,
|
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73,
|
||||||
0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64,
|
0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||||
0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x75, 0x70,
|
0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68,
|
||||||
0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70,
|
0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01,
|
||||||
0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03,
|
0x28, 0x08, 0x52, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x22, 0x57, 0x0a, 0x0d,
|
||||||
0x52, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x86,
|
0x54, 0x75, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a,
|
||||||
0x01, 0x0a, 0x0c, 0x54, 0x75, 0x73, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12,
|
0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20,
|
||||||
0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70,
|
0x01, 0x28, 0x03, 0x52, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74,
|
||||||
0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65,
|
0x68, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65,
|
||||||
0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72,
|
0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f,
|
||||||
0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70, 0x6c,
|
0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x0c, 0x54, 0x75, 0x73, 0x55, 0x70, 0x6c,
|
||||||
0x6f, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52,
|
0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01,
|
||||||
0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x18, 0x0a,
|
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73,
|
||||||
0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07,
|
0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||||
0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x33, 0x0a, 0x0d, 0x54, 0x75, 0x73, 0x55, 0x70,
|
0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68,
|
||||||
0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f,
|
0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74,
|
||||||
0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c,
|
0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x66,
|
||||||
0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x80, 0x01, 0x0a,
|
0x66, 0x73, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18,
|
||||||
0x14, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66,
|
0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x33,
|
||||||
0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20,
|
0x0a, 0x0d, 0x54, 0x75, 0x73, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12,
|
||||||
0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65,
|
0x22, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18,
|
||||||
0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
|
0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x66, 0x66,
|
||||||
0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12,
|
0x73, 0x65, 0x74, 0x22, 0x80, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c,
|
||||||
0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52,
|
0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04,
|
||||||
0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74,
|
|
||||||
0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22,
|
|
||||||
0x31, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e,
|
|
||||||
0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74,
|
|
||||||
0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65,
|
|
||||||
0x6e, 0x74, 0x22, 0x47, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65,
|
|
||||||
0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
|
||||||
0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61,
|
|
||||||
0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73,
|
|
||||||
0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0xfa, 0x01, 0x0a, 0x0c,
|
|
||||||
0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04,
|
|
||||||
0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68,
|
0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68,
|
||||||
0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
|
0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74,
|
||||||
0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01,
|
0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61,
|
||||||
0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65,
|
0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74,
|
||||||
0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x74,
|
0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16,
|
||||||
0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69,
|
0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06,
|
||||||
0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69,
|
0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x31, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61,
|
||||||
0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
|
0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12,
|
||||||
0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x54, 0x69, 0x6d,
|
0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c,
|
||||||
0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x54, 0x69, 0x6d, 0x65,
|
0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x47, 0x0a, 0x0b, 0x46, 0x69, 0x6c,
|
||||||
0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x44, 0x69, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52,
|
0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68,
|
||||||
0x05, 0x69, 0x73, 0x44, 0x69, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x53, 0x79, 0x6d, 0x6c,
|
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d,
|
||||||
0x69, 0x6e, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x53, 0x79, 0x6d,
|
0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20,
|
||||||
0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01,
|
0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61,
|
||||||
0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x5a, 0x0a, 0x0a, 0x50, 0x72, 0x65, 0x76,
|
0x74, 0x68, 0x22, 0xfa, 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52,
|
||||||
0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01,
|
0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73,
|
0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
|
||||||
0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28,
|
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73,
|
||||||
0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68,
|
0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12,
|
||||||
0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04,
|
0x1c, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01,
|
||||||
0x73, 0x69, 0x7a, 0x65, 0x22, 0x5d, 0x0a, 0x0b, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52,
|
0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a,
|
||||||
0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01,
|
0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||||
0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a,
|
0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64,
|
||||||
0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
|
0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a,
|
||||||
0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64,
|
0x07, 0x6d, 0x6f, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07,
|
||||||
0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x54,
|
0x6d, 0x6f, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x44, 0x69, 0x72,
|
||||||
0x69, 0x6d, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x09, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
|
0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x44, 0x69, 0x72, 0x12, 0x1c, 0x0a,
|
||||||
0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
0x09, 0x69, 0x73, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08,
|
||||||
0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61,
|
0x52, 0x09, 0x69, 0x73, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x74,
|
||||||
0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73,
|
0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22,
|
||||||
0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x61,
|
0x5a, 0x0a, 0x0a, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a,
|
||||||
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74,
|
0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74,
|
||||||
0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69,
|
0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61,
|
||||||
0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e,
|
0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70,
|
||||||
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64,
|
0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18,
|
||||||
0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64,
|
0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x5d, 0x0a, 0x0b, 0x50,
|
||||||
0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28,
|
0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f,
|
||||||
0x08, 0x52, 0x06, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x0c, 0x0a, 0x0a, 0x41, 0x63, 0x74,
|
0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e,
|
||||||
0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x74, 0x0a, 0x0e, 0x44, 0x69, 0x72, 0x44, 0x6f,
|
0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65,
|
||||||
0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74,
|
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65,
|
||||||
0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a,
|
0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
|
||||||
0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02,
|
0x03, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x09, 0x41,
|
||||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50,
|
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68,
|
||||||
0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03,
|
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d,
|
||||||
0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x6c, 0x67,
|
0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20,
|
||||||
0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x6c, 0x67, 0x6f, 0x22, 0x2b, 0x0a,
|
0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61,
|
||||||
0x0f, 0x44, 0x69, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70,
|
0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
|
||||||
0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
|
0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65,
|
||||||
0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x44, 0x0a, 0x08, 0x55, 0x73,
|
0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||||
0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01,
|
0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08,
|
||||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73,
|
0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08,
|
||||||
0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28,
|
0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6e, 0x61,
|
||||||
0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68,
|
0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65,
|
||||||
0x22, 0x35, 0x0a, 0x09, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a,
|
0x22, 0x0c, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x74,
|
||||||
0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f,
|
0x0a, 0x0e, 0x44, 0x69, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71,
|
||||||
0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
|
0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
|
||||||
0x03, 0x52, 0x04, 0x75, 0x73, 0x65, 0x64, 0x32, 0xcb, 0x05, 0x0a, 0x04, 0x46, 0x69, 0x6c, 0x65,
|
0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63,
|
||||||
0x12, 0x31, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73,
|
0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65,
|
||||||
0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x66,
|
0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69,
|
||||||
0x69, 0x6c, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73,
|
0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73,
|
||||||
0x70, 0x22, 0x00, 0x12, 0x31, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x2e, 0x66, 0x69,
|
0x12, 0x12, 0x0a, 0x04, 0x61, 0x6c, 0x67, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
|
||||||
0x6c, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a,
|
0x61, 0x6c, 0x67, 0x6f, 0x22, 0x2b, 0x0a, 0x0f, 0x44, 0x69, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x6c,
|
||||||
0x13, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f,
|
0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65,
|
||||||
0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
|
0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
|
||||||
0x12, 0x10, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52,
|
0x74, 0x22, 0x44, 0x0a, 0x08, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a,
|
||||||
0x65, 0x71, 0x1a, 0x11, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74,
|
0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74,
|
||||||
0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74,
|
0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61,
|
||||||
0x65, 0x12, 0x10, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
|
0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70,
|
||||||
0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65,
|
0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0x35, 0x0a, 0x09, 0x55, 0x73, 0x61, 0x67, 0x65,
|
||||||
0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x06, 0x53, 0x65, 0x61, 0x72,
|
0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20,
|
||||||
0x63, 0x68, 0x12, 0x10, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x61, 0x72, 0x63,
|
0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73,
|
||||||
0x68, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x61,
|
0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x75, 0x73, 0x65, 0x64, 0x32, 0xcb,
|
||||||
0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x06, 0x55, 0x70, 0x6c,
|
0x05, 0x0a, 0x04, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12,
|
||||||
0x6f, 0x61, 0x64, 0x12, 0x10, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x55, 0x70, 0x6c, 0x6f,
|
0x12, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74,
|
||||||
0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x55, 0x70,
|
0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x65,
|
||||||
0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x09, 0x54, 0x75,
|
0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x31, 0x0a, 0x04, 0x49, 0x6e,
|
||||||
0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x13, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e,
|
0x66, 0x6f, 0x12, 0x12, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49,
|
||||||
0x54, 0x75, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x66,
|
0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x46,
|
||||||
0x69, 0x6c, 0x65, 0x73, 0x2e, 0x54, 0x75, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65,
|
0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2f, 0x0a,
|
||||||
0x73, 0x70, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x09, 0x54, 0x75, 0x73, 0x55, 0x70, 0x6c, 0x6f, 0x61,
|
0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x10, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e,
|
||||||
0x64, 0x12, 0x13, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x54, 0x75, 0x73, 0x55, 0x70, 0x6c,
|
0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x66, 0x69, 0x6c, 0x65,
|
||||||
0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x54,
|
0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2f,
|
||||||
0x75, 0x73, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x50,
|
0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x10, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73,
|
||||||
0x0a, 0x11, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73,
|
0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x66, 0x69, 0x6c,
|
||||||
0x66, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x75,
|
0x65, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12,
|
||||||
0x6d, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x71,
|
0x2f, 0x0a, 0x06, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x10, 0x2e, 0x66, 0x69, 0x6c, 0x65,
|
||||||
0x1a, 0x1c, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62,
|
0x73, 0x2e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x66, 0x69,
|
||||||
0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00,
|
0x6c, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00,
|
||||||
0x12, 0x32, 0x0a, 0x07, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x12, 0x11, 0x2e, 0x66, 0x69,
|
0x12, 0x2f, 0x0a, 0x06, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x10, 0x2e, 0x66, 0x69, 0x6c,
|
||||||
0x6c, 0x65, 0x73, 0x2e, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x1a, 0x12,
|
0x65, 0x73, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x66,
|
||||||
0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65,
|
0x69, 0x6c, 0x65, 0x73, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22,
|
||||||
0x73, 0x70, 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10,
|
0x00, 0x12, 0x38, 0x0a, 0x09, 0x54, 0x75, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x13,
|
||||||
0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71,
|
0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x54, 0x75, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
|
||||||
0x1a, 0x11, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52,
|
0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x54, 0x75, 0x73, 0x43,
|
||||||
0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0b, 0x44, 0x69, 0x72, 0x44, 0x6f, 0x77, 0x6e,
|
0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x09, 0x54,
|
||||||
0x6c, 0x6f, 0x61, 0x64, 0x12, 0x15, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x44, 0x69, 0x72,
|
0x75, 0x73, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x13, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73,
|
||||||
0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x66, 0x69,
|
0x2e, 0x54, 0x75, 0x73, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e,
|
||||||
|
0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x54, 0x75, 0x73, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52,
|
||||||
|
0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62,
|
||||||
|
0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x66, 0x69, 0x6c,
|
||||||
|
0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e,
|
||||||
|
0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e,
|
||||||
|
0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65,
|
||||||
|
0x72, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x07, 0x50, 0x72, 0x65, 0x76, 0x69,
|
||||||
|
0x65, 0x77, 0x12, 0x11, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x50, 0x72, 0x65, 0x76, 0x69,
|
||||||
|
0x65, 0x77, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x50, 0x72,
|
||||||
|
0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x06, 0x41,
|
||||||
|
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x41, 0x63,
|
||||||
|
0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e,
|
||||||
|
0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0b,
|
||||||
|
0x44, 0x69, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x15, 0x2e, 0x66, 0x69,
|
||||||
0x6c, 0x65, 0x73, 0x2e, 0x44, 0x69, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52,
|
0x6c, 0x65, 0x73, 0x2e, 0x44, 0x69, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52,
|
||||||
0x65, 0x73, 0x70, 0x22, 0x00, 0x30, 0x01, 0x12, 0x2c, 0x0a, 0x05, 0x55, 0x73, 0x61, 0x67, 0x65,
|
0x65, 0x71, 0x1a, 0x16, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x44, 0x69, 0x72, 0x44, 0x6f,
|
||||||
0x12, 0x0f, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65,
|
0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x30, 0x01, 0x12, 0x2c,
|
||||||
0x71, 0x1a, 0x10, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52,
|
0x0a, 0x05, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0f, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e,
|
||||||
0x65, 0x73, 0x70, 0x22, 0x00, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x3b, 0x66, 0x69, 0x6c, 0x65,
|
0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73,
|
||||||
0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, 0x0a, 0x5a, 0x08,
|
||||||
|
0x2e, 0x2f, 0x3b, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -3,205 +3,192 @@ package files;
|
|||||||
|
|
||||||
option go_package = "./;files";
|
option go_package = "./;files";
|
||||||
|
|
||||||
|
service File {
|
||||||
|
rpc List(FileListReq) returns (FileListResp) {} // 获取当前路径下的文件列表
|
||||||
|
rpc Info(FileInfoReq) returns (FileInfoResp) {} // 获取文件信息
|
||||||
|
rpc Create(CreateReq) returns (CreateResp) {} // 创建文件夹
|
||||||
|
rpc Delete(DeleteReq) returns (DeleteResp) {} // 删除文件或文件夹
|
||||||
|
rpc Search(searchReq) returns (searchResp) {} // 搜索
|
||||||
|
rpc Upload(UploadReq) returns (UploadResp) {} // 文件上传
|
||||||
|
rpc TusCreate(TusCreateReq) returns (TusCreateResp) {
|
||||||
|
} // 分块文件上传:创建文件
|
||||||
|
rpc TusUpload(TusUploadReq) returns (TusUploadResp) {
|
||||||
|
} // 分块文件上传:上传文件块
|
||||||
|
rpc ResumableTransfer(ResumableTransferReq) returns (ResumableTransferResp) {
|
||||||
|
} // 断点续传的grpc实现
|
||||||
|
rpc Preview(PreviewReq) returns (PreviewResp) {} // 文件预览
|
||||||
|
rpc Action(ActionReq) returns (ActionResp) {} // 移动文件或重命名文件
|
||||||
|
rpc DirDownload(DirDownloadReq) returns (stream DirDownloadResp) {
|
||||||
|
} // 文件夹压缩下载
|
||||||
|
rpc Usage(UsageReq) returns (UsageResp) {} //查看磁盘使用率
|
||||||
|
}
|
||||||
|
|
||||||
service File{
|
message FileListReq {
|
||||||
rpc List(FileListReq) returns (FileListResp) {} // 获取当前路径下的文件列表
|
string path = 1; // 目标文件夹路径
|
||||||
rpc Info(FileInfoReq) returns (FileInfoResp) {} // 获取文件信息
|
string userSpacePath = 2; // 用户空间的路径
|
||||||
rpc Create(CreateReq) returns (CreateResp) {} // 创建文件夹
|
Sorting sorting = 3;
|
||||||
rpc Delete(DeleteReq) returns (DeleteResp) {} // 删除文件或文件夹
|
|
||||||
rpc Search(searchReq) returns (searchResp) {} // 搜索
|
|
||||||
rpc Upload(UploadReq) returns (UploadResp) {} // 文件上传
|
|
||||||
rpc TusCreate(TusCreateReq) returns (TusCreateResp) {} // 分块文件上传:创建文件
|
|
||||||
rpc TusUpload(TusUploadReq) returns (TusUploadResp) {} // 分块文件上传:上传文件块
|
|
||||||
rpc ResumableTransfer(ResumableTransferReq) returns (ResumableTransferResp) {} // 断点续传的grpc实现
|
|
||||||
rpc Preview(PreviewReq) returns (PreviewResp) {} // 文件预览
|
|
||||||
rpc Action(ActionReq) returns (ActionResp) {} // 移动文件或重命名文件
|
|
||||||
rpc DirDownload(DirDownloadReq) returns (stream DirDownloadResp) {} // 文件夹压缩下载
|
|
||||||
rpc Usage(UsageReq) returns (UsageResp) {} //查看磁盘使用率
|
|
||||||
}
|
|
||||||
|
|
||||||
message FileListReq{
|
|
||||||
string path = 1; // 目标文件夹路径
|
|
||||||
string userSpacePath = 2; // 用户空间的路径
|
|
||||||
Sorting sorting = 3;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
message Items {
|
message Items {
|
||||||
string path = 1;
|
string path = 1;
|
||||||
string name = 2;
|
string name = 2;
|
||||||
int64 size = 3;
|
int64 size = 3;
|
||||||
string extension = 4;
|
string extension = 4;
|
||||||
string modified = 5;
|
string modified = 5;
|
||||||
int64 modTime = 6;
|
int64 modTime = 6;
|
||||||
string mode = 7;
|
string mode = 7;
|
||||||
bool isDir = 8;
|
bool isDir = 8;
|
||||||
bool isSymlink = 9;
|
bool isSymlink = 9;
|
||||||
string type = 10;
|
string type = 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
message Sorting {
|
message Sorting {
|
||||||
string by = 1;
|
string by = 1;
|
||||||
bool asc = 2;
|
bool asc = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
message FileListResp {
|
message FileListResp {
|
||||||
repeated Items items = 1;
|
repeated Items items = 1;
|
||||||
int32 numDirs = 2;
|
int32 numDirs = 2;
|
||||||
int32 numFiles = 3;
|
int32 numFiles = 3;
|
||||||
Sorting sorting = 4;
|
Sorting sorting = 4;
|
||||||
string path = 5;
|
string path = 5;
|
||||||
string name = 6;
|
string name = 6;
|
||||||
int64 size = 7;
|
int64 size = 7;
|
||||||
string extension = 8;
|
string extension = 8;
|
||||||
string modified = 9;
|
string modified = 9;
|
||||||
int64 modTime = 10;
|
int64 modTime = 10;
|
||||||
string mode = 11;
|
string mode = 11;
|
||||||
bool isDir = 12;
|
bool isDir = 12;
|
||||||
bool isSymlink = 13;
|
bool isSymlink = 13;
|
||||||
string type = 14;
|
string type = 14;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message CreateReq {
|
||||||
message CreateReq{
|
string path = 1;
|
||||||
string path = 1;
|
string userSpacePath = 2;
|
||||||
string userSpacePath = 2;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
message CreateResp{
|
message CreateResp {}
|
||||||
|
|
||||||
|
message DeleteReq {
|
||||||
|
string path = 1;
|
||||||
|
string userSpacePath = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message DeleteResp {}
|
||||||
|
|
||||||
message DeleteReq{
|
message UploadReq {
|
||||||
string path = 1;
|
string path = 1;
|
||||||
string userSpacePath = 2;
|
string userSpacePath = 2;
|
||||||
|
bytes content = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
message DeleteResp{
|
message UploadResp {}
|
||||||
|
|
||||||
|
message searchReq {
|
||||||
|
string path = 1;
|
||||||
|
string userSpacePath = 2;
|
||||||
|
string query = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
message UploadReq{
|
message searchResp {
|
||||||
string path = 1;
|
message Nested {
|
||||||
string userSpacePath = 2;
|
bool isDir = 1;
|
||||||
bytes content =3;
|
string path = 2;
|
||||||
|
string name = 3;
|
||||||
|
int64 size = 4;
|
||||||
|
int64 modTime = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
repeated Nested items = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
message UploadResp{
|
message TusCreateReq {
|
||||||
|
string path = 1;
|
||||||
|
string userSpacePath = 2;
|
||||||
|
bool override = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
message searchReq{
|
message TusCreateResp {
|
||||||
string path = 1;
|
int64 uploadLength = 1;
|
||||||
string userSpacePath = 2;
|
int64 uploadOffset = 2;
|
||||||
string query = 3;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
message searchResp{
|
message TusUploadReq {
|
||||||
message Nested {
|
string path = 1;
|
||||||
bool dir = 1;
|
string userSpacePath = 2;
|
||||||
string path = 2;
|
int64 uploadOffset = 3;
|
||||||
}
|
bytes content = 4;
|
||||||
|
|
||||||
repeated Nested items = 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message TusUploadResp { int64 uploadOffset = 1; }
|
||||||
|
|
||||||
message TusCreateReq{
|
message ResumableTransferReq {
|
||||||
string path = 1;
|
string path = 1;
|
||||||
string userSpacePath = 2;
|
string userSpacePath = 2;
|
||||||
bool override =3 ;
|
int64 offset = 3;
|
||||||
|
int64 length = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
message TusCreateResp{
|
message ResumableTransferResp { bytes content = 1; }
|
||||||
int64 uploadLength = 1;
|
|
||||||
int64 uploadOffset = 2;
|
message FileInfoReq {
|
||||||
|
string path = 1;
|
||||||
|
string userSpacePath = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
message TusUploadReq{
|
message FileInfoResp {
|
||||||
string path = 1;
|
string path = 1;
|
||||||
string userSpacePath = 2;
|
string name = 2;
|
||||||
int64 uploadOffset = 3;
|
int64 size = 3;
|
||||||
bytes content = 4;
|
string extension = 4;
|
||||||
|
string modified = 5;
|
||||||
|
string mode = 6;
|
||||||
|
int64 modTime = 7;
|
||||||
|
bool isDir = 8;
|
||||||
|
bool isSymlink = 9;
|
||||||
|
string type = 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
message TusUploadResp{
|
message PreviewReq {
|
||||||
int64 uploadOffset = 1;
|
string path = 1;
|
||||||
|
string userSpacePath = 2;
|
||||||
|
uint32 size = 3; // 预览大小 0:256x256, 1:1080x1080
|
||||||
}
|
}
|
||||||
|
|
||||||
message ResumableTransferReq{
|
message PreviewResp {
|
||||||
string path = 1;
|
bytes content = 1;
|
||||||
string userSpacePath = 2;
|
string fileName = 2;
|
||||||
int64 offset = 3;
|
int64 modTime = 3;
|
||||||
int64 length = 4;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
message ResumableTransferResp{
|
message ActionReq {
|
||||||
bytes content = 1;
|
string path = 1;
|
||||||
|
string userSpacePath = 2;
|
||||||
|
string action = 3;
|
||||||
|
string destination = 4;
|
||||||
|
bool override = 5;
|
||||||
|
bool rename = 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
message FileInfoReq{
|
message ActionResp {}
|
||||||
string path = 1;
|
|
||||||
string userSpacePath = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
message FileInfoResp{
|
|
||||||
string path = 1;
|
|
||||||
string name = 2;
|
|
||||||
int64 size = 3;
|
|
||||||
string extension = 4;
|
|
||||||
string modified = 5;
|
|
||||||
string mode = 6;
|
|
||||||
int64 modTime = 7;
|
|
||||||
bool isDir = 8;
|
|
||||||
bool isSymlink = 9;
|
|
||||||
string type = 10;
|
|
||||||
}
|
|
||||||
|
|
||||||
message PreviewReq{
|
|
||||||
string path = 1;
|
|
||||||
string userSpacePath = 2;
|
|
||||||
uint32 size = 3; // 预览大小 0:256x256, 1:1080x1080
|
|
||||||
}
|
|
||||||
|
|
||||||
message PreviewResp{
|
|
||||||
bytes content = 1;
|
|
||||||
string fileName = 2;
|
|
||||||
int64 modTime = 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
message ActionReq{
|
|
||||||
string path = 1;
|
|
||||||
string userSpacePath = 2;
|
|
||||||
string action = 3;
|
|
||||||
string destination = 4;
|
|
||||||
bool override = 5;
|
|
||||||
bool rename = 6;
|
|
||||||
}
|
|
||||||
|
|
||||||
message ActionResp{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
message DirDownloadReq {
|
message DirDownloadReq {
|
||||||
string path = 1;
|
string path = 1;
|
||||||
string userSpacePath = 2;
|
string userSpacePath = 2;
|
||||||
repeated string files =3;
|
repeated string files = 3;
|
||||||
string algo = 4;
|
string algo = 4;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
message DirDownloadResp {
|
message DirDownloadResp { bytes content = 1; }
|
||||||
bytes content = 1;
|
|
||||||
|
message UsageReq {
|
||||||
|
string path = 1;
|
||||||
|
string userSpacePath = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
message UsageReq{
|
message UsageResp {
|
||||||
string path = 1;
|
int64 total = 1;
|
||||||
string userSpacePath = 2;
|
int64 used = 2;
|
||||||
}
|
|
||||||
|
|
||||||
message UsageResp{
|
|
||||||
int64 total = 1;
|
|
||||||
int64 used = 2;
|
|
||||||
}
|
}
|
@ -21,6 +21,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"fonchain-fiee/cmd/config"
|
"fonchain-fiee/cmd/config"
|
||||||
"fonchain-fiee/pkg/cache"
|
"fonchain-fiee/pkg/cache"
|
||||||
|
"fonchain-fiee/pkg/logger"
|
||||||
"fonchain-fiee/pkg/router"
|
"fonchain-fiee/pkg/router"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -44,6 +45,7 @@ func bootstrap() (err error) {
|
|||||||
fmt.Println(configEnv)
|
fmt.Println(configEnv)
|
||||||
fmt.Println(config.AppConfig)
|
fmt.Println(config.AppConfig)
|
||||||
|
|
||||||
|
logger.LogInit(config.AppConfig)
|
||||||
////redis
|
////redis
|
||||||
redisConfig := cache.RedisConfig{
|
redisConfig := cache.RedisConfig{
|
||||||
RedisDB: configEnv.Redis.RedisDB,
|
RedisDB: configEnv.Redis.RedisDB,
|
||||||
|
@ -125,6 +125,14 @@ type Oss struct {
|
|||||||
BaseDir string
|
BaseDir string
|
||||||
CdnHost string
|
CdnHost string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type ZapLog struct {
|
||||||
|
Level string
|
||||||
|
Filename string
|
||||||
|
MaxSize int
|
||||||
|
MaxAge int
|
||||||
|
MaxBackups int
|
||||||
|
}
|
||||||
type Mobile struct {
|
type Mobile struct {
|
||||||
SK string
|
SK string
|
||||||
AK string
|
AK string
|
||||||
@ -144,6 +152,7 @@ type Config struct {
|
|||||||
Mobile Mobile `toml:"mobile"`
|
Mobile Mobile `toml:"mobile"`
|
||||||
Ai Ai `toml:"ai"`
|
Ai Ai `toml:"ai"`
|
||||||
Oss Oss `toml:"oss"`
|
Oss Oss `toml:"oss"`
|
||||||
|
ZapLog ZapLog `toml:"zapLog"`
|
||||||
}
|
}
|
||||||
|
|
||||||
/********start-配置信息*********/
|
/********start-配置信息*********/
|
||||||
|
@ -34,3 +34,10 @@ Password = "Gy.123456"
|
|||||||
|
|
||||||
[stripe]
|
[stripe]
|
||||||
Webhookkey = "whsec_uOQpG6IZTqtfLuePIDtfLCGJPqedSCCN"
|
Webhookkey = "whsec_uOQpG6IZTqtfLuePIDtfLCGJPqedSCCN"
|
||||||
|
|
||||||
|
[zapLog]
|
||||||
|
level = "info"
|
||||||
|
filename = "logs/fiee_zap.log"
|
||||||
|
max_size = 5
|
||||||
|
max_age = 30
|
||||||
|
max_backups = 30
|
||||||
|
@ -33,4 +33,11 @@ BaseDir = "fiee"
|
|||||||
CdnHost = "https://e-cdn.fontree.cn"
|
CdnHost = "https://e-cdn.fontree.cn"
|
||||||
|
|
||||||
[stripe]
|
[stripe]
|
||||||
Webhookkey = "whsec_Mol32WD1KcKHUdYsSwap0LR03q2g9qNY"
|
Webhookkey = "whsec_Mol32WD1KcKHUdYsSwap0LR03q2g9qNY"
|
||||||
|
|
||||||
|
[zapLog]
|
||||||
|
level = "info"
|
||||||
|
filename = "logs/fiee_zap.log"
|
||||||
|
max_size = 5
|
||||||
|
max_age = 30
|
||||||
|
max_backups = 30
|
||||||
|
@ -35,3 +35,10 @@ Password = "Gy.123456"
|
|||||||
|
|
||||||
[stripe]
|
[stripe]
|
||||||
Webhookkey = "whsec_uOQpG6IZTqtfLuePIDtfLCGJPqedSCCN"
|
Webhookkey = "whsec_uOQpG6IZTqtfLuePIDtfLCGJPqedSCCN"
|
||||||
|
|
||||||
|
[zapLog]
|
||||||
|
level = "info"
|
||||||
|
filename = "logs/fiee_zap.log"
|
||||||
|
max_size = 5
|
||||||
|
max_age = 30
|
||||||
|
max_backups = 30
|
||||||
|
@ -44,53 +44,56 @@ var EnMessages = map[string]string{
|
|||||||
"系统提示:已经发送过,验证码尚可用": "System message: Already sent, verification code is still available",
|
"系统提示:已经发送过,验证码尚可用": "System message: Already sent, verification code is still available",
|
||||||
"您的手机号当天发送次数过多,请联系管理员通过密码登录": "Your mobile phone number is sent too many times that day, please contact the administrator to log in through the password",
|
"您的手机号当天发送次数过多,请联系管理员通过密码登录": "Your mobile phone number is sent too many times that day, please contact the administrator to log in through the password",
|
||||||
"您的手机号验证码错误,请确认之后注册": "Your phone number verification code is incorrect, please confirm and register",
|
"您的手机号验证码错误,请确认之后注册": "Your phone number verification code is incorrect, please confirm and register",
|
||||||
"手机号不合法": "The phone number is illegal",
|
"手机号不合法": "The phone number is illegal",
|
||||||
"手机号未更改": "The phone number has not been changed",
|
"手机号未更改": "The phone number has not been changed",
|
||||||
"新手机号过期": "New phone number expired",
|
"新手机号过期": "New phone number expired",
|
||||||
"验证码错误": "Verification code error",
|
"验证码错误": "Verification code error",
|
||||||
"验证码未发送": "The verification code was not sent",
|
"验证码未发送": "The verification code was not sent",
|
||||||
"账号不存在": "Account does not exist",
|
"账号不存在": "Account does not exist",
|
||||||
"已实名": "In real name",
|
"已实名": "In real name",
|
||||||
"实名审核中,请勿重复提交": "During real-name audit, please do not submit repeatedly",
|
"实名审核中,请勿重复提交": "During real-name audit, please do not submit repeatedly",
|
||||||
"用户状态异常,无法进行审核": "The user is abnormal and cannot be audited. Procedure",
|
"用户状态异常,无法进行审核": "The user is abnormal and cannot be audited. Procedure",
|
||||||
"验证码已失效": "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",
|
"滑块验证状态不存在,请退出重试": "The slider verification status does not exist. Please exit and try again",
|
||||||
"请先实名": "Please use your real name first",
|
"语言不能为空": "The language cannot be empty",
|
||||||
"实名审核中": "Real-name verification is underway",
|
"排序参数需为正整数": "The sorting parameter must be a positive integer",
|
||||||
"实名审核失败": "The real-name verification failed",
|
"请先创建中文版本套餐": "Please create the Chinese version bundle first",
|
||||||
"未知实名状态": "Unknown real-name status",
|
"增值服务不存在": "Value-added service does not exist",
|
||||||
|
"所选增值服务币种与套餐币种不一致": "The selected value-added service currency is not the same as the bundle currency",
|
||||||
"语言不能为空": "The language cannot be empty",
|
"文件转换失败": "File conversion failed",
|
||||||
"排序参数需为正整数": "The sorting parameter must be a positive integer",
|
"每种增值服务类型只可选择一个": "Each type of value-added service can only be selected once",
|
||||||
"请先创建中文版本套餐": "Please create the Chinese version bundle first",
|
"保存套餐与增值服务关联失败": "Failed to save bundle with value-added service association",
|
||||||
"增值服务不存在": "Value-added service does not exist",
|
"删除套餐与增值服务关联失败": "Failed to delete bundle with value-added service association",
|
||||||
"所选增值服务币种与套餐币种不一致": "The selected value-added service currency is not the same as the bundle currency",
|
"查询套餐与增值服务关联失败": "Failed to query bundle with value-added service association",
|
||||||
"文件转换失败": "File conversion failed",
|
"更新套餐与增值服务关联失败": "Failed to update bundle with value-added service association",
|
||||||
"每种增值服务类型只可选择一个": "Each type of value-added service can only be selected once",
|
"查询增值服务失败": "Failed to query value-added service",
|
||||||
"保存套餐与增值服务关联失败": "Failed to save bundle with value-added service association",
|
"更新套餐状态失败": "Failed to update bundle status",
|
||||||
"删除套餐与增值服务关联失败": "Failed to delete bundle with value-added service association",
|
"查询增值服务详情失败": "Failed to query value-added service details",
|
||||||
"查询套餐与增值服务关联失败": "Failed to query bundle with value-added service association",
|
"序列化转换失败": "Serialization conversion failed",
|
||||||
"更新套餐与增值服务关联失败": "Failed to update bundle with value-added service association",
|
"保存套餐历史记录失败": "Failed to save bundle history record",
|
||||||
"查询增值服务失败": "Failed to query value-added service",
|
"原价不能为空": "Original price cannot be empty",
|
||||||
"更新套餐状态失败": "Failed to update bundle status",
|
"原价格式转换失败": "Original price format conversion failed",
|
||||||
"查询增值服务详情失败": "Failed to query value-added service details",
|
"数量参数需为0-99": "Quantity parameter must be between 0 and 99",
|
||||||
"序列化转换失败": "Serialization conversion failed",
|
"优惠单价需小于等于原价": "The discounted price must be less than or equal to the original price",
|
||||||
"保存套餐历史记录失败": "Failed to save bundle history record",
|
"请先创建中文版本增值服务": "Please create the Chinese version value-added service first",
|
||||||
"原价不能为空": "Original price cannot be empty",
|
"保存增值服务失败": "Failed to save value-added service",
|
||||||
"原价格式转换失败": "Original price format conversion failed",
|
"保存增值服务历史记录失败": "Failed to save value-added service history record",
|
||||||
"数量参数需为0-99": "Quantity parameter must be between 0 and 99",
|
"更新增值服务失败": "Failed to update value-added service",
|
||||||
"优惠单价需小于等于原价": "The discounted price must be less than or equal to the original price",
|
"查询增值服务列表失败": "Failed to query value-added service list",
|
||||||
"请先创建中文版本增值服务": "Please create the Chinese version value-added service first",
|
"计算价格失败": "Failed to calculate price",
|
||||||
"保存增值服务失败": "Failed to save value-added service",
|
"更新成功": "Update successful",
|
||||||
"保存增值服务历史记录失败": "Failed to save value-added service history record",
|
"保存成功": "Save successful",
|
||||||
"更新增值服务失败": "Failed to update value-added service",
|
"优惠单价转换失败": "Discount unit price conversion failed",
|
||||||
"查询增值服务列表失败": "Failed to query value-added service list",
|
"符号错误": "Symbol error",
|
||||||
"计算价格失败": "Failed to calculate price",
|
"条件存在冲突,请重新设置": "Condition conflict exists, please reconfigure",
|
||||||
"更新成功": "Update successful",
|
"币种已修改,已取消关联部分增值服务": "Currency has been modified, some value-added services have been unlinked",
|
||||||
"保存成功": "Save successful",
|
"币种已修改,已取消关联部分套餐": "Currency has been modified, some packages have been unlinked",
|
||||||
"优惠单价转换失败": "Discount unit price conversion failed",
|
"新增增值服务成功": "Successfully added value-added service",
|
||||||
|
"状态值无效": "Invalid status value",
|
||||||
|
"套餐已上架,请勿重复操作": "Plan is already published, do not repeat the operation",
|
||||||
|
"套餐已下架,请勿重复操作": "Plan is already unpublished, do not repeat the operation",
|
||||||
}
|
}
|
||||||
|
|
||||||
var DeDEMessages = map[string]string{
|
var DeDEMessages = map[string]string{
|
||||||
@ -129,53 +132,56 @@ var DeDEMessages = map[string]string{
|
|||||||
"系统提示:已经发送过,验证码尚可用": "Systemnachricht: Bereits gesendet, Verifizierungscode ist noch verfügbar",
|
"系统提示:已经发送过,验证码尚可用": "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 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",
|
"您的手机号验证码错误,请确认之后注册": "Ihre Telefonnummer Verifizierungscode ist falsch, bitte bestätigen und registrieren",
|
||||||
"手机号不合法": "Telefonnummer ungültig",
|
"手机号不合法": "Telefonnummer ungültig",
|
||||||
"手机号未更改": "Telefonnummer wurde nicht geändert",
|
"手机号未更改": "Telefonnummer wurde nicht geändert",
|
||||||
"新手机号过期": "Neue Telefonnummer abgelaufen",
|
"新手机号过期": "Neue Telefonnummer abgelaufen",
|
||||||
"验证码错误": "Verifizierungscode falsch",
|
"验证码错误": "Verifizierungscode falsch",
|
||||||
"验证码未发送": "Der Verifizierungscode wurde nicht gesendet",
|
"验证码未发送": "Der Verifizierungscode wurde nicht gesendet",
|
||||||
"账号不存在": "Konto existiert nicht",
|
"账号不存在": "Konto existiert nicht",
|
||||||
"已实名": "In echt",
|
"已实名": "In echt",
|
||||||
"实名审核中,请勿重复提交": "Während der Echtheitsprüfung bitte nicht wiederholen",
|
"实名审核中,请勿重复提交": "Während der Echtheitsprüfung bitte nicht wiederholen",
|
||||||
"用户状态异常,无法进行审核": "Der Benutzer ist abnorm und kann nicht geprüft werden. Verfahren",
|
"用户状态异常,无法进行审核": "Der Benutzer ist abnorm und kann nicht geprüft werden. Verfahren",
|
||||||
"验证码已失效": "Der Verifizierungscode ist ungültig",
|
"验证码已失效": "Der Verifizierungscode ist ungültig",
|
||||||
"服务器错误": "Serverfehler",
|
"服务器错误": "Serverfehler",
|
||||||
"验证失败,请控制拼图对齐缺口": "Überprüfung fehlgeschlagen, bitte Steuerung Puzzle-Ausrichtungslücke",
|
"验证失败,请控制拼图对齐缺口": "Überprüfung fehlgeschlagen, bitte Steuerung Puzzle-Ausrichtungslücke",
|
||||||
"滑块验证状态不存在,请退出重试": "Die krümmbestätigung existiert nicht. Bitte beenden sie den vorgang",
|
"滑块验证状态不存在,请退出重试": "Die krümmbestätigung existiert nicht. Bitte beenden sie den vorgang",
|
||||||
"请先实名": "Bitte, nur der name",
|
"语言不能为空": "Sprache darf nicht leer sein",
|
||||||
"实名审核中": "Contest läuft",
|
"排序参数需为正整数": "Sortierparameter muss eine positive ganze Zahl sein",
|
||||||
"实名审核失败": "Die confirmation hat versagt",
|
"请先创建中文版本套餐": "Bitte erstelle das Chinese Version-Paket",
|
||||||
"未知实名状态": "Noch nicht registriert",
|
"增值服务不存在": "Der Werbeangebot existiert nicht",
|
||||||
|
"所选增值服务币种与套餐币种不一致": "Die ausgewählte Währung des Werbeangebots stimmt nicht mit der Währung des Pakets überein",
|
||||||
"语言不能为空": "Sprache darf nicht leer sein",
|
"文件转换失败": "Datei-Umwandlung fehlgeschlagen",
|
||||||
"排序参数需为正整数": "Sortierparameter muss eine positive ganze Zahl sein",
|
"每种增值服务类型只可选择一个": "Jeder Werbeangebotstyp kann nur einmal ausgewählt werden",
|
||||||
"请先创建中文版本套餐": "Bitte erstelle das Chinese Version-Paket",
|
"保存套餐与增值服务关联失败": "Fehler beim Speichern des Pakets mit Werbeangebot",
|
||||||
"增值服务不存在": "Der Werbeangebot existiert nicht",
|
"删除套餐与增值服务关联失败": "Fehler beim Löschen des Pakets mit Werbeangebot",
|
||||||
"所选增值服务币种与套餐币种不一致": "Die ausgewählte Währung des Werbeangebots stimmt nicht mit der Währung des Pakets überein",
|
"查询套餐与增值服务关联失败": "Fehler beim Abrufen des Pakets mit Werbeangebot",
|
||||||
"文件转换失败": "Datei-Umwandlung fehlgeschlagen",
|
"更新套餐与增值服务关联失败": "Fehler beim Aktualisieren des Pakets mit Werbeangebot",
|
||||||
"每种增值服务类型只可选择一个": "Jeder Werbeangebotstyp kann nur einmal ausgewählt werden",
|
"查询增值服务失败": "Fehler beim Abrufen des Werbeangebots",
|
||||||
"保存套餐与增值服务关联失败": "Fehler beim Speichern des Pakets mit Werbeangebot",
|
"更新套餐状态失败": "Fehler beim Aktualisieren des Paketstatus",
|
||||||
"删除套餐与增值服务关联失败": "Fehler beim Löschen des Pakets mit Werbeangebot",
|
"查询增值服务详情失败": "Fehler beim Abrufen der Werbeangebotsdetails",
|
||||||
"查询套餐与增值服务关联失败": "Fehler beim Abrufen des Pakets mit Werbeangebot",
|
"序列化转换失败": "Fehler beim Serialisieren",
|
||||||
"更新套餐与增值服务关联失败": "Fehler beim Aktualisieren des Pakets mit Werbeangebot",
|
"保存套餐历史记录失败": "Fehler beim Speichern des Pakethistorie",
|
||||||
"查询增值服务失败": "Fehler beim Abrufen des Werbeangebots",
|
"原价不能为空": "Der reguläre Preis darf nicht leer sein",
|
||||||
"更新套餐状态失败": "Fehler beim Aktualisieren des Paketstatus",
|
"原价格式转换失败": "Fehler beim Umwandeln des regulären Preises",
|
||||||
"查询增值服务详情失败": "Fehler beim Abrufen der Werbeangebotsdetails",
|
"数量参数需为0-99": "Die Anzahlsmusterparameter muss eine positive ganze Zahl sein",
|
||||||
"序列化转换失败": "Fehler beim Serialisieren",
|
"优惠单价需小于等于原价": "Der Rabattpreis muss kleiner oder gleich dem regulären Preis sein",
|
||||||
"保存套餐历史记录失败": "Fehler beim Speichern des Pakethistorie",
|
"请先创建中文版本增值服务": "Bitte erstelle das Chinese Version-Werbeangebot",
|
||||||
"原价不能为空": "Der reguläre Preis darf nicht leer sein",
|
"保存增值服务失败": "Fehler beim Speichern des Werbeangebots",
|
||||||
"原价格式转换失败": "Fehler beim Umwandeln des regulären Preises",
|
"保存增值服务历史记录失败": "Fehler beim Speichern des Werbeangebots-Historie",
|
||||||
"数量参数需为0-99": "Die Anzahlsmusterparameter muss eine positive ganze Zahl sein",
|
"更新增值服务失败": "Fehler beim Aktualisieren des Werbeangebots",
|
||||||
"优惠单价需小于等于原价": "Der Rabattpreis muss kleiner oder gleich dem regulären Preis sein",
|
"查询增值服务列表失败": "Fehler beim Abrufen der Werbeangebotsliste",
|
||||||
"请先创建中文版本增值服务": "Bitte erstelle das Chinese Version-Werbeangebot",
|
"计算价格失败": "Fehler beim Berechnen des Preises",
|
||||||
"保存增值服务失败": "Fehler beim Speichern des Werbeangebots",
|
"更新成功": "Aktualisierung erfolgreich",
|
||||||
"保存增值服务历史记录失败": "Fehler beim Speichern des Werbeangebots-Historie",
|
"保存成功": "Speichern erfolgreich",
|
||||||
"更新增值服务失败": "Fehler beim Aktualisieren des Werbeangebots",
|
"优惠单价转换失败": "Rabatt-Einzelpreisumrechnung fehlgeschlagen",
|
||||||
"查询增值服务列表失败": "Fehler beim Abrufen der Werbeangebotsliste",
|
"符号错误": "Symbolfehler",
|
||||||
"计算价格失败": "Fehler beim Berechnen des Preises",
|
"条件存在冲突,请重新设置": "Bedingungskonflikt vorhanden, bitte neu konfigurieren",
|
||||||
"更新成功": "Aktualisierung erfolgreich",
|
"币种已修改,已取消关联部分增值服务": "Währung wurde geändert, einige Mehrwertdienste wurden getrennt",
|
||||||
"保存成功": "Speichern erfolgreich",
|
"币种已修改,已取消关联部分套餐": "Währung wurde geändert, einige Pakete wurden getrennt",
|
||||||
"优惠单价转换失败": "Rabatt-Einzelpreisumrechnung fehlgeschlagen",
|
"新增增值服务成功": "Mehrwertdienst erfolgreich hinzugefügt",
|
||||||
|
"状态值无效": "Ungültiger Statuswert",
|
||||||
|
"套餐已上架,请勿重复操作": "Paket ist bereits veröffentlicht, bitte nicht wiederholen",
|
||||||
|
"套餐已下架,请勿重复操作": "Paket ist bereits zurückgezogen, bitte nicht wiederholen",
|
||||||
}
|
}
|
||||||
|
|
||||||
var JaJPMessages = map[string]string{
|
var JaJPMessages = map[string]string{
|
||||||
@ -227,40 +233,44 @@ var JaJPMessages = map[string]string{
|
|||||||
"服务器错误": "サーバーエラー",
|
"服务器错误": "サーバーエラー",
|
||||||
"验证失败,请控制拼图对齐缺口": "検証に失敗しました。パズルの整列ギャップを制御してください",
|
"验证失败,请控制拼图对齐缺口": "検証に失敗しました。パズルの整列ギャップを制御してください",
|
||||||
"滑块验证状态不存在,请退出重试": "スライダー検証状態が存在しません,リトライをログアウトしてください",
|
"滑块验证状态不存在,请退出重试": "スライダー検証状態が存在しません,リトライをログアウトしてください",
|
||||||
"请先实名": "まずは実名でお願いします",
|
|
||||||
"实名审核中": "実名審査中です",
|
|
||||||
"实名审核失败": "実名検証失敗です",
|
|
||||||
"未知实名状态": "未知の実名状態です",
|
|
||||||
|
|
||||||
"语言不能为空": "言語が空です",
|
"语言不能为空": "言語が空です",
|
||||||
"排序参数需为正整数": "ソートパラメーターは正の整数でなければなりません",
|
"排序参数需为正整数": "ソートパラメーターは正の整数でなければなりません",
|
||||||
"请先创建中文版本套餐": "最初に中国語バージョンのパッケージを作成してください",
|
"请先创建中文版本套餐": "最初に中国語バージョンのパッケージを作成してください",
|
||||||
"增值服务不存在": "付加サービスは存在しません",
|
"增值服务不存在": "付加サービスは存在しません",
|
||||||
"所选增值服务币种与套餐币种不一致": "選択した付加サービスの通貨とパッケージの通貨が一致しません",
|
"所选增值服务币种与套餐币种不一致": "選択した付加サービスの通貨とパッケージの通貨が一致しません",
|
||||||
"文件转换失败": "ファイル変換に失敗しました",
|
"文件转换失败": "ファイル変換に失敗しました",
|
||||||
"每种增值服务类型只可选择一个": "各種付加サービスタイプは一つしか選択できません",
|
"每种增值服务类型只可选择一个": "各種付加サービスタイプは一つしか選択できません",
|
||||||
"保存套餐与增值服务关联失败": "パッケージと付加サービスの関連付けの保存に失敗しました",
|
"保存套餐与增值服务关联失败": "パッケージと付加サービスの関連付けの保存に失敗しました",
|
||||||
"删除套餐与增值服务关联失败": "パッケージと付加サービスの関連付けの削除に失敗しました",
|
"删除套餐与增值服务关联失败": "パッケージと付加サービスの関連付けの削除に失敗しました",
|
||||||
"查询套餐与增值服务关联失败": "パッケージと付加サービスの関連付けの検索に失敗しました",
|
"查询套餐与增值服务关联失败": "パッケージと付加サービスの関連付けの検索に失敗しました",
|
||||||
"更新套餐与增值服务关联失败": "パッケージと付加サービスの関連付けの更新に失敗しました",
|
"更新套餐与增值服务关联失败": "パッケージと付加サービスの関連付けの更新に失敗しました",
|
||||||
"查询增值服务失败": "付加サービスの検索に失敗しました",
|
"查询增值服务失败": "付加サービスの検索に失敗しました",
|
||||||
"更新套餐状态失败": "パッケージステータスの更新に失敗しました",
|
"更新套餐状态失败": "パッケージステータスの更新に失敗しました",
|
||||||
"查询增值服务详情失败": "付加サービスの詳細検索に失敗しました",
|
"查询增值服务详情失败": "付加サービスの詳細検索に失敗しました",
|
||||||
"序列化转换失败": "シリアライズ変換に失敗しました",
|
"序列化转换失败": "シリアライズ変換に失敗しました",
|
||||||
"保存套餐历史记录失败": "パッケージ履歴の保存に失敗しました",
|
"保存套餐历史记录失败": "パッケージ履歴の保存に失敗しました",
|
||||||
"原价不能为空": "原価は空にできません",
|
"原价不能为空": "原価は空にできません",
|
||||||
"原价格式转换失败": "原価のフォーマット変換に失敗しました",
|
"原价格式转换失败": "原価のフォーマット変換に失敗しました",
|
||||||
"数量参数需为0-99": "数量パラメーターは0-99でなければなりません",
|
"数量参数需为0-99": "数量パラメーターは0-99でなければなりません",
|
||||||
"优惠单价需小于等于原价": "割引単価は原価以下でなければなりません",
|
"优惠单价需小于等于原价": "割引単価は原価以下でなければなりません",
|
||||||
"请先创建中文版本增值服务": "最初に中国語バージョンの付加サービスを作成してください",
|
"请先创建中文版本增值服务": "最初に中国語バージョンの付加サービスを作成してください",
|
||||||
"保存增值服务失败": "付加サービスの保存に失敗しました",
|
"保存增值服务失败": "付加サービスの保存に失敗しました",
|
||||||
"保存增值服务历史记录失败": "付加サービス履歴の保存に失敗しました",
|
"保存增值服务历史记录失败": "付加サービス履歴の保存に失敗しました",
|
||||||
"更新增值服务失败": "付加サービスの更新に失敗しました",
|
"更新增值服务失败": "付加サービスの更新に失敗しました",
|
||||||
"查询增值服务列表失败": "付加サービスリストの検索に失敗しました",
|
"查询增值服务列表失败": "付加サービスリストの検索に失敗しました",
|
||||||
"计算价格失败": "価格計算に失敗しました",
|
"计算价格失败": "価格計算に失敗しました",
|
||||||
"更新成功": "更新が成功しました",
|
"更新成功": "更新が成功しました",
|
||||||
"保存成功": "保存が成功しました",
|
"保存成功": "保存が成功しました",
|
||||||
"优惠单价转换失败": "割引単価変換に失敗しました",
|
"优惠单价转换失败": "割引単価変換に失敗しました",
|
||||||
|
"符号错误": "記号エラー",
|
||||||
|
"条件存在冲突,请重新设置": "条件が競合しています、再設定してください",
|
||||||
|
"币种已修改,已取消关联部分增值服务": "通貨が変更され、一部の付加サービスの関連付けが解除されました",
|
||||||
|
"币种已修改,已取消关联部分套餐": "通貨が変更され、一部のパッケージの関連付けが解除されました",
|
||||||
|
"新增增值服务成功": "付加サービスの追加に成功しました",
|
||||||
|
"状态值无效": "状態値が無効です",
|
||||||
|
"套餐已上架,请勿重复操作": "プランはすでに公開済みです、重複操作は避けてください",
|
||||||
|
"套餐已下架,请勿重复操作": "プランはすでに非公開です、重複操作は避けてください",
|
||||||
}
|
}
|
||||||
|
|
||||||
var ZhTWMessages = map[string]string{
|
var ZhTWMessages = map[string]string{
|
||||||
@ -312,42 +322,42 @@ var ZhTWMessages = map[string]string{
|
|||||||
"服务器错误": "服務器錯誤",
|
"服务器错误": "服務器錯誤",
|
||||||
"验证失败,请控制拼图对齐缺口": "驗證失敗,請控制拼圖對齊缺口",
|
"验证失败,请控制拼图对齐缺口": "驗證失敗,請控制拼圖對齊缺口",
|
||||||
"滑块验证状态不存在,请退出重试": "滑塊驗證狀態不存在,請退出重試",
|
"滑块验证状态不存在,请退出重试": "滑塊驗證狀態不存在,請退出重試",
|
||||||
"请先实名": "請先實名",
|
|
||||||
"实名审核中": "實名審覈中",
|
|
||||||
"实名审核失败": "實名審覈失敗",
|
|
||||||
"未知实名状态": "未知實名狀態",
|
|
||||||
"已存在标题相同的数据": "已存在標題相同的數據",
|
|
||||||
"展示数量不能超过5个": "展示數量不能超過5個",
|
|
||||||
"查询失败": "查詢失敗",
|
|
||||||
"操作失败": "操作失敗",
|
|
||||||
|
|
||||||
"语言不能为空": "語言不能為空",
|
"语言不能为空": "語言不能為空",
|
||||||
"排序参数需为正整数": "排序參數需為正整數",
|
"排序参数需为正整数": "排序參數需為正整數",
|
||||||
"请先创建中文版本套餐": "請先建立中文版本套餐",
|
"请先创建中文版本套餐": "請先建立中文版本套餐",
|
||||||
"增值服务不存在": "增值服務不存在",
|
"增值服务不存在": "增值服務不存在",
|
||||||
"所选增值服务币种与套餐币种不一致": "所選增值服務幣種與套餐幣種不一致",
|
"所选增值服务币种与套餐币种不一致": "所選增值服務幣種與套餐幣種不一致",
|
||||||
"文件转换失败": "文件轉換失敗",
|
"文件转换失败": "文件轉換失敗",
|
||||||
"每种增值服务类型只可选择一个": "每種增值服務類型只可選擇一個",
|
"每种增值服务类型只可选择一个": "每種增值服務類型只可選擇一個",
|
||||||
"保存套餐与增值服务关联失败": "保存套餐與增值服務關聯失敗",
|
"保存套餐与增值服务关联失败": "保存套餐與增值服務關聯失敗",
|
||||||
"删除套餐与增值服务关联失败": "刪除套餐與增值服務關聯失敗",
|
"删除套餐与增值服务关联失败": "刪除套餐與增值服務關聯失敗",
|
||||||
"查询套餐与增值服务关联失败": "查詢套餐與增值服務關聯失敗",
|
"查询套餐与增值服务关联失败": "查詢套餐與增值服務關聯失敗",
|
||||||
"更新套餐与增值服务关联失败": "更新套餐與增值服務關聯失敗",
|
"更新套餐与增值服务关联失败": "更新套餐與增值服務關聯失敗",
|
||||||
"查询增值服务失败": "查詢增值服務失敗",
|
"查询增值服务失败": "查詢增值服務失敗",
|
||||||
"更新套餐状态失败": "更新套餐狀態失敗",
|
"更新套餐状态失败": "更新套餐狀態失敗",
|
||||||
"查询增值服务详情失败": "查詢增值服務詳情失敗",
|
"查询增值服务详情失败": "查詢增值服務詳情失敗",
|
||||||
"序列化转换失败": "序列化轉換失敗",
|
"序列化转换失败": "序列化轉換失敗",
|
||||||
"保存套餐历史记录失败": "保存套餐歷史記錄失敗",
|
"保存套餐历史记录失败": "保存套餐歷史記錄失敗",
|
||||||
"原价不能为空": "原價不能為空",
|
"原价不能为空": "原價不能為空",
|
||||||
"原价格式转换失败": "原價格式轉換失敗",
|
"原价格式转换失败": "原價格式轉換失敗",
|
||||||
"数量参数需为0-99": "數量參數需為0-99",
|
"数量参数需为0-99": "數量參數需為0-99",
|
||||||
"优惠单价需小于等于原价": "優惠單價需小於等於原價",
|
"优惠单价需小于等于原价": "優惠單價需小於等於原價",
|
||||||
"请先创建中文版本增值服务": "請先建立中文版本增值服務",
|
"请先创建中文版本增值服务": "請先建立中文版本增值服務",
|
||||||
"保存增值服务失败": "保存增值服務失敗",
|
"保存增值服务失败": "保存增值服務失敗",
|
||||||
"保存增值服务历史记录失败": "保存增值服務歷史記錄失敗",
|
"保存增值服务历史记录失败": "保存增值服務歷史記錄失敗",
|
||||||
"更新增值服务失败": "更新增值服務失敗",
|
"更新增值服务失败": "更新增值服務失敗",
|
||||||
"查询增值服务列表失败": "查詢增值服務列表失敗",
|
"查询增值服务列表失败": "查詢增值服務列表失敗",
|
||||||
"计算价格失败": "計算價格失敗",
|
"计算价格失败": "計算價格失敗",
|
||||||
"更新成功": "更新成功",
|
"更新成功": "更新成功",
|
||||||
"保存成功": "儲存成功",
|
"保存成功": "儲存成功",
|
||||||
"优惠单价转换失败": "優惠單價轉換失敗",
|
"优惠单价转换失败": "優惠單價轉換失敗",
|
||||||
|
"符号错误": "符號錯誤",
|
||||||
|
"条件存在冲突,请重新设置": "條件存在衝突,請重新設定",
|
||||||
|
"币种已修改,已取消关联部分增值服务": "幣種已修改,已取消關聯部分增值服務",
|
||||||
|
"币种已修改,已取消关联部分套餐": "幣種已修改,已取消關聯部分套餐",
|
||||||
|
"新增增值服务成功": "新增增值服務成功",
|
||||||
|
"状态值无效": "狀態值無效",
|
||||||
|
"套餐已上架,请勿重复操作": "套餐已上架,請勿重複操作",
|
||||||
|
"套餐已下架,请勿重复操作": "套餐已下架,請勿重複操作",
|
||||||
}
|
}
|
||||||
|
@ -21,8 +21,9 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
ErrNotLogin = "请先登录"
|
ErrNotLogin = "请先登录"
|
||||||
ErrOffline = "您已经下线"
|
ErrOffline = "您已经下线"
|
||||||
|
InvalidStatus = "状态非法"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
54
pkg/logger/zap_logger.go
Normal file
54
pkg/logger/zap_logger.go
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
package logger
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fonchain-fiee/cmd/config"
|
||||||
|
"github.com/natefinch/lumberjack"
|
||||||
|
"go.uber.org/zap"
|
||||||
|
"go.uber.org/zap/zapcore"
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
|
func LogInit(appConfig *config.Config) *zap.Logger {
|
||||||
|
var err error
|
||||||
|
writeSyncer := getLogWriter(appConfig.ZapLog.Filename, appConfig.ZapLog.MaxSize, appConfig.ZapLog.MaxBackups, appConfig.ZapLog.MaxAge)
|
||||||
|
encoder := getEncoder()
|
||||||
|
var l = new(zapcore.Level)
|
||||||
|
err = l.UnmarshalText([]byte(appConfig.ZapLog.Level))
|
||||||
|
if err != nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
var core zapcore.Core
|
||||||
|
//if appConfig.System.Mode == "dev" {
|
||||||
|
// 进入开发模式,日志输出到终端
|
||||||
|
consoleEncoder := zapcore.NewConsoleEncoder(zap.NewDevelopmentEncoderConfig())
|
||||||
|
core = zapcore.NewTee(
|
||||||
|
zapcore.NewCore(encoder, writeSyncer, l),
|
||||||
|
zapcore.NewCore(consoleEncoder, zapcore.Lock(os.Stdout), zapcore.DebugLevel),
|
||||||
|
)
|
||||||
|
//} else {
|
||||||
|
// core = zapcore.NewCore(encoder, writeSyncer, l)
|
||||||
|
//}
|
||||||
|
lg := zap.New(core, zap.AddCaller())
|
||||||
|
zap.ReplaceGlobals(lg)
|
||||||
|
return lg
|
||||||
|
}
|
||||||
|
|
||||||
|
func getEncoder() zapcore.Encoder {
|
||||||
|
encoderConfig := zap.NewProductionEncoderConfig()
|
||||||
|
encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
|
||||||
|
encoderConfig.TimeKey = "time"
|
||||||
|
encoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder
|
||||||
|
encoderConfig.EncodeDuration = zapcore.SecondsDurationEncoder
|
||||||
|
encoderConfig.EncodeCaller = zapcore.ShortCallerEncoder
|
||||||
|
return zapcore.NewJSONEncoder(encoderConfig)
|
||||||
|
}
|
||||||
|
|
||||||
|
func getLogWriter(filename string, maxSize, maxBackup, maxAge int) zapcore.WriteSyncer {
|
||||||
|
lumberJackLogger := &lumberjack.Logger{
|
||||||
|
Filename: filename,
|
||||||
|
MaxSize: maxSize,
|
||||||
|
MaxBackups: maxBackup,
|
||||||
|
MaxAge: maxAge,
|
||||||
|
}
|
||||||
|
return zapcore.AddSync(lumberJackLogger)
|
||||||
|
}
|
@ -29,12 +29,12 @@ func Cors() gin.HandlerFunc {
|
|||||||
c.Header("Access-Control-Allow-Origin", "*") // 这是允许访问所有域
|
c.Header("Access-Control-Allow-Origin", "*") // 这是允许访问所有域
|
||||||
c.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE,UPDATE") //服务器支持的所有跨域请求的方法,为了避免浏览次请求的多次'预检'请求
|
c.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE,UPDATE") //服务器支持的所有跨域请求的方法,为了避免浏览次请求的多次'预检'请求
|
||||||
// header的类型
|
// header的类型
|
||||||
c.Header("Access-Control-Allow-Headers", "Authorization, Content-Length, X-CSRF-Token, Token, tokenC, session,X_Requested_With,Accept, Origin, Host, Connection, Accept-Encoding, Accept-Language,DNT, X-CustomHeader, Keep-Alive, User-Agent, X-Requested-With, If-Modified-Since, Cache-Control, Content-Type, Pragma")
|
c.Header("Access-Control-Allow-Headers", "Authorization, Content-Length, X-CSRF-Token, Token, tokenC, session,X_Requested_With,Accept, Origin, Host, Connection, Accept-Encoding, Accept-Language,DNT, X-CustomHeader, Keep-Alive, User-Agent, X-Requested-With, If-Modified-Since, Cache-Control, Content-Type, Pragma, Upload-Offset")
|
||||||
// 允许跨域设置 可以返回其他子段
|
// 允许跨域设置 可以返回其他子段
|
||||||
c.Header("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers,Cache-Control,Content-Language,Content-Type,Expires,Last-Modified,Pragma,FooBar") // 跨域关键设置 让浏览器可以解析
|
c.Header("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers,Cache-Control,Content-Language,Content-Type,Expires,Last-Modified,Pragma,FooBar") // 跨域关键设置 让浏览器可以解析
|
||||||
c.Header("Access-Control-Max-Age", "172800") // 缓存请求信息 单位为秒
|
c.Header("Access-Control-Max-Age", "172800") // 缓存请求信息 单位为秒
|
||||||
c.Header("Access-Control-Allow-Credentials", "false") // 跨域请求是否需要带cookie信息 默认设置为true
|
c.Header("Access-Control-Allow-Credentials", "false") // 跨域请求是否需要带cookie信息 默认设置为true
|
||||||
c.Set("content-type", "application/json")
|
c.Set("content-type", c.ContentType())
|
||||||
//c.Header("Access-Control-Allow-Credentials", "true") // 跨域请求是否需要带cookie信息 默认设置为true
|
//c.Header("Access-Control-Allow-Credentials", "true") // 跨域请求是否需要带cookie信息 默认设置为true
|
||||||
//c.Header("Access-Control-Request-Private-Network", "true") // 跨域请求是否需要带cookie信息 默认设置为true
|
//c.Header("Access-Control-Request-Private-Network", "true") // 跨域请求是否需要带cookie信息 默认设置为true
|
||||||
//c.Header("Access-Control-Allow-Private-Network", "true") // 设置返回格式是json
|
//c.Header("Access-Control-Allow-Private-Network", "true") // 设置返回格式是json
|
||||||
|
@ -21,4 +21,5 @@ type Item struct {
|
|||||||
ID int `json:"ID"`
|
ID int `json:"ID"`
|
||||||
Domain string `json:"Domain"`
|
Domain string `json:"Domain"`
|
||||||
Status int `json:"Status"`
|
Status int `json:"Status"`
|
||||||
|
Reply string `json:"Reply"`
|
||||||
}
|
}
|
||||||
|
10
pkg/model/cast/media.go
Normal file
10
pkg/model/cast/media.go
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
package cast
|
||||||
|
|
||||||
|
type BalanceTypeEnum int32
|
||||||
|
|
||||||
|
// 定义枚举值
|
||||||
|
const (
|
||||||
|
BalanceTypeAccountValue BalanceTypeEnum = 1
|
||||||
|
BalanceTypeImageValue BalanceTypeEnum = 2
|
||||||
|
BalanceTypeVideoValue BalanceTypeEnum = 3
|
||||||
|
)
|
11
pkg/model/cast/work.go
Normal file
11
pkg/model/cast/work.go
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
package cast
|
||||||
|
|
||||||
|
const (
|
||||||
|
WorkStatusPending = 1 // 待提交
|
||||||
|
WorkStatusReviewing = 2 // 审核中
|
||||||
|
WorkStatusReviewFailed = 3 // 审核失败
|
||||||
|
WorkStatusArtistConfirming = 4 // 待艺人确认
|
||||||
|
WorkStatusArtistRejected = 5 // 艺人驳回
|
||||||
|
WorkStatusPublishSuccess = 6 // 发布成功
|
||||||
|
WorkStatusPublishFailed = 7 // 发布失败
|
||||||
|
)
|
5
pkg/model/query/cast.go
Normal file
5
pkg/model/query/cast.go
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
package query
|
||||||
|
|
||||||
|
type RemindReq struct {
|
||||||
|
WorkUuid string `json:"workUuid"`
|
||||||
|
}
|
@ -12,6 +12,7 @@ func BundleRouter(r *gin.RouterGroup) {
|
|||||||
bundleRoute := r.Group("bundle")
|
bundleRoute := r.Group("bundle")
|
||||||
bundleRoute.Use(middleware.CheckWebLogin(service.AccountProvider))
|
bundleRoute.Use(middleware.CheckWebLogin(service.AccountProvider))
|
||||||
bundleAppRoute := r.Group("bundle")
|
bundleAppRoute := r.Group("bundle")
|
||||||
|
bundleAppNoAuthRoute := r.Group("bundle")
|
||||||
bundleAppRoute.Use(middleware.CheckLogin(service.AccountFieeProvider))
|
bundleAppRoute.Use(middleware.CheckLogin(service.AccountFieeProvider))
|
||||||
// 套餐
|
// 套餐
|
||||||
{
|
{
|
||||||
@ -47,7 +48,6 @@ func BundleRouter(r *gin.RouterGroup) {
|
|||||||
}
|
}
|
||||||
bundleAppRouteV2 := bundleAppRoute.Group("app/system/v2")
|
bundleAppRouteV2 := bundleAppRoute.Group("app/system/v2")
|
||||||
{
|
{
|
||||||
bundleAppRouteV2.POST("bundle-list", bundle.BundleListH5V2)
|
|
||||||
bundleAppRouteV2.POST("bundle-detail", bundle.BundleDetailV2)
|
bundleAppRouteV2.POST("bundle-detail", bundle.BundleDetailV2)
|
||||||
bundleAppRouteV2.POST("add-value/only", bundle.OnlyAddValueListByOrderNo)
|
bundleAppRouteV2.POST("add-value/only", bundle.OnlyAddValueListByOrderNo)
|
||||||
|
|
||||||
@ -58,7 +58,10 @@ func BundleRouter(r *gin.RouterGroup) {
|
|||||||
bundleAppRoute.POST("work-detail", bundle.GetWorkDetail)
|
bundleAppRoute.POST("work-detail", bundle.GetWorkDetail)
|
||||||
bundleAppRoute.POST("work-confirm", bundle.WorkConfirm)
|
bundleAppRoute.POST("work-confirm", bundle.WorkConfirm)
|
||||||
}
|
}
|
||||||
|
bundleAppNoAuthRouteV2 := bundleAppNoAuthRoute.Group("app/system/v2")
|
||||||
|
{
|
||||||
|
bundleAppNoAuthRouteV2.POST("bundle-list", bundle.BundleListH5V2)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,7 @@ func MediaRouter(r *gin.RouterGroup) {
|
|||||||
mediaNoLogin := r.Group("media")
|
mediaNoLogin := r.Group("media")
|
||||||
{
|
{
|
||||||
mediaNoLogin.GET("oauth2callback", serviceCast.OAuth2Callback)
|
mediaNoLogin.GET("oauth2callback", serviceCast.OAuth2Callback)
|
||||||
|
mediaNoLogin.GET("test", serviceCast.Test)
|
||||||
}
|
}
|
||||||
|
|
||||||
work := auth.Group("work")
|
work := auth.Group("work")
|
||||||
@ -32,5 +33,7 @@ func MediaRouter(r *gin.RouterGroup) {
|
|||||||
work.POST("list", serviceCast.WorkList)
|
work.POST("list", serviceCast.WorkList)
|
||||||
work.POST("detail", serviceCast.WorkDetail)
|
work.POST("detail", serviceCast.WorkDetail)
|
||||||
work.POST("republish", serviceCast.RePublish)
|
work.POST("republish", serviceCast.RePublish)
|
||||||
|
work.POST("delete", serviceCast.DelWork)
|
||||||
|
work.POST("remind", serviceCast.Remind)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ import (
|
|||||||
"fonchain-fiee/api/bundle"
|
"fonchain-fiee/api/bundle"
|
||||||
"fonchain-fiee/api/cast"
|
"fonchain-fiee/api/cast"
|
||||||
"fonchain-fiee/pkg/service"
|
"fonchain-fiee/pkg/service"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
bundleModel "fonchain-fiee/pkg/model/bundle"
|
bundleModel "fonchain-fiee/pkg/model/bundle"
|
||||||
"fonchain-fiee/pkg/model/login"
|
"fonchain-fiee/pkg/model/login"
|
||||||
@ -15,7 +16,11 @@ import (
|
|||||||
|
|
||||||
func BundleExtend(c *gin.Context) {
|
func BundleExtend(c *gin.Context) {
|
||||||
var req bundle.BundleExtendRequest
|
var req bundle.BundleExtendRequest
|
||||||
req.Type = 1 // 设置未手动扩展
|
userInfo := login.GetUserInfoFromC(c)
|
||||||
|
req.Type = 1 // 设置未手动扩展'
|
||||||
|
req.OperatorName = userInfo.Name
|
||||||
|
req.OperatorPhoneNumber = userInfo.TelNum
|
||||||
|
req.OperatorId = userInfo.ID
|
||||||
if err := c.ShouldBindJSON(&req); err != nil {
|
if err := c.ShouldBindJSON(&req); err != nil {
|
||||||
service.Error(c, err)
|
service.Error(c, err)
|
||||||
return
|
return
|
||||||
@ -123,6 +128,8 @@ func GetToBeComfirmedWorks(c *gin.Context) {
|
|||||||
service.Error(c, err)
|
service.Error(c, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
userInfo := login.GetUserInfoFromC(c)
|
||||||
|
req.ArtistUuid = strconv.Itoa(int(userInfo.ID))
|
||||||
res, err := service.BundleProvider.ToBeComfirmedWorks(context.Background(), &req)
|
res, err := service.BundleProvider.ToBeComfirmedWorks(context.Background(), &req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
service.Error(c, err)
|
service.Error(c, err)
|
||||||
|
@ -246,7 +246,7 @@ func CreateBundleOrderSignature(c *gin.Context) {
|
|||||||
service.Error(c, errors.New(common.ThereAreOutstandingOrders))
|
service.Error(c, errors.New(common.ThereAreOutstandingOrders))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if orderInfo.CustomerID == strconv.FormatUint(userInfo.ID, 10) && orderInfo.ExpirationTime > time.Now().Format("2006-01-02") {
|
if orderInfo.CustomerID == strconv.FormatUint(userInfo.ID, 10) && orderInfo.ExpirationTime > time.Now().Format("2006-01-02 15:04:05") {
|
||||||
service.Error(c, errors.New(common.HadOrder))
|
service.Error(c, errors.New(common.HadOrder))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -271,9 +271,10 @@ func CreateBundleOrderSignature(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
// 获取 套餐信息
|
// 获取 套餐信息
|
||||||
bundleDetailReq := &bundle.BundleDetailRequest{
|
bundleDetailReq := &bundle.BundleDetailRequest{
|
||||||
Uuid: req.BundleUuid,
|
Uuid: req.BundleUuid,
|
||||||
|
Language: req.Language,
|
||||||
}
|
}
|
||||||
bundleDetail, detailErr := service.BundleProvider.BundleDetail(context.Background(), bundleDetailReq)
|
bundleDetail, detailErr := service.BundleProvider.BundleLangDetailV2(context.Background(), bundleDetailReq)
|
||||||
if detailErr != nil {
|
if detailErr != nil {
|
||||||
service.Error(c, detailErr)
|
service.Error(c, detailErr)
|
||||||
return
|
return
|
||||||
@ -319,7 +320,7 @@ func CreateBundleOrderSignature(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 当前 未将 签名 写入合同中 todo 金额和有效时间待修改
|
// 当前 未将 签名 写入合同中 todo 金额和有效时间待修改
|
||||||
signContract, signContractErr := logic.SignContractV2(req.CustomerNum, bundleDetail.Bundle.Contract, addTotalPrice, expirationDay)
|
signContract, signContractErr := logic.SignContractV2(req.CustomerNum, bundleDetail.Contract, addTotalPrice, expirationDay)
|
||||||
if signContractErr != nil {
|
if signContractErr != nil {
|
||||||
service.Error(c, signContractErr)
|
service.Error(c, signContractErr)
|
||||||
return
|
return
|
||||||
@ -327,11 +328,11 @@ func CreateBundleOrderSignature(c *gin.Context) {
|
|||||||
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)
|
||||||
req.BundleName = bundleDetail.Bundle.Name
|
req.BundleName = bundleDetail.Name
|
||||||
req.Amount = bundleDetail.Bundle.Price
|
req.Amount = bundleDetail.Price
|
||||||
req.AmountType = bundleDetail.Bundle.PriceType
|
req.AmountType = bundleDetail.PriceType
|
||||||
req.BundleCommonUid = bundleDetail.Bundle.BundleCommonUid
|
//req.BundleCommonUid = bundleDetail.BundleCommonUid
|
||||||
req.TotalAmount = bundleDetail.Bundle.Price + addTotalPrice
|
req.TotalAmount = bundleDetail.Price + addTotalPrice
|
||||||
req.ContractNo = common.GenerateContractNo(lastContractNo)
|
req.ContractNo = common.GenerateContractNo(lastContractNo)
|
||||||
req.SignContract = signContract
|
req.SignContract = signContract
|
||||||
req.SignedTime = common.GetBeijingTime()
|
req.SignedTime = common.GetBeijingTime()
|
||||||
|
@ -167,6 +167,26 @@ func CreateAntomPay(c *gin.Context) {
|
|||||||
// 检查 订单信息 type是1说明既有主套餐又有增值服务
|
// 检查 订单信息 type是1说明既有主套餐又有增值服务
|
||||||
detail, detailErr := service.BundleProvider.OrderRecordsDetail(context.Background(), &bundle.OrderRecordsDetailRequest{
|
detail, detailErr := service.BundleProvider.OrderRecordsDetail(context.Background(), &bundle.OrderRecordsDetailRequest{
|
||||||
OrderNo: req.OutTradeNo,
|
OrderNo: req.OutTradeNo,
|
||||||
|
////金额校验
|
||||||
|
//orderAmountInCents := int64(math.Round(float64(detail.OrderRecord.TotalAmount * 100)))
|
||||||
|
//reqAmountInCents := int64(math.Round(float64(req.ProductAllPrice)))
|
||||||
|
//if orderAmountInCents != reqAmountInCents {
|
||||||
|
// fmt.Println("orderAmountInCents :", orderAmountInCents)
|
||||||
|
// fmt.Println("reqAmountInCents :", reqAmountInCents)
|
||||||
|
// fmt.Println("111111111111111111111111111111111111")
|
||||||
|
// service.Error(c, errors.New(common.InvalidOrderAmount))
|
||||||
|
// return
|
||||||
|
//}
|
||||||
|
//
|
||||||
|
//fmt.Println("detail.OrderRecord.Status :", detail.OrderRecord.Status)
|
||||||
|
//fmt.Println("detail.OrderRecord.CheckoutSessionId :", detail.OrderRecord.CheckoutSessionId)
|
||||||
|
//fmt.Println("detail.OrderRecord.PayTime :", detail.OrderRecord.PayTime)
|
||||||
|
//
|
||||||
|
//// 如果 当前订单 是 已签未支付 且 存在 checkoutSessionId 需要 查询 支付结果
|
||||||
|
//if detail.OrderRecord.Status == bundleModel.OrderSigned && detail.OrderRecord.CheckoutSessionId != "" && detail.OrderRecord.PayTime == "" {
|
||||||
|
// // 查询支付结果
|
||||||
|
// stripeInfosRes, stripeInfosErr := service.PaymentProvider.QueryAntomPayByCheckoutSessionId(context.Background(), &payment.AntomPayQueryRequest{
|
||||||
|
// CheckoutSessionIds: []string{detail.OrderRecord.CheckoutSessionId},
|
||||||
})
|
})
|
||||||
if detailErr != nil {
|
if detailErr != nil {
|
||||||
fmt.Println("=============== antom创建支付,查询主订单信息报错:", detailErr)
|
fmt.Println("=============== antom创建支付,查询主订单信息报错:", detailErr)
|
||||||
@ -234,9 +254,11 @@ func CreateAntomPay(c *gin.Context) {
|
|||||||
fmt.Println("detail.OrderRecord.TotalAmount*100 :", detail.OrderRecord.TotalAmount*100)
|
fmt.Println("detail.OrderRecord.TotalAmount*100 :", detail.OrderRecord.TotalAmount*100)
|
||||||
|
|
||||||
//金额校验
|
//金额校验
|
||||||
orderAmountInCents := int64(math.Round(float64(detail.OrderRecord.TotalAmount * 100)))
|
orderAmountInCents := int64(math.Round(float64(detail.OrderRecord.TotalAmount) * 100))
|
||||||
reqAmountInCents := int64(math.Round(float64(req.ProductAllPrice)))
|
reqAmountInCents := req.ProductAllPrice
|
||||||
if orderAmountInCents != reqAmountInCents {
|
if orderAmountInCents != reqAmountInCents {
|
||||||
|
fmt.Println("orderAmountInCents :", orderAmountInCents)
|
||||||
|
fmt.Println("reqAmountInCents :", reqAmountInCents)
|
||||||
fmt.Println("111111111111111111111111111111111111")
|
fmt.Println("111111111111111111111111111111111111")
|
||||||
service.Error(c, errors.New(common.InvalidOrderAmount))
|
service.Error(c, errors.New(common.InvalidOrderAmount))
|
||||||
return
|
return
|
||||||
@ -304,21 +326,18 @@ func CreateAntomPay(c *gin.Context) {
|
|||||||
|
|
||||||
orderAmountInCents := int64(0.0)
|
orderAmountInCents := int64(0.0)
|
||||||
for _, info := range res.AddBundleInfos {
|
for _, info := range res.AddBundleInfos {
|
||||||
temp := int64(math.Round(float64(info.Amount * 100)))
|
temp := int64(math.Round(float64(info.Amount) * 100))
|
||||||
orderAmountInCents += temp
|
orderAmountInCents += temp
|
||||||
}
|
}
|
||||||
if orderAmountInCents == 0 {
|
|
||||||
fmt.Println("子套餐金额加起来是0,orderAmountInCents:", orderAmountInCents)
|
|
||||||
service.Error(c, errors.New(common.InvalidOrderAmount))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt.Println("orderAmountInCents :", orderAmountInCents)
|
fmt.Println("orderAmountInCents :", orderAmountInCents)
|
||||||
fmt.Println("req.ProductAllPrice :", req.ProductAllPrice)
|
fmt.Println("req.ProductAllPrice :", req.ProductAllPrice)
|
||||||
|
|
||||||
//金额校验
|
//金额校验
|
||||||
reqAmountInCents := int64(math.Round(float64(req.ProductAllPrice)))
|
reqAmountInCents := req.ProductAllPrice
|
||||||
if orderAmountInCents != reqAmountInCents {
|
if orderAmountInCents != reqAmountInCents {
|
||||||
|
fmt.Println("orderAmountInCents :", orderAmountInCents)
|
||||||
|
fmt.Println("reqAmountInCents :", reqAmountInCents)
|
||||||
fmt.Println("111111111111111111111111111111111111")
|
fmt.Println("111111111111111111111111111111111111")
|
||||||
service.Error(c, errors.New(common.InvalidOrderAmount))
|
service.Error(c, errors.New(common.InvalidOrderAmount))
|
||||||
return
|
return
|
||||||
@ -364,12 +383,12 @@ func CreateAntomPay(c *gin.Context) {
|
|||||||
case common.OrderTypePackage:
|
case common.OrderTypePackage:
|
||||||
//如果是购买套餐 1:创建新的余量信息CreateBundleBalance 2 添加扩展记录BundleExtend
|
//如果是购买套餐 1:创建新的余量信息CreateBundleBalance 2 添加扩展记录BundleExtend
|
||||||
_, err = service.BundleProvider.CreateBundleBalance(context.Background(), &bundle.CreateBundleBalanceReq{
|
_, err = service.BundleProvider.CreateBundleBalance(context.Background(), &bundle.CreateBundleBalanceReq{
|
||||||
UserId: int32(orderLimit.UserId),
|
UserId: int32(orderLimit.UserId),
|
||||||
OrderUUID: orderLimit.OrderUUID,
|
OrderUUID: orderLimit.OrderUUID,
|
||||||
AccountNumber: orderLimit.AccountNumber,
|
//AccountNumber: orderLimit.AccountNumber,
|
||||||
VideoNumber: orderLimit.VideoNumber,
|
//VideoNumber: orderLimit.VideoNumber,
|
||||||
ImageNumber: orderLimit.ImageNumber,
|
//ImageNumber: orderLimit.ImageNumber,
|
||||||
DataAnalysisNumber: orderLimit.DataNumber,
|
//DataAnalysisNumber: orderLimit.DataNumber,
|
||||||
ExpansionPacksNumber: 1,
|
ExpansionPacksNumber: 1,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -379,22 +398,22 @@ func CreateAntomPay(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
case common.OrderTypeAddon:
|
case common.OrderTypeAddon:
|
||||||
//如果是购买增值服务 1:修改余量信息AddBundleBalance 2 添加扩展记录BundleExtend
|
//如果是购买增值服务 1:修改余量信息AddBundleBalance 2 添加扩展记录BundleExtend
|
||||||
_, err = service.BundleProvider.AddBundleBalance(context.Background(), &bundle.AddBundleBalanceReq{
|
//_, err = service.BundleProvider.AddBundleBalance(context.Background(), &bundle.AddBundleBalanceReq{
|
||||||
UserId: int32(orderLimit.UserId),
|
// UserId: int32(orderLimit.UserId),
|
||||||
OrderUUID: orderLimit.OrderUUID,
|
// OrderUUID: orderLimit.OrderUUID,
|
||||||
AccountNumber: orderLimit.AccountNumber,
|
// AccountNumber: orderLimit.AccountNumber,
|
||||||
VideoNumber: orderLimit.VideoNumber,
|
// VideoNumber: orderLimit.VideoNumber,
|
||||||
ImageNumber: orderLimit.ImageNumber,
|
// ImageNumber: orderLimit.ImageNumber,
|
||||||
DataAnalysisNumber: orderLimit.DataNumber,
|
// DataAnalysisNumber: orderLimit.DataNumber,
|
||||||
ExpansionPacksNumber: 1,
|
// ExpansionPacksNumber: 1,
|
||||||
})
|
//})
|
||||||
if err != nil {
|
//if err != nil {
|
||||||
fmt.Println("=============== antom创建支付,OrderTypePackage报错:", err)
|
// fmt.Println("=============== antom创建支付,OrderTypePackage报错:", err)
|
||||||
logger.Errorf("=============== antom创建支付,OrderTypePackage报错:", err)
|
// logger.Errorf("=============== antom创建支付,OrderTypePackage报错:", err)
|
||||||
service.Error(c, err)
|
// service.Error(c, err)
|
||||||
return
|
// return
|
||||||
}
|
//}
|
||||||
default:
|
default:
|
||||||
fmt.Println("=============== antom创建支付,无效的订单类型:", err)
|
fmt.Println("=============== antom创建支付,无效的订单类型:", err)
|
||||||
logger.Errorf("=============== antom创建支付,无效的订单类型:", err)
|
logger.Errorf("=============== antom创建支付,无效的订单类型:", err)
|
||||||
@ -422,6 +441,9 @@ func CreateAntomPay(c *gin.Context) {
|
|||||||
AvailableDurationAdditional: uint32(orderLimit.Duration),
|
AvailableDurationAdditional: uint32(orderLimit.Duration),
|
||||||
TimeUnit: timeUnit,
|
TimeUnit: timeUnit,
|
||||||
AssociatedorderNumber: req.OutTradeNo, //增值服务订单号
|
AssociatedorderNumber: req.OutTradeNo, //增值服务订单号
|
||||||
|
Type: 2, //自行购买
|
||||||
|
OperatorName: orderLimit.UserName,
|
||||||
|
OperatorId: orderLimit.UserId,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
service.Error(c, err)
|
service.Error(c, err)
|
||||||
@ -683,6 +705,8 @@ func AntomWebhook(c *gin.Context) {
|
|||||||
TimeUnit: timeUnit,
|
TimeUnit: timeUnit,
|
||||||
AssociatedorderNumber: resp.OutTradeNo, //增值服务订单号
|
AssociatedorderNumber: resp.OutTradeNo, //增值服务订单号
|
||||||
Type: 2, //自行购买
|
Type: 2, //自行购买
|
||||||
|
OperatorName: orderLimit.UserName,
|
||||||
|
OperatorId: orderLimit.UserId,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
service.Error(c, err)
|
service.Error(c, err)
|
||||||
|
@ -6,15 +6,21 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"fonchain-fiee/cmd/config"
|
"fonchain-fiee/cmd/config"
|
||||||
"fonchain-fiee/pkg/e"
|
"fonchain-fiee/pkg/e"
|
||||||
"fonchain-fiee/pkg/utils"
|
|
||||||
modelCast "fonchain-fiee/pkg/model/cast"
|
modelCast "fonchain-fiee/pkg/model/cast"
|
||||||
|
"fonchain-fiee/pkg/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
type CastService struct {
|
type CastService struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *CastService) ApprovalDetail(approvalIds []int) (data map[int]int, err error) {
|
func (c *CastService) ApprovalDetail(approvalIds []int) (data map[int]modelCast.Item, err error) {
|
||||||
idsBytes, _ := json.Marshal(approvalIds)
|
type ApprovalDetailRequest struct {
|
||||||
|
ID []int `json:"ID"`
|
||||||
|
}
|
||||||
|
req := ApprovalDetailRequest{
|
||||||
|
ID: approvalIds,
|
||||||
|
}
|
||||||
|
idsBytes, _ := json.Marshal(req)
|
||||||
var respBody string
|
var respBody string
|
||||||
url := fmt.Sprintf(config.AppConfig.System.ErpHost + "/approval/list/ex")
|
url := fmt.Sprintf(config.AppConfig.System.ErpHost + "/approval/list/ex")
|
||||||
respBody, err = utils.Post(url, string(idsBytes))
|
respBody, err = utils.Post(url, string(idsBytes))
|
||||||
@ -27,9 +33,9 @@ func (c *CastService) ApprovalDetail(approvalIds []int) (data map[int]int, err e
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
if respDetail.Status == 0 && len(respDetail.Data.Data) > 0 {
|
if respDetail.Status == 0 && len(respDetail.Data.Data) > 0 {
|
||||||
data = make(map[int]int, len(respDetail.Data.Data))
|
data = make(map[int]modelCast.Item, len(respDetail.Data.Data))
|
||||||
for _, v := range respDetail.Data.Data {
|
for _, v := range respDetail.Data.Data {
|
||||||
data[v.ID] = v.Status
|
data[v.ID] = v
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
err = errors.New(e.GetMsg(e.ErrorHttp))
|
err = errors.New(e.GetMsg(e.ErrorHttp))
|
||||||
|
@ -4,11 +4,14 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
"fonchain-fiee/api/accountFiee"
|
"fonchain-fiee/api/accountFiee"
|
||||||
|
"fonchain-fiee/api/bundle"
|
||||||
"fonchain-fiee/api/cast"
|
"fonchain-fiee/api/cast"
|
||||||
"fonchain-fiee/cmd/config"
|
"fonchain-fiee/cmd/config"
|
||||||
"fonchain-fiee/pkg/e"
|
"fonchain-fiee/pkg/e"
|
||||||
|
modelCast "fonchain-fiee/pkg/model/cast"
|
||||||
"fonchain-fiee/pkg/service"
|
"fonchain-fiee/pkg/service"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
"go.uber.org/zap"
|
||||||
"strconv"
|
"strconv"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -34,6 +37,7 @@ func MediaUserList(ctx *gin.Context) {
|
|||||||
|
|
||||||
func UnbindManager(ctx *gin.Context) {
|
func UnbindManager(ctx *gin.Context) {
|
||||||
var req *cast.UnbindManagerReq
|
var req *cast.UnbindManagerReq
|
||||||
|
var resp *cast.UnbindManagerResp
|
||||||
var err error
|
var err error
|
||||||
if err = ctx.ShouldBind(&req); err != nil {
|
if err = ctx.ShouldBind(&req); err != nil {
|
||||||
service.Error(ctx, err)
|
service.Error(ctx, err)
|
||||||
@ -43,11 +47,24 @@ func UnbindManager(ctx *gin.Context) {
|
|||||||
service.Error(ctx, err)
|
service.Error(ctx, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
_, err = service.CastProvider.UnbindManager(ctx, req)
|
resp, err = service.CastProvider.UnbindManager(ctx, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
service.Error(ctx, err)
|
service.Error(ctx, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
zap.L().Info("UnbindManager resp", zap.Any("resp", resp))
|
||||||
|
if resp.OldBindArtistUuid != "" {
|
||||||
|
userID, _ := strconv.ParseInt(resp.OldBindArtistUuid, 10, 64)
|
||||||
|
_, err = service.BundleProvider.AddBundleBalance(context.Background(), &bundle.AddBundleBalanceReq{
|
||||||
|
UserId: int32(userID),
|
||||||
|
AccountConsumptionNumber: -1,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
service.Error(ctx, err)
|
||||||
|
//FIXME 进行回滚
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
service.Success(ctx, nil)
|
service.Success(ctx, nil)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -104,13 +121,39 @@ func UpdateMediaAccount(ctx *gin.Context) {
|
|||||||
}
|
}
|
||||||
req.ArtistName = infoResp.Name
|
req.ArtistName = infoResp.Name
|
||||||
req.ArtistPhone = infoResp.TelNum
|
req.ArtistPhone = infoResp.TelNum
|
||||||
|
req.ArtistPhoneAreaCode = infoResp.TelAreaCode
|
||||||
if _, ok := cast.PlatformIDENUM_name[int32(req.PlatformID)]; !ok {
|
if _, ok := cast.PlatformIDENUM_name[int32(req.PlatformID)]; !ok {
|
||||||
service.Error(ctx, errors.New(e.GetMsg(e.InvalidParams)))
|
service.Error(ctx, errors.New(e.GetMsg(e.InvalidParams)))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
userID, _ := strconv.ParseInt(req.ArtistUuid, 10, 64)
|
||||||
|
if req.MediaAccountUuid == "" {
|
||||||
|
if err = CheckUserBundleBalance(int32(userID), modelCast.BalanceTypeAccountValue); err != nil {
|
||||||
|
service.Error(ctx, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
_, err = service.BundleProvider.AddBundleBalance(context.Background(), &bundle.AddBundleBalanceReq{
|
||||||
|
UserId: int32(userID),
|
||||||
|
AccountConsumptionNumber: 1,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
service.Error(ctx, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
resp, err := service.CastProvider.UpdateMediaAccount(ctx, req)
|
resp, err := service.CastProvider.UpdateMediaAccount(ctx, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
service.Error(ctx, err)
|
service.Error(ctx, err)
|
||||||
|
if req.MediaAccountUuid == "" {
|
||||||
|
_, err = service.BundleProvider.AddBundleBalance(context.Background(), &bundle.AddBundleBalanceReq{
|
||||||
|
UserId: int32(userID),
|
||||||
|
AccountConsumptionNumber: -1,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
service.Error(ctx, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
service.Success(ctx, resp)
|
service.Success(ctx, resp)
|
||||||
@ -153,3 +196,8 @@ func OAuth2Callback(ctx *gin.Context) {
|
|||||||
service.Success(ctx, resp)
|
service.Success(ctx, resp)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func Test(ctx *gin.Context) {
|
||||||
|
service.Success(ctx, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
@ -9,6 +9,7 @@ import (
|
|||||||
"fonchain-fiee/api/cast"
|
"fonchain-fiee/api/cast"
|
||||||
"fonchain-fiee/cmd/config"
|
"fonchain-fiee/cmd/config"
|
||||||
"fonchain-fiee/pkg/e"
|
"fonchain-fiee/pkg/e"
|
||||||
|
modelCast "fonchain-fiee/pkg/model/cast"
|
||||||
"fonchain-fiee/pkg/service"
|
"fonchain-fiee/pkg/service"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
@ -35,14 +36,16 @@ func UpdateWorkImage(ctx *gin.Context) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
infoResp = &accountFiee.UserInfoResponse{
|
infoResp = &accountFiee.UserInfoResponse{
|
||||||
Name: "小波",
|
Name: "小波",
|
||||||
TelNum: "18288888888",
|
TelNum: "18288888888",
|
||||||
|
TelAreaCode: "86",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
req.ArtistName = infoResp.Name
|
req.ArtistName = infoResp.Name
|
||||||
req.ArtistPhone = infoResp.TelNum
|
req.ArtistPhone = infoResp.TelNum
|
||||||
|
req.ArtistPhoneAreaCode = infoResp.TelAreaCode
|
||||||
artistID, _ := strconv.ParseUint(req.ArtistUuid, 10, 64)
|
artistID, _ := strconv.ParseUint(req.ArtistUuid, 10, 64)
|
||||||
if err = CheckUserBundleBalance(int32(artistID)); err != nil {
|
if err = CheckUserBundleBalance(int32(artistID), modelCast.BalanceTypeImageValue); err != nil {
|
||||||
service.Error(ctx, err)
|
service.Error(ctx, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -76,17 +79,19 @@ func UpdateWorkVideo(ctx *gin.Context) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
infoResp = &accountFiee.UserInfoResponse{
|
infoResp = &accountFiee.UserInfoResponse{
|
||||||
Name: "小波",
|
Name: "小波",
|
||||||
TelNum: "18288888888",
|
TelNum: "18288888888",
|
||||||
|
TelAreaCode: "86",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
artistID, _ := strconv.ParseUint(req.ArtistUuid, 10, 64)
|
artistID, _ := strconv.ParseUint(req.ArtistUuid, 10, 64)
|
||||||
if err = CheckUserBundleBalance(int32(artistID)); err != nil {
|
if err = CheckUserBundleBalance(int32(artistID), modelCast.BalanceTypeVideoValue); err != nil {
|
||||||
service.Error(ctx, err)
|
service.Error(ctx, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
req.ArtistName = infoResp.Name
|
req.ArtistName = infoResp.Name
|
||||||
req.ArtistPhone = infoResp.TelNum
|
req.ArtistPhone = infoResp.TelNum
|
||||||
|
req.ArtistPhoneAreaCode = infoResp.TelAreaCode
|
||||||
newCtx := NewCtxWithUserInfo(ctx)
|
newCtx := NewCtxWithUserInfo(ctx)
|
||||||
resp, err := service.CastProvider.UpdateWorkVideo(newCtx, req)
|
resp, err := service.CastProvider.UpdateWorkVideo(newCtx, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -106,13 +111,7 @@ func UpdateApproval(ctx *gin.Context) {
|
|||||||
}
|
}
|
||||||
req.WorkAction = cast.WorkActionENUM_APPROVAL
|
req.WorkAction = cast.WorkActionENUM_APPROVAL
|
||||||
newCtx := NewCtxWithUserInfo(ctx)
|
newCtx := NewCtxWithUserInfo(ctx)
|
||||||
//FIXME
|
resp, err := service.CastProvider.UpdateStatus(newCtx, req)
|
||||||
reqNew := &cast.UpdateStatusReq{
|
|
||||||
WorkAction: cast.WorkActionENUM_CONFIRM,
|
|
||||||
WorkUuid: req.WorkUuid,
|
|
||||||
ConfirmStatus: 1,
|
|
||||||
}
|
|
||||||
resp, err := service.CastProvider.UpdateStatus(newCtx, reqNew)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
service.Error(ctx, err)
|
service.Error(ctx, err)
|
||||||
return
|
return
|
||||||
@ -137,6 +136,18 @@ func WorkList(ctx *gin.Context) {
|
|||||||
service.Error(ctx, err)
|
service.Error(ctx, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if len(resp.Data) > 0 {
|
||||||
|
var workUuidApprovalIDMap = make(map[int]string)
|
||||||
|
for _, v := range resp.Data {
|
||||||
|
if v.WorkStatus == 2 && v.ApprovalID != "" {
|
||||||
|
approvalID, _ := strconv.ParseUint(v.ApprovalID, 10, 64)
|
||||||
|
workUuidApprovalIDMap[int(approvalID)] = v.WorkUuid
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if len(workUuidApprovalIDMap) > 0 {
|
||||||
|
_ = RefreshWorkApprovalStatus(ctx, workUuidApprovalIDMap)
|
||||||
|
}
|
||||||
|
}
|
||||||
service.Success(ctx, resp)
|
service.Success(ctx, resp)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -161,16 +172,29 @@ func WorkDetail(ctx *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func CheckUserBundleBalance(userID int32) (err error) {
|
func CheckUserBundleBalance(userID int32, balanceType modelCast.BalanceTypeEnum) (err error) {
|
||||||
resp, err := service.BundleProvider.GetBundleBalanceByUserId(context.Background(), &bundle.GetBundleBalanceByUserIdReq{UserId: userID})
|
resp, err := service.BundleProvider.GetBundleBalanceByUserId(context.Background(), &bundle.GetBundleBalanceByUserIdReq{UserId: userID})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
zap.L().Info("CheckUserBundleBalance", zap.Any("resp", resp))
|
zap.L().Info("CheckUserBundleBalance", zap.Any("resp", resp))
|
||||||
fmt.Println("CheckUserBundleBalance resp", resp)
|
fmt.Println("CheckUserBundleBalance resp", resp)
|
||||||
if resp.AccountNumber-resp.AccountConsumptionNumber <= 0 {
|
switch balanceType {
|
||||||
err = errors.New(e.ErrorBalanceInsufficient)
|
case modelCast.BalanceTypeAccountValue:
|
||||||
return
|
if resp.AccountNumber-resp.AccountConsumptionNumber <= 0 {
|
||||||
|
err = errors.New(e.ErrorBalanceInsufficient)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
case modelCast.BalanceTypeImageValue:
|
||||||
|
if resp.ImageNumber-resp.ImageConsumptionNumber <= 0 {
|
||||||
|
err = errors.New(e.ErrorBalanceInsufficient)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
case modelCast.BalanceTypeVideoValue:
|
||||||
|
if resp.VideoNumber-resp.VideoConsumptionNumber <= 0 {
|
||||||
|
err = errors.New(e.ErrorBalanceInsufficient)
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -192,10 +216,16 @@ func RePublish(ctx *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
artistID, _ := strconv.ParseUint(resp.ArtistUuid, 10, 64)
|
artistID, _ := strconv.ParseUint(resp.ArtistUuid, 10, 64)
|
||||||
_, err = service.BundleProvider.AddBundleBalance(context.Background(), &bundle.AddBundleBalanceReq{
|
balanceReq := &bundle.AddBundleBalanceReq{
|
||||||
UserId: int32(artistID),
|
UserId: int32(artistID),
|
||||||
AccountConsumptionNumber: -1,
|
}
|
||||||
})
|
if resp.WorkCategory == 1 {
|
||||||
|
balanceReq.ImageConsumptionNumber = 1
|
||||||
|
}
|
||||||
|
if resp.WorkCategory == 2 {
|
||||||
|
balanceReq.VideoConsumptionNumber = 1
|
||||||
|
}
|
||||||
|
_, err = service.BundleProvider.AddBundleBalance(context.Background(), balanceReq)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
service.Error(ctx, err)
|
service.Error(ctx, err)
|
||||||
//FIXME 进行回滚
|
//FIXME 进行回滚
|
||||||
@ -209,3 +239,116 @@ func RePublish(ctx *gin.Context) {
|
|||||||
func UserBundleBalanceCost() {
|
func UserBundleBalanceCost() {
|
||||||
service.BundleProvider.AddBundleBalance(context.Background(), &bundle.AddBundleBalanceReq{})
|
service.BundleProvider.AddBundleBalance(context.Background(), &bundle.AddBundleBalanceReq{})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func RefreshWorkApprovalStatus(ctx *gin.Context, approvalIDWorkUuidMap map[int]string) (err error) {
|
||||||
|
var castS = new(CastService)
|
||||||
|
var data = make(map[int]modelCast.Item)
|
||||||
|
var approvalIDs []int
|
||||||
|
for approvalId, _ := range approvalIDWorkUuidMap {
|
||||||
|
approvalIDs = append(approvalIDs, approvalId)
|
||||||
|
}
|
||||||
|
if len(approvalIDs) == 0 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
data, err = castS.ApprovalDetail(approvalIDs)
|
||||||
|
// status: 1待审批 2审批通过 3审批不通过 6撤销发其中 7撤销完成
|
||||||
|
var newData = make(map[int]modelCast.Item, len(approvalIDs))
|
||||||
|
for _, v := range approvalIDs {
|
||||||
|
newData[v] = data[v]
|
||||||
|
}
|
||||||
|
newCtx := NewCtxWithUserInfo(ctx)
|
||||||
|
if len(newData) > 0 {
|
||||||
|
for approvalId, v := range newData {
|
||||||
|
if v.ID == 0 {
|
||||||
|
_, _ = service.CastProvider.UpdateStatus(newCtx, &cast.UpdateStatusReq{
|
||||||
|
WorkAction: cast.WorkActionENUM_APPROVAL_DELETE,
|
||||||
|
WorkUuid: approvalIDWorkUuidMap[approvalId],
|
||||||
|
ApprovalID: fmt.Sprint(approvalId),
|
||||||
|
ApprovalReply: "",
|
||||||
|
})
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
var workAction cast.WorkActionENUM
|
||||||
|
if v.Status == 2 {
|
||||||
|
workAction = cast.WorkActionENUM_APPROVAL_PASS
|
||||||
|
} else if v.Status == 3 {
|
||||||
|
workAction = cast.WorkActionENUM_APPROVAL_REJECT
|
||||||
|
} else {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
_, _ = service.CastProvider.UpdateStatus(newCtx, &cast.UpdateStatusReq{
|
||||||
|
WorkAction: workAction,
|
||||||
|
WorkUuid: approvalIDWorkUuidMap[approvalId],
|
||||||
|
ApprovalID: fmt.Sprint(approvalId),
|
||||||
|
ApprovalReply: v.Reply,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func DelWork(ctx *gin.Context) {
|
||||||
|
var req *cast.DelWorkReq
|
||||||
|
var err error
|
||||||
|
if err = ctx.ShouldBind(&req); err != nil {
|
||||||
|
service.Error(ctx, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
newCtx := NewCtxWithUserInfo(ctx)
|
||||||
|
_, err = service.CastProvider.DelWork(newCtx, req)
|
||||||
|
if err != nil {
|
||||||
|
service.Error(ctx, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
service.Success(ctx, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func Remind(ctx *gin.Context) {
|
||||||
|
var req *cast.WorkInfoReq
|
||||||
|
var err error
|
||||||
|
var workInfo *cast.WorkInfoResp
|
||||||
|
if err = ctx.ShouldBind(&req); err != nil {
|
||||||
|
service.Error(ctx, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
workInfo, err = service.CastProvider.WorkInfo(context.Background(), req)
|
||||||
|
if err != nil {
|
||||||
|
service.Error(ctx, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if workInfo.WorkStatus != modelCast.WorkStatusArtistConfirming {
|
||||||
|
service.Error(ctx, errors.New(e.InvalidStatus))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if workInfo.ArtistPhoneAreaCode == "" {
|
||||||
|
workInfo.ArtistPhoneAreaCode = "86"
|
||||||
|
}
|
||||||
|
if workInfo.ArtistPhoneAreaCode == "86" {
|
||||||
|
_, err = service.AccountFieeProvider.SendMsg(context.Background(), &accountFiee.SendMsgRequest{
|
||||||
|
Domain: "app",
|
||||||
|
TelNum: workInfo.ArtistPhone,
|
||||||
|
Project: "fiee",
|
||||||
|
SignNo: 0, // TODO 模板ID
|
||||||
|
MId: 0,
|
||||||
|
Scope: "",
|
||||||
|
Zone: workInfo.ArtistPhoneAreaCode,
|
||||||
|
NonceStr: "",
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
_, err = service.AccountFieeProvider.SendNationMsg(context.Background(), &accountFiee.SendNationMsgRequest{
|
||||||
|
Domain: "app",
|
||||||
|
TelNum: workInfo.ArtistPhone,
|
||||||
|
Project: "fiee",
|
||||||
|
SignNo: 0, // TODO 模板ID
|
||||||
|
MId: 0,
|
||||||
|
Scope: "",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
service.Error(ctx, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
service.Success(ctx, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
@ -118,7 +118,13 @@ func ToExcelByType(titleList []string, dataList []interface{}, dataType string,
|
|||||||
// ResponseXls content 为上面生成的io.ReadSeeker, fileTag 为返回前端的文件名
|
// ResponseXls content 为上面生成的io.ReadSeeker, fileTag 为返回前端的文件名
|
||||||
func ResponseXls(c *gin.Context, content io.ReadSeeker, fileTag string) {
|
func ResponseXls(c *gin.Context, content io.ReadSeeker, fileTag string) {
|
||||||
fileName := fmt.Sprintf("%s.%s", fileTag, ExcelPrefix)
|
fileName := fmt.Sprintf("%s.%s", fileTag, ExcelPrefix)
|
||||||
c.Writer.Header().Add("Content-Disposition", fmt.Sprintf(`attachment; filename="%s"`, fileName))
|
// 返回 Excel 文件流给前端
|
||||||
c.Writer.Header().Add("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
|
c.Header("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
|
||||||
|
c.Header("Content-Disposition", fmt.Sprintf(`attachment; filename="%s"`, fileName))
|
||||||
|
c.Header("File-Name", fmt.Sprintf("%s", fileName))
|
||||||
|
c.Header("Access-Control-Expose-Headers", "File-Name")
|
||||||
|
//_ = c.Writer(c.Writer)
|
||||||
|
//c.Writer.Header().Add("Content-Disposition", fmt.Sprintf(`attachment; filename="%s"`, fileName))
|
||||||
|
//c.Writer.Header().Add("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
|
||||||
http.ServeContent(c.Writer, c.Request, fileName, time.Now(), content)
|
http.ServeContent(c.Writer, c.Request, fileName, time.Now(), content)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user