diff --git a/rpc/express/express.pb b/rpc/express/express.pb index 8b5282a..d7b5ae0 100644 Binary files a/rpc/express/express.pb and b/rpc/express/express.pb differ diff --git a/rpc/express/express.proto b/rpc/express/express.proto index 26e8713..1708ed9 100644 --- a/rpc/express/express.proto +++ b/rpc/express/express.proto @@ -88,6 +88,11 @@ message DeliveringRequest { message ExpressCompanyRequest { string code = 1; } +message IdApiRequest { + int64 id = 1; + int32 type=2; +} + service Express { @@ -163,6 +168,45 @@ service Express { }; }; + rpc ExpressApiQuery(IdApiRequest) returns(Response){ + option (google.api.http) = { + get: "/api/v3/express/query" + body: "*" + }; + }; + rpc ExpressAdminQuery(IdRequest) returns(Response){ + option (google.api.http) = { + get: "/admin/v3/express/query" + body: "*" + }; + }; + + rpc ExpressApiEstimated(IdApiRequest) returns(Response){ + option (google.api.http) = { + get: "/api/v3/express/estimated" + body: "*" + }; + }; + rpc ExpressAdminEstimated(IdRequest) returns(Response){ + option (google.api.http) = { + get: "/admin/v3/express/estimated" + body: "*" + }; + }; + + rpc ExpressApiCancel(IdApiRequest) returns(Response){ + option (google.api.http) = { + get: "/api/v3/express/cancel" + body: "*" + }; + }; + rpc ExpressAdminCancel(IdRequest) returns(Response){ + option (google.api.http) = { + get: "/admin/v3/express/cancel" + body: "*" + }; + }; + //添加生成订单的发货信息 rpc DeliveryOrderCreate(DeliveryOrderCreateRequest) returns(IdResponse); } diff --git a/rpc/express/pb/express.pb.go b/rpc/express/pb/express.pb.go index d05d559..ebc86f7 100644 --- a/rpc/express/pb/express.pb.go +++ b/rpc/express/pb/express.pb.go @@ -838,6 +838,58 @@ func (x *ExpressCompanyRequest) GetCode() string { return "" } +type IdApiRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Type int32 `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *IdApiRequest) Reset() { + *x = IdApiRequest{} + mi := &file_express_express_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *IdApiRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IdApiRequest) ProtoMessage() {} + +func (x *IdApiRequest) ProtoReflect() protoreflect.Message { + mi := &file_express_express_proto_msgTypes[12] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IdApiRequest.ProtoReflect.Descriptor instead. +func (*IdApiRequest) Descriptor() ([]byte, []int) { + return file_express_express_proto_rawDescGZIP(), []int{12} +} + +func (x *IdApiRequest) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *IdApiRequest) GetType() int32 { + if x != nil { + return x.Type + } + return 0 +} + var File_express_express_proto protoreflect.FileDescriptor const file_express_express_proto_rawDesc = "" + @@ -912,7 +964,10 @@ const file_express_express_proto_rawDesc = "" + "transit_id\x18\x01 \x01(\x03R\ttransitId\x12\x0e\n" + "\x02id\x18\x02 \x01(\x03R\x02id\"+\n" + "\x15ExpressCompanyRequest\x12\x12\n" + - "\x04code\x18\x01 \x01(\tR\x04code2\xd0\b\n" + + "\x04code\x18\x01 \x01(\tR\x04code\"2\n" + + "\fIdApiRequest\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x03R\x02id\x12\x12\n" + + "\x04type\x18\x02 \x01(\x05R\x04type2\xa1\r\n" + "\aExpress\x12U\n" + "\x05Items\x12\x15.express.EmtpyRequest\x1a\x11.express.Response\"\"\x82\xd3\xe4\x93\x02\x1c:\x01*\x12\x17/admin/v3/express/items\x12X\n" + "\x06Create\x12\x16.express.CreateRequest\x1a\x11.express.Response\"#\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/admin/v3/express/create\x12T\n" + @@ -924,7 +979,13 @@ const file_express_express_proto_rawDesc = "" + "\x0eExpressCompany\x12\x1e.express.ExpressCompanyRequest\x1a\x11.express.Response\"$\x82\xd3\xe4\x93\x02\x1e:\x01*\x12\x19/admin/v3/express/company\x12k\n" + "\x11ExpressDelivering\x12\x1a.express.DeliveringRequest\x1a\x11.express.Response\"'\x82\xd3\xe4\x93\x02!:\x01*\"\x1c/admin/v3/express/delivering\x12Z\n" + "\rExpressSfBack\x12\x15.express.EmtpyRequest\x1a\x13.express.SfResponse\"\x1d\x82\xd3\xe4\x93\x02\x17:\x01*\"\x12/api/v3/express/sf\x12X\n" + - "\rExpressJdBack\x12\x15.express.EmtpyRequest\x1a\x11.express.Response\"\x1d\x82\xd3\xe4\x93\x02\x17:\x01*\"\x12/api/v3/express/jd\x12O\n" + + "\rExpressJdBack\x12\x15.express.EmtpyRequest\x1a\x11.express.Response\"\x1d\x82\xd3\xe4\x93\x02\x17:\x01*\"\x12/api/v3/express/jd\x12]\n" + + "\x0fExpressApiQuery\x12\x15.express.IdApiRequest\x1a\x11.express.Response\" \x82\xd3\xe4\x93\x02\x1a:\x01*\x12\x15/api/v3/express/query\x12^\n" + + "\x11ExpressAdminQuery\x12\x12.express.IdRequest\x1a\x11.express.Response\"\"\x82\xd3\xe4\x93\x02\x1c:\x01*\x12\x17/admin/v3/express/query\x12e\n" + + "\x13ExpressApiEstimated\x12\x15.express.IdApiRequest\x1a\x11.express.Response\"$\x82\xd3\xe4\x93\x02\x1e:\x01*\x12\x19/api/v3/express/estimated\x12f\n" + + "\x15ExpressAdminEstimated\x12\x12.express.IdRequest\x1a\x11.express.Response\"&\x82\xd3\xe4\x93\x02 :\x01*\x12\x1b/admin/v3/express/estimated\x12_\n" + + "\x10ExpressApiCancel\x12\x15.express.IdApiRequest\x1a\x11.express.Response\"!\x82\xd3\xe4\x93\x02\x1b:\x01*\x12\x16/api/v3/express/cancel\x12`\n" + + "\x12ExpressAdminCancel\x12\x12.express.IdRequest\x1a\x11.express.Response\"#\x82\xd3\xe4\x93\x02\x1d:\x01*\x12\x18/admin/v3/express/cancel\x12O\n" + "\x13DeliveryOrderCreate\x12#.express.DeliveryOrderCreateRequest\x1a\x13.express.IdResponseB\vZ\t./expressb\x06proto3" var ( @@ -939,7 +1000,7 @@ func file_express_express_proto_rawDescGZIP() []byte { return file_express_express_proto_rawDescData } -var file_express_express_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_express_express_proto_msgTypes = make([]protoimpl.MessageInfo, 13) var file_express_express_proto_goTypes = []any{ (*Response)(nil), // 0: express.Response (*SfResponse)(nil), // 1: express.SfResponse @@ -953,6 +1014,7 @@ var file_express_express_proto_goTypes = []any{ (*DeliverOrderProductInfo)(nil), // 9: express.DeliverOrderProductInfo (*DeliveringRequest)(nil), // 10: express.DeliveringRequest (*ExpressCompanyRequest)(nil), // 11: express.ExpressCompanyRequest + (*IdApiRequest)(nil), // 12: express.IdApiRequest } var file_express_express_proto_depIdxs = []int32{ 9, // 0: express.DeliveryOrderCreateRequest.product_info:type_name -> express.DeliverOrderProductInfo @@ -967,21 +1029,33 @@ var file_express_express_proto_depIdxs = []int32{ 10, // 9: express.Express.ExpressDelivering:input_type -> express.DeliveringRequest 3, // 10: express.Express.ExpressSfBack:input_type -> express.EmtpyRequest 3, // 11: express.Express.ExpressJdBack:input_type -> express.EmtpyRequest - 8, // 12: express.Express.DeliveryOrderCreate:input_type -> express.DeliveryOrderCreateRequest - 0, // 13: express.Express.Items:output_type -> express.Response - 0, // 14: express.Express.Create:output_type -> express.Response - 0, // 15: express.Express.Edit:output_type -> express.Response - 0, // 16: express.Express.Info:output_type -> express.Response - 0, // 17: express.Express.Names:output_type -> express.Response - 0, // 18: express.Express.Status:output_type -> express.Response - 0, // 19: express.Express.History:output_type -> express.Response - 0, // 20: express.Express.ExpressCompany:output_type -> express.Response - 0, // 21: express.Express.ExpressDelivering:output_type -> express.Response - 1, // 22: express.Express.ExpressSfBack:output_type -> express.SfResponse - 0, // 23: express.Express.ExpressJdBack:output_type -> express.Response - 2, // 24: express.Express.DeliveryOrderCreate:output_type -> express.IdResponse - 13, // [13:25] is the sub-list for method output_type - 1, // [1:13] is the sub-list for method input_type + 12, // 12: express.Express.ExpressApiQuery:input_type -> express.IdApiRequest + 5, // 13: express.Express.ExpressAdminQuery:input_type -> express.IdRequest + 12, // 14: express.Express.ExpressApiEstimated:input_type -> express.IdApiRequest + 5, // 15: express.Express.ExpressAdminEstimated:input_type -> express.IdRequest + 12, // 16: express.Express.ExpressApiCancel:input_type -> express.IdApiRequest + 5, // 17: express.Express.ExpressAdminCancel:input_type -> express.IdRequest + 8, // 18: express.Express.DeliveryOrderCreate:input_type -> express.DeliveryOrderCreateRequest + 0, // 19: express.Express.Items:output_type -> express.Response + 0, // 20: express.Express.Create:output_type -> express.Response + 0, // 21: express.Express.Edit:output_type -> express.Response + 0, // 22: express.Express.Info:output_type -> express.Response + 0, // 23: express.Express.Names:output_type -> express.Response + 0, // 24: express.Express.Status:output_type -> express.Response + 0, // 25: express.Express.History:output_type -> express.Response + 0, // 26: express.Express.ExpressCompany:output_type -> express.Response + 0, // 27: express.Express.ExpressDelivering:output_type -> express.Response + 1, // 28: express.Express.ExpressSfBack:output_type -> express.SfResponse + 0, // 29: express.Express.ExpressJdBack:output_type -> express.Response + 0, // 30: express.Express.ExpressApiQuery:output_type -> express.Response + 0, // 31: express.Express.ExpressAdminQuery:output_type -> express.Response + 0, // 32: express.Express.ExpressApiEstimated:output_type -> express.Response + 0, // 33: express.Express.ExpressAdminEstimated:output_type -> express.Response + 0, // 34: express.Express.ExpressApiCancel:output_type -> express.Response + 0, // 35: express.Express.ExpressAdminCancel:output_type -> express.Response + 2, // 36: express.Express.DeliveryOrderCreate:output_type -> express.IdResponse + 19, // [19:37] is the sub-list for method output_type + 1, // [1:19] is the sub-list for method input_type 1, // [1:1] is the sub-list for extension type_name 1, // [1:1] is the sub-list for extension extendee 0, // [0:1] is the sub-list for field type_name @@ -998,7 +1072,7 @@ func file_express_express_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_express_express_proto_rawDesc), len(file_express_express_proto_rawDesc)), NumEnums: 0, - NumMessages: 12, + NumMessages: 13, NumExtensions: 0, NumServices: 1, }, diff --git a/rpc/express/pb/express_grpc.pb.go b/rpc/express/pb/express_grpc.pb.go index b195809..5841ec4 100644 --- a/rpc/express/pb/express_grpc.pb.go +++ b/rpc/express/pb/express_grpc.pb.go @@ -19,18 +19,24 @@ import ( const _ = grpc.SupportPackageIsVersion9 const ( - Express_Items_FullMethodName = "/express.Express/Items" - Express_Create_FullMethodName = "/express.Express/Create" - Express_Edit_FullMethodName = "/express.Express/Edit" - Express_Info_FullMethodName = "/express.Express/Info" - Express_Names_FullMethodName = "/express.Express/Names" - Express_Status_FullMethodName = "/express.Express/Status" - Express_History_FullMethodName = "/express.Express/History" - Express_ExpressCompany_FullMethodName = "/express.Express/ExpressCompany" - Express_ExpressDelivering_FullMethodName = "/express.Express/ExpressDelivering" - Express_ExpressSfBack_FullMethodName = "/express.Express/ExpressSfBack" - Express_ExpressJdBack_FullMethodName = "/express.Express/ExpressJdBack" - Express_DeliveryOrderCreate_FullMethodName = "/express.Express/DeliveryOrderCreate" + Express_Items_FullMethodName = "/express.Express/Items" + Express_Create_FullMethodName = "/express.Express/Create" + Express_Edit_FullMethodName = "/express.Express/Edit" + Express_Info_FullMethodName = "/express.Express/Info" + Express_Names_FullMethodName = "/express.Express/Names" + Express_Status_FullMethodName = "/express.Express/Status" + Express_History_FullMethodName = "/express.Express/History" + Express_ExpressCompany_FullMethodName = "/express.Express/ExpressCompany" + Express_ExpressDelivering_FullMethodName = "/express.Express/ExpressDelivering" + Express_ExpressSfBack_FullMethodName = "/express.Express/ExpressSfBack" + Express_ExpressJdBack_FullMethodName = "/express.Express/ExpressJdBack" + Express_ExpressApiQuery_FullMethodName = "/express.Express/ExpressApiQuery" + Express_ExpressAdminQuery_FullMethodName = "/express.Express/ExpressAdminQuery" + Express_ExpressApiEstimated_FullMethodName = "/express.Express/ExpressApiEstimated" + Express_ExpressAdminEstimated_FullMethodName = "/express.Express/ExpressAdminEstimated" + Express_ExpressApiCancel_FullMethodName = "/express.Express/ExpressApiCancel" + Express_ExpressAdminCancel_FullMethodName = "/express.Express/ExpressAdminCancel" + Express_DeliveryOrderCreate_FullMethodName = "/express.Express/DeliveryOrderCreate" ) // ExpressClient is the client API for Express service. @@ -50,6 +56,12 @@ type ExpressClient interface { ExpressDelivering(ctx context.Context, in *DeliveringRequest, opts ...grpc.CallOption) (*Response, error) ExpressSfBack(ctx context.Context, in *EmtpyRequest, opts ...grpc.CallOption) (*SfResponse, error) ExpressJdBack(ctx context.Context, in *EmtpyRequest, opts ...grpc.CallOption) (*Response, error) + ExpressApiQuery(ctx context.Context, in *IdApiRequest, opts ...grpc.CallOption) (*Response, error) + ExpressAdminQuery(ctx context.Context, in *IdRequest, opts ...grpc.CallOption) (*Response, error) + ExpressApiEstimated(ctx context.Context, in *IdApiRequest, opts ...grpc.CallOption) (*Response, error) + ExpressAdminEstimated(ctx context.Context, in *IdRequest, opts ...grpc.CallOption) (*Response, error) + ExpressApiCancel(ctx context.Context, in *IdApiRequest, opts ...grpc.CallOption) (*Response, error) + ExpressAdminCancel(ctx context.Context, in *IdRequest, opts ...grpc.CallOption) (*Response, error) // 添加生成订单的发货信息 DeliveryOrderCreate(ctx context.Context, in *DeliveryOrderCreateRequest, opts ...grpc.CallOption) (*IdResponse, error) } @@ -172,6 +184,66 @@ func (c *expressClient) ExpressJdBack(ctx context.Context, in *EmtpyRequest, opt return out, nil } +func (c *expressClient) ExpressApiQuery(ctx context.Context, in *IdApiRequest, opts ...grpc.CallOption) (*Response, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Response) + err := c.cc.Invoke(ctx, Express_ExpressApiQuery_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *expressClient) ExpressAdminQuery(ctx context.Context, in *IdRequest, opts ...grpc.CallOption) (*Response, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Response) + err := c.cc.Invoke(ctx, Express_ExpressAdminQuery_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *expressClient) ExpressApiEstimated(ctx context.Context, in *IdApiRequest, opts ...grpc.CallOption) (*Response, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Response) + err := c.cc.Invoke(ctx, Express_ExpressApiEstimated_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *expressClient) ExpressAdminEstimated(ctx context.Context, in *IdRequest, opts ...grpc.CallOption) (*Response, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Response) + err := c.cc.Invoke(ctx, Express_ExpressAdminEstimated_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *expressClient) ExpressApiCancel(ctx context.Context, in *IdApiRequest, opts ...grpc.CallOption) (*Response, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Response) + err := c.cc.Invoke(ctx, Express_ExpressApiCancel_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *expressClient) ExpressAdminCancel(ctx context.Context, in *IdRequest, opts ...grpc.CallOption) (*Response, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Response) + err := c.cc.Invoke(ctx, Express_ExpressAdminCancel_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *expressClient) DeliveryOrderCreate(ctx context.Context, in *DeliveryOrderCreateRequest, opts ...grpc.CallOption) (*IdResponse, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(IdResponse) @@ -199,6 +271,12 @@ type ExpressServer interface { ExpressDelivering(context.Context, *DeliveringRequest) (*Response, error) ExpressSfBack(context.Context, *EmtpyRequest) (*SfResponse, error) ExpressJdBack(context.Context, *EmtpyRequest) (*Response, error) + ExpressApiQuery(context.Context, *IdApiRequest) (*Response, error) + ExpressAdminQuery(context.Context, *IdRequest) (*Response, error) + ExpressApiEstimated(context.Context, *IdApiRequest) (*Response, error) + ExpressAdminEstimated(context.Context, *IdRequest) (*Response, error) + ExpressApiCancel(context.Context, *IdApiRequest) (*Response, error) + ExpressAdminCancel(context.Context, *IdRequest) (*Response, error) // 添加生成订单的发货信息 DeliveryOrderCreate(context.Context, *DeliveryOrderCreateRequest) (*IdResponse, error) mustEmbedUnimplementedExpressServer() @@ -244,6 +322,24 @@ func (UnimplementedExpressServer) ExpressSfBack(context.Context, *EmtpyRequest) func (UnimplementedExpressServer) ExpressJdBack(context.Context, *EmtpyRequest) (*Response, error) { return nil, status.Error(codes.Unimplemented, "method ExpressJdBack not implemented") } +func (UnimplementedExpressServer) ExpressApiQuery(context.Context, *IdApiRequest) (*Response, error) { + return nil, status.Error(codes.Unimplemented, "method ExpressApiQuery not implemented") +} +func (UnimplementedExpressServer) ExpressAdminQuery(context.Context, *IdRequest) (*Response, error) { + return nil, status.Error(codes.Unimplemented, "method ExpressAdminQuery not implemented") +} +func (UnimplementedExpressServer) ExpressApiEstimated(context.Context, *IdApiRequest) (*Response, error) { + return nil, status.Error(codes.Unimplemented, "method ExpressApiEstimated not implemented") +} +func (UnimplementedExpressServer) ExpressAdminEstimated(context.Context, *IdRequest) (*Response, error) { + return nil, status.Error(codes.Unimplemented, "method ExpressAdminEstimated not implemented") +} +func (UnimplementedExpressServer) ExpressApiCancel(context.Context, *IdApiRequest) (*Response, error) { + return nil, status.Error(codes.Unimplemented, "method ExpressApiCancel not implemented") +} +func (UnimplementedExpressServer) ExpressAdminCancel(context.Context, *IdRequest) (*Response, error) { + return nil, status.Error(codes.Unimplemented, "method ExpressAdminCancel not implemented") +} func (UnimplementedExpressServer) DeliveryOrderCreate(context.Context, *DeliveryOrderCreateRequest) (*IdResponse, error) { return nil, status.Error(codes.Unimplemented, "method DeliveryOrderCreate not implemented") } @@ -466,6 +562,114 @@ func _Express_ExpressJdBack_Handler(srv interface{}, ctx context.Context, dec fu return interceptor(ctx, in, info, handler) } +func _Express_ExpressApiQuery_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IdApiRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExpressServer).ExpressApiQuery(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Express_ExpressApiQuery_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExpressServer).ExpressApiQuery(ctx, req.(*IdApiRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Express_ExpressAdminQuery_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IdRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExpressServer).ExpressAdminQuery(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Express_ExpressAdminQuery_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExpressServer).ExpressAdminQuery(ctx, req.(*IdRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Express_ExpressApiEstimated_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IdApiRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExpressServer).ExpressApiEstimated(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Express_ExpressApiEstimated_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExpressServer).ExpressApiEstimated(ctx, req.(*IdApiRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Express_ExpressAdminEstimated_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IdRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExpressServer).ExpressAdminEstimated(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Express_ExpressAdminEstimated_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExpressServer).ExpressAdminEstimated(ctx, req.(*IdRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Express_ExpressApiCancel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IdApiRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExpressServer).ExpressApiCancel(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Express_ExpressApiCancel_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExpressServer).ExpressApiCancel(ctx, req.(*IdApiRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Express_ExpressAdminCancel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IdRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExpressServer).ExpressAdminCancel(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Express_ExpressAdminCancel_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExpressServer).ExpressAdminCancel(ctx, req.(*IdRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _Express_DeliveryOrderCreate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(DeliveryOrderCreateRequest) if err := dec(in); err != nil { @@ -535,6 +739,30 @@ var Express_ServiceDesc = grpc.ServiceDesc{ MethodName: "ExpressJdBack", Handler: _Express_ExpressJdBack_Handler, }, + { + MethodName: "ExpressApiQuery", + Handler: _Express_ExpressApiQuery_Handler, + }, + { + MethodName: "ExpressAdminQuery", + Handler: _Express_ExpressAdminQuery_Handler, + }, + { + MethodName: "ExpressApiEstimated", + Handler: _Express_ExpressApiEstimated_Handler, + }, + { + MethodName: "ExpressAdminEstimated", + Handler: _Express_ExpressAdminEstimated_Handler, + }, + { + MethodName: "ExpressApiCancel", + Handler: _Express_ExpressApiCancel_Handler, + }, + { + MethodName: "ExpressAdminCancel", + Handler: _Express_ExpressAdminCancel_Handler, + }, { MethodName: "DeliveryOrderCreate", Handler: _Express_DeliveryOrderCreate_Handler, diff --git a/rpc/order/order.pb b/rpc/order/order.pb index 79a9892..49ced41 100644 Binary files a/rpc/order/order.pb and b/rpc/order/order.pb differ diff --git a/rpc/order/order.proto b/rpc/order/order.proto index bdf99d0..e245af4 100644 --- a/rpc/order/order.proto +++ b/rpc/order/order.proto @@ -119,6 +119,41 @@ message UpdateOrderDeliverStatusResponse { int32 num = 1; } +message GetOrderInfoRequest { + int64 userId = 1; + string OrderSn = 2; + int32 type = 3; +} + +message OrderInfoResponse { + int64 id =1; + string order_sn = 2; + int64 store_id = 3; + string store_name = 4; + string sale_name = 5; + string sale_mobile = 6; + int64 user_id = 7; + string user_name = 8; + int64 sale_id = 9; + string mobile = 10; + string address = 11; + string addressee =12; + string district_ids = 13; + double total_price = 14; + double pay_price = 15; + int32 pay_type = 16; + int32 deliver_status = 17; + int32 status = 18; + int32 is_supply = 19; + string note = 20; + string product_ids = 21; + string out_trade_no = 22; + int32 type = 23; + int32 verify_status = 24; + int32 create_type = 25; + int32 refund_status = 26; +} + service order { rpc Items(OrderItemsRequest) returns(Response){ option (google.api.http) = { @@ -223,4 +258,5 @@ service order { }; }; rpc UpdateOrderDeliverStatus(UpdateOrderDeliverStatusRequest) returns(UpdateOrderDeliverStatusResponse); + rpc GetOrderInfo(GetOrderInfoRequest) returns(OrderInfoResponse); } \ No newline at end of file diff --git a/rpc/order/pb/order.pb.go b/rpc/order/pb/order.pb.go index 3f3447c..f671bb8 100644 --- a/rpc/order/pb/order.pb.go +++ b/rpc/order/pb/order.pb.go @@ -1142,6 +1142,310 @@ func (x *UpdateOrderDeliverStatusResponse) GetNum() int32 { return 0 } +type GetOrderInfoRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + OrderSn string `protobuf:"bytes,2,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` + Type int32 `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetOrderInfoRequest) Reset() { + *x = GetOrderInfoRequest{} + mi := &file_order_order_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetOrderInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetOrderInfoRequest) ProtoMessage() {} + +func (x *GetOrderInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_order_order_proto_msgTypes[18] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetOrderInfoRequest.ProtoReflect.Descriptor instead. +func (*GetOrderInfoRequest) Descriptor() ([]byte, []int) { + return file_order_order_proto_rawDescGZIP(), []int{18} +} + +func (x *GetOrderInfoRequest) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *GetOrderInfoRequest) GetOrderSn() string { + if x != nil { + return x.OrderSn + } + return "" +} + +func (x *GetOrderInfoRequest) GetType() int32 { + if x != nil { + return x.Type + } + return 0 +} + +type OrderInfoResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + OrderSn string `protobuf:"bytes,2,opt,name=order_sn,json=orderSn,proto3" json:"order_sn,omitempty"` + StoreId int64 `protobuf:"varint,3,opt,name=store_id,json=storeId,proto3" json:"store_id,omitempty"` + StoreName string `protobuf:"bytes,4,opt,name=store_name,json=storeName,proto3" json:"store_name,omitempty"` + SaleName string `protobuf:"bytes,5,opt,name=sale_name,json=saleName,proto3" json:"sale_name,omitempty"` + SaleMobile string `protobuf:"bytes,6,opt,name=sale_mobile,json=saleMobile,proto3" json:"sale_mobile,omitempty"` + UserId int64 `protobuf:"varint,7,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + UserName string `protobuf:"bytes,8,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + SaleId int64 `protobuf:"varint,9,opt,name=sale_id,json=saleId,proto3" json:"sale_id,omitempty"` + Mobile string `protobuf:"bytes,10,opt,name=mobile,proto3" json:"mobile,omitempty"` + Address string `protobuf:"bytes,11,opt,name=address,proto3" json:"address,omitempty"` + Addressee string `protobuf:"bytes,12,opt,name=addressee,proto3" json:"addressee,omitempty"` + DistrictIds string `protobuf:"bytes,13,opt,name=district_ids,json=districtIds,proto3" json:"district_ids,omitempty"` + TotalPrice float64 `protobuf:"fixed64,14,opt,name=total_price,json=totalPrice,proto3" json:"total_price,omitempty"` + PayPrice float64 `protobuf:"fixed64,15,opt,name=pay_price,json=payPrice,proto3" json:"pay_price,omitempty"` + PayType int32 `protobuf:"varint,16,opt,name=pay_type,json=payType,proto3" json:"pay_type,omitempty"` + DeliverStatus int32 `protobuf:"varint,17,opt,name=deliver_status,json=deliverStatus,proto3" json:"deliver_status,omitempty"` + Status int32 `protobuf:"varint,18,opt,name=status,proto3" json:"status,omitempty"` + IsSupply int32 `protobuf:"varint,19,opt,name=is_supply,json=isSupply,proto3" json:"is_supply,omitempty"` + Note string `protobuf:"bytes,20,opt,name=note,proto3" json:"note,omitempty"` + ProductIds string `protobuf:"bytes,21,opt,name=product_ids,json=productIds,proto3" json:"product_ids,omitempty"` + OutTradeNo string `protobuf:"bytes,22,opt,name=out_trade_no,json=outTradeNo,proto3" json:"out_trade_no,omitempty"` + Type int32 `protobuf:"varint,23,opt,name=type,proto3" json:"type,omitempty"` + VerifyStatus int32 `protobuf:"varint,24,opt,name=verify_status,json=verifyStatus,proto3" json:"verify_status,omitempty"` + CreateType int32 `protobuf:"varint,25,opt,name=create_type,json=createType,proto3" json:"create_type,omitempty"` + RefundStatus int32 `protobuf:"varint,26,opt,name=refund_status,json=refundStatus,proto3" json:"refund_status,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *OrderInfoResponse) Reset() { + *x = OrderInfoResponse{} + mi := &file_order_order_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *OrderInfoResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderInfoResponse) ProtoMessage() {} + +func (x *OrderInfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_order_order_proto_msgTypes[19] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrderInfoResponse.ProtoReflect.Descriptor instead. +func (*OrderInfoResponse) Descriptor() ([]byte, []int) { + return file_order_order_proto_rawDescGZIP(), []int{19} +} + +func (x *OrderInfoResponse) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *OrderInfoResponse) GetOrderSn() string { + if x != nil { + return x.OrderSn + } + return "" +} + +func (x *OrderInfoResponse) GetStoreId() int64 { + if x != nil { + return x.StoreId + } + return 0 +} + +func (x *OrderInfoResponse) GetStoreName() string { + if x != nil { + return x.StoreName + } + return "" +} + +func (x *OrderInfoResponse) GetSaleName() string { + if x != nil { + return x.SaleName + } + return "" +} + +func (x *OrderInfoResponse) GetSaleMobile() string { + if x != nil { + return x.SaleMobile + } + return "" +} + +func (x *OrderInfoResponse) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *OrderInfoResponse) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *OrderInfoResponse) GetSaleId() int64 { + if x != nil { + return x.SaleId + } + return 0 +} + +func (x *OrderInfoResponse) GetMobile() string { + if x != nil { + return x.Mobile + } + return "" +} + +func (x *OrderInfoResponse) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +func (x *OrderInfoResponse) GetAddressee() string { + if x != nil { + return x.Addressee + } + return "" +} + +func (x *OrderInfoResponse) GetDistrictIds() string { + if x != nil { + return x.DistrictIds + } + return "" +} + +func (x *OrderInfoResponse) GetTotalPrice() float64 { + if x != nil { + return x.TotalPrice + } + return 0 +} + +func (x *OrderInfoResponse) GetPayPrice() float64 { + if x != nil { + return x.PayPrice + } + return 0 +} + +func (x *OrderInfoResponse) GetPayType() int32 { + if x != nil { + return x.PayType + } + return 0 +} + +func (x *OrderInfoResponse) GetDeliverStatus() int32 { + if x != nil { + return x.DeliverStatus + } + return 0 +} + +func (x *OrderInfoResponse) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *OrderInfoResponse) GetIsSupply() int32 { + if x != nil { + return x.IsSupply + } + return 0 +} + +func (x *OrderInfoResponse) GetNote() string { + if x != nil { + return x.Note + } + return "" +} + +func (x *OrderInfoResponse) GetProductIds() string { + if x != nil { + return x.ProductIds + } + return "" +} + +func (x *OrderInfoResponse) GetOutTradeNo() string { + if x != nil { + return x.OutTradeNo + } + return "" +} + +func (x *OrderInfoResponse) GetType() int32 { + if x != nil { + return x.Type + } + return 0 +} + +func (x *OrderInfoResponse) GetVerifyStatus() int32 { + if x != nil { + return x.VerifyStatus + } + return 0 +} + +func (x *OrderInfoResponse) GetCreateType() int32 { + if x != nil { + return x.CreateType + } + return 0 +} + +func (x *OrderInfoResponse) GetRefundStatus() int32 { + if x != nil { + return x.RefundStatus + } + return 0 +} + var File_order_order_proto protoreflect.FileDescriptor const file_order_order_proto_rawDesc = "" + @@ -1229,7 +1533,45 @@ const file_order_order_proto_rawDesc = "" + "\x0edeliver_status\x18\x02 \x01(\x05R\rdeliverStatus\x12\x0e\n" + "\x02id\x18\x03 \x01(\tR\x02id\"4\n" + " UpdateOrderDeliverStatusResponse\x12\x10\n" + - "\x03num\x18\x01 \x01(\x05R\x03num2\xe1\f\n" + + "\x03num\x18\x01 \x01(\x05R\x03num\"[\n" + + "\x13GetOrderInfoRequest\x12\x16\n" + + "\x06userId\x18\x01 \x01(\x03R\x06userId\x12\x18\n" + + "\aOrderSn\x18\x02 \x01(\tR\aOrderSn\x12\x12\n" + + "\x04type\x18\x03 \x01(\x05R\x04type\"\x83\x06\n" + + "\x11OrderInfoResponse\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x03R\x02id\x12\x19\n" + + "\border_sn\x18\x02 \x01(\tR\aorderSn\x12\x19\n" + + "\bstore_id\x18\x03 \x01(\x03R\astoreId\x12\x1d\n" + + "\n" + + "store_name\x18\x04 \x01(\tR\tstoreName\x12\x1b\n" + + "\tsale_name\x18\x05 \x01(\tR\bsaleName\x12\x1f\n" + + "\vsale_mobile\x18\x06 \x01(\tR\n" + + "saleMobile\x12\x17\n" + + "\auser_id\x18\a \x01(\x03R\x06userId\x12\x1b\n" + + "\tuser_name\x18\b \x01(\tR\buserName\x12\x17\n" + + "\asale_id\x18\t \x01(\x03R\x06saleId\x12\x16\n" + + "\x06mobile\x18\n" + + " \x01(\tR\x06mobile\x12\x18\n" + + "\aaddress\x18\v \x01(\tR\aaddress\x12\x1c\n" + + "\taddressee\x18\f \x01(\tR\taddressee\x12!\n" + + "\fdistrict_ids\x18\r \x01(\tR\vdistrictIds\x12\x1f\n" + + "\vtotal_price\x18\x0e \x01(\x01R\n" + + "totalPrice\x12\x1b\n" + + "\tpay_price\x18\x0f \x01(\x01R\bpayPrice\x12\x19\n" + + "\bpay_type\x18\x10 \x01(\x05R\apayType\x12%\n" + + "\x0edeliver_status\x18\x11 \x01(\x05R\rdeliverStatus\x12\x16\n" + + "\x06status\x18\x12 \x01(\x05R\x06status\x12\x1b\n" + + "\tis_supply\x18\x13 \x01(\x05R\bisSupply\x12\x12\n" + + "\x04note\x18\x14 \x01(\tR\x04note\x12\x1f\n" + + "\vproduct_ids\x18\x15 \x01(\tR\n" + + "productIds\x12 \n" + + "\fout_trade_no\x18\x16 \x01(\tR\n" + + "outTradeNo\x12\x12\n" + + "\x04type\x18\x17 \x01(\x05R\x04type\x12#\n" + + "\rverify_status\x18\x18 \x01(\x05R\fverifyStatus\x12\x1f\n" + + "\vcreate_type\x18\x19 \x01(\x05R\n" + + "createType\x12#\n" + + "\rrefund_status\x18\x1a \x01(\x05R\frefundStatus2\xa7\r\n" + "\x05order\x12T\n" + "\x05Items\x12\x18.order.OrderItemsRequest\x1a\x0f.order.Response\" \x82\xd3\xe4\x93\x02\x1a:\x01*\x12\x15/admin/v3/order/items\x12X\n" + "\tWebCreate\x12\x19.order.CreateOrderRequest\x1a\x0f.order.Response\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v3/order/create\x12b\n" + @@ -1247,7 +1589,8 @@ const file_order_order_proto_rawDesc = "" + "\x12OrderAuditingItems\x12 .order.OrderAuditingItemsRequest\x1a\x0f.order.Response\")\x82\xd3\xe4\x93\x02#:\x01*\x12\x1e/admin/v3/order/auditing/items\x12b\n" + "\rOrderAuditing\x12\x1b.order.OrderAuditingRequest\x1a\x0f.order.Response\"#\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/admin/v3/order/auditing\x12a\n" + "\vOrderCreate\x12\x1e.order.AdminCreateOrderRequest\x1a\x0f.order.Response\"!\x82\xd3\xe4\x93\x02\x1b:\x01*\"\x16/admin/v3/order/create\x12k\n" + - "\x18UpdateOrderDeliverStatus\x12&.order.UpdateOrderDeliverStatusRequest\x1a'.order.UpdateOrderDeliverStatusResponseB\x19Z\x17lone-services/rpc/orderb\x06proto3" + "\x18UpdateOrderDeliverStatus\x12&.order.UpdateOrderDeliverStatusRequest\x1a'.order.UpdateOrderDeliverStatusResponse\x12D\n" + + "\fGetOrderInfo\x12\x1a.order.GetOrderInfoRequest\x1a\x18.order.OrderInfoResponseB\x19Z\x17lone-services/rpc/orderb\x06proto3" var ( file_order_order_proto_rawDescOnce sync.Once @@ -1261,7 +1604,7 @@ func file_order_order_proto_rawDescGZIP() []byte { return file_order_order_proto_rawDescData } -var file_order_order_proto_msgTypes = make([]protoimpl.MessageInfo, 18) +var file_order_order_proto_msgTypes = make([]protoimpl.MessageInfo, 20) var file_order_order_proto_goTypes = []any{ (*OrderItemsRequest)(nil), // 0: order.OrderItemsRequest (*Response)(nil), // 1: order.Response @@ -1281,6 +1624,8 @@ var file_order_order_proto_goTypes = []any{ (*AdminCreateOrderRequest)(nil), // 15: order.AdminCreateOrderRequest (*UpdateOrderDeliverStatusRequest)(nil), // 16: order.UpdateOrderDeliverStatusRequest (*UpdateOrderDeliverStatusResponse)(nil), // 17: order.UpdateOrderDeliverStatusResponse + (*GetOrderInfoRequest)(nil), // 18: order.GetOrderInfoRequest + (*OrderInfoResponse)(nil), // 19: order.OrderInfoResponse } var file_order_order_proto_depIdxs = []int32{ 0, // 0: order.order.Items:input_type -> order.OrderItemsRequest @@ -1300,25 +1645,27 @@ var file_order_order_proto_depIdxs = []int32{ 14, // 14: order.order.OrderAuditing:input_type -> order.OrderAuditingRequest 15, // 15: order.order.OrderCreate:input_type -> order.AdminCreateOrderRequest 16, // 16: order.order.UpdateOrderDeliverStatus:input_type -> order.UpdateOrderDeliverStatusRequest - 1, // 17: order.order.Items:output_type -> order.Response - 1, // 18: order.order.WebCreate:output_type -> order.Response - 1, // 19: order.order.WebCreateOne:output_type -> order.Response - 1, // 20: order.order.WebAddressCreate:output_type -> order.Response - 1, // 21: order.order.WebAddressEdit:output_type -> order.Response - 1, // 22: order.order.WebAddressDel:output_type -> order.Response - 1, // 23: order.order.WebAddressDef:output_type -> order.Response - 1, // 24: order.order.WebAddressInfo:output_type -> order.Response - 1, // 25: order.order.WebAddressItems:output_type -> order.Response - 1, // 26: order.order.WebCart:output_type -> order.Response - 1, // 27: order.order.WebCartEdit:output_type -> order.Response - 1, // 28: order.order.AddressItem:output_type -> order.Response - 1, // 29: order.order.AddressByStore:output_type -> order.Response - 1, // 30: order.order.OrderAuditingItems:output_type -> order.Response - 1, // 31: order.order.OrderAuditing:output_type -> order.Response - 1, // 32: order.order.OrderCreate:output_type -> order.Response - 17, // 33: order.order.UpdateOrderDeliverStatus:output_type -> order.UpdateOrderDeliverStatusResponse - 17, // [17:34] is the sub-list for method output_type - 0, // [0:17] is the sub-list for method input_type + 18, // 17: order.order.GetOrderInfo:input_type -> order.GetOrderInfoRequest + 1, // 18: order.order.Items:output_type -> order.Response + 1, // 19: order.order.WebCreate:output_type -> order.Response + 1, // 20: order.order.WebCreateOne:output_type -> order.Response + 1, // 21: order.order.WebAddressCreate:output_type -> order.Response + 1, // 22: order.order.WebAddressEdit:output_type -> order.Response + 1, // 23: order.order.WebAddressDel:output_type -> order.Response + 1, // 24: order.order.WebAddressDef:output_type -> order.Response + 1, // 25: order.order.WebAddressInfo:output_type -> order.Response + 1, // 26: order.order.WebAddressItems:output_type -> order.Response + 1, // 27: order.order.WebCart:output_type -> order.Response + 1, // 28: order.order.WebCartEdit:output_type -> order.Response + 1, // 29: order.order.AddressItem:output_type -> order.Response + 1, // 30: order.order.AddressByStore:output_type -> order.Response + 1, // 31: order.order.OrderAuditingItems:output_type -> order.Response + 1, // 32: order.order.OrderAuditing:output_type -> order.Response + 1, // 33: order.order.OrderCreate:output_type -> order.Response + 17, // 34: order.order.UpdateOrderDeliverStatus:output_type -> order.UpdateOrderDeliverStatusResponse + 19, // 35: order.order.GetOrderInfo:output_type -> order.OrderInfoResponse + 18, // [18:36] is the sub-list for method output_type + 0, // [0:18] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name @@ -1335,7 +1682,7 @@ func file_order_order_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_order_order_proto_rawDesc), len(file_order_order_proto_rawDesc)), NumEnums: 0, - NumMessages: 18, + NumMessages: 20, NumExtensions: 0, NumServices: 1, }, diff --git a/rpc/order/pb/order_grpc.pb.go b/rpc/order/pb/order_grpc.pb.go index edd1347..23b18f0 100644 --- a/rpc/order/pb/order_grpc.pb.go +++ b/rpc/order/pb/order_grpc.pb.go @@ -36,6 +36,7 @@ const ( Order_OrderAuditing_FullMethodName = "/order.order/OrderAuditing" Order_OrderCreate_FullMethodName = "/order.order/OrderCreate" Order_UpdateOrderDeliverStatus_FullMethodName = "/order.order/UpdateOrderDeliverStatus" + Order_GetOrderInfo_FullMethodName = "/order.order/GetOrderInfo" ) // OrderClient is the client API for Order service. @@ -59,6 +60,7 @@ type OrderClient interface { OrderAuditing(ctx context.Context, in *OrderAuditingRequest, opts ...grpc.CallOption) (*Response, error) OrderCreate(ctx context.Context, in *AdminCreateOrderRequest, opts ...grpc.CallOption) (*Response, error) UpdateOrderDeliverStatus(ctx context.Context, in *UpdateOrderDeliverStatusRequest, opts ...grpc.CallOption) (*UpdateOrderDeliverStatusResponse, error) + GetOrderInfo(ctx context.Context, in *GetOrderInfoRequest, opts ...grpc.CallOption) (*OrderInfoResponse, error) } type orderClient struct { @@ -239,6 +241,16 @@ func (c *orderClient) UpdateOrderDeliverStatus(ctx context.Context, in *UpdateOr return out, nil } +func (c *orderClient) GetOrderInfo(ctx context.Context, in *GetOrderInfoRequest, opts ...grpc.CallOption) (*OrderInfoResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(OrderInfoResponse) + err := c.cc.Invoke(ctx, Order_GetOrderInfo_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + // OrderServer is the server API for Order service. // All implementations must embed UnimplementedOrderServer // for forward compatibility. @@ -260,6 +272,7 @@ type OrderServer interface { OrderAuditing(context.Context, *OrderAuditingRequest) (*Response, error) OrderCreate(context.Context, *AdminCreateOrderRequest) (*Response, error) UpdateOrderDeliverStatus(context.Context, *UpdateOrderDeliverStatusRequest) (*UpdateOrderDeliverStatusResponse, error) + GetOrderInfo(context.Context, *GetOrderInfoRequest) (*OrderInfoResponse, error) mustEmbedUnimplementedOrderServer() } @@ -321,6 +334,9 @@ func (UnimplementedOrderServer) OrderCreate(context.Context, *AdminCreateOrderRe func (UnimplementedOrderServer) UpdateOrderDeliverStatus(context.Context, *UpdateOrderDeliverStatusRequest) (*UpdateOrderDeliverStatusResponse, error) { return nil, status.Error(codes.Unimplemented, "method UpdateOrderDeliverStatus not implemented") } +func (UnimplementedOrderServer) GetOrderInfo(context.Context, *GetOrderInfoRequest) (*OrderInfoResponse, error) { + return nil, status.Error(codes.Unimplemented, "method GetOrderInfo not implemented") +} func (UnimplementedOrderServer) mustEmbedUnimplementedOrderServer() {} func (UnimplementedOrderServer) testEmbeddedByValue() {} @@ -648,6 +664,24 @@ func _Order_UpdateOrderDeliverStatus_Handler(srv interface{}, ctx context.Contex return interceptor(ctx, in, info, handler) } +func _Order_GetOrderInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetOrderInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OrderServer).GetOrderInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Order_GetOrderInfo_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OrderServer).GetOrderInfo(ctx, req.(*GetOrderInfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + // Order_ServiceDesc is the grpc.ServiceDesc for Order service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -723,6 +757,10 @@ var Order_ServiceDesc = grpc.ServiceDesc{ MethodName: "UpdateOrderDeliverStatus", Handler: _Order_UpdateOrderDeliverStatus_Handler, }, + { + MethodName: "GetOrderInfo", + Handler: _Order_GetOrderInfo_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "order/order.proto", diff --git a/services/express/expressclient/express.go b/services/express/expressclient/express.go index 0bb69b1..f8ebccf 100644 --- a/services/express/expressclient/express.go +++ b/services/express/expressclient/express.go @@ -21,6 +21,7 @@ type ( EmtpyRequest = express.EmtpyRequest ExpressCompanyRequest = express.ExpressCompanyRequest HistoryRequest = express.HistoryRequest + IdApiRequest = express.IdApiRequest IdRequest = express.IdRequest IdResponse = express.IdResponse Response = express.Response @@ -41,6 +42,12 @@ type ( ExpressDelivering(ctx context.Context, in *DeliveringRequest, opts ...grpc.CallOption) (*Response, error) ExpressSfBack(ctx context.Context, in *EmtpyRequest, opts ...grpc.CallOption) (*SfResponse, error) ExpressJdBack(ctx context.Context, in *EmtpyRequest, opts ...grpc.CallOption) (*Response, error) + ExpressApiQuery(ctx context.Context, in *IdApiRequest, opts ...grpc.CallOption) (*Response, error) + ExpressAdminQuery(ctx context.Context, in *IdRequest, opts ...grpc.CallOption) (*Response, error) + ExpressApiEstimated(ctx context.Context, in *IdApiRequest, opts ...grpc.CallOption) (*Response, error) + ExpressAdminEstimated(ctx context.Context, in *IdRequest, opts ...grpc.CallOption) (*Response, error) + ExpressApiCancel(ctx context.Context, in *IdApiRequest, opts ...grpc.CallOption) (*Response, error) + ExpressAdminCancel(ctx context.Context, in *IdRequest, opts ...grpc.CallOption) (*Response, error) // 添加生成订单的发货信息 DeliveryOrderCreate(ctx context.Context, in *DeliveryOrderCreateRequest, opts ...grpc.CallOption) (*IdResponse, error) } @@ -113,6 +120,36 @@ func (m *defaultExpress) ExpressJdBack(ctx context.Context, in *EmtpyRequest, op return client.ExpressJdBack(ctx, in, opts...) } +func (m *defaultExpress) ExpressApiQuery(ctx context.Context, in *IdApiRequest, opts ...grpc.CallOption) (*Response, error) { + client := express.NewExpressClient(m.cli.Conn()) + return client.ExpressApiQuery(ctx, in, opts...) +} + +func (m *defaultExpress) ExpressAdminQuery(ctx context.Context, in *IdRequest, opts ...grpc.CallOption) (*Response, error) { + client := express.NewExpressClient(m.cli.Conn()) + return client.ExpressAdminQuery(ctx, in, opts...) +} + +func (m *defaultExpress) ExpressApiEstimated(ctx context.Context, in *IdApiRequest, opts ...grpc.CallOption) (*Response, error) { + client := express.NewExpressClient(m.cli.Conn()) + return client.ExpressApiEstimated(ctx, in, opts...) +} + +func (m *defaultExpress) ExpressAdminEstimated(ctx context.Context, in *IdRequest, opts ...grpc.CallOption) (*Response, error) { + client := express.NewExpressClient(m.cli.Conn()) + return client.ExpressAdminEstimated(ctx, in, opts...) +} + +func (m *defaultExpress) ExpressApiCancel(ctx context.Context, in *IdApiRequest, opts ...grpc.CallOption) (*Response, error) { + client := express.NewExpressClient(m.cli.Conn()) + return client.ExpressApiCancel(ctx, in, opts...) +} + +func (m *defaultExpress) ExpressAdminCancel(ctx context.Context, in *IdRequest, opts ...grpc.CallOption) (*Response, error) { + client := express.NewExpressClient(m.cli.Conn()) + return client.ExpressAdminCancel(ctx, in, opts...) +} + // 添加生成订单的发货信息 func (m *defaultExpress) DeliveryOrderCreate(ctx context.Context, in *DeliveryOrderCreateRequest, opts ...grpc.CallOption) (*IdResponse, error) { client := express.NewExpressClient(m.cli.Conn()) diff --git a/services/express/internal/logic/expressAdminCancelLogic.go b/services/express/internal/logic/expressAdminCancelLogic.go new file mode 100644 index 0000000..bbad4fc --- /dev/null +++ b/services/express/internal/logic/expressAdminCancelLogic.go @@ -0,0 +1,73 @@ +package logic + +import ( + "context" + "lone-services/pkg/modelbase" + "lone-services/pkg/utils" + "lone-services/pkg/validate" + "lone-services/services/express/internal/dao" + "lone-services/services/express/internal/model" + "strconv" + + "lone-services/rpc/express/pb" + "lone-services/services/express/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type ExpressAdminCancelLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger + BaseLogic +} + +func NewExpressAdminCancelLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ExpressAdminCancelLogic { + return &ExpressAdminCancelLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *ExpressAdminCancelLogic) ExpressAdminCancel(in *express.IdRequest) (*express.Response, error) { + var v validate.InfoValidator + if fail := l.checkParams(in, &v); fail != nil { + return fail, nil + } + adminInfo := utils.GetUserFromCtx(l.ctx) + if adminInfo.ID < utils.NumberOne { + return l.fail(utils.ErrorNoLoginInfo) + } + w := modelbase.Params{Eq: map[string]string{"id": strconv.Itoa(int(in.Id))}} + var upData dao.DeliveryOrderPrintEdit + err := model.DeliveryOrderModel{}.Init().GetOne(w, &upData) + if err != nil { + l.Logger.Error("没有找到快递数据", err) + return l.fail(utils.ErrorNotFund) + } + if upData.Id < utils.NumberZero { + return l.fail(utils.ErrorNotFund) + } + + tw := modelbase.Params{Eq: map[string]string{"id": strconv.Itoa(upData.TransitId)}} + var transitInfo dao.ExpressSend + err = model.ExpressModel{}.Init().GetOne(tw, &transitInfo) + if err != nil { + l.Logger.Error("发货地址信息没有找到", upData.TransitId, err) + return l.fail(utils.SetError(utils.ErrorNotFund, "没有找到发货的快递信息")) + } + if transitInfo.Id < utils.NumberOne { + return l.fail(utils.SetError(utils.ErrorNotFund, "没有找到发货的快递信息")) + + } + client, clientErr := svc.GetTransitInfo(transitInfo) + if clientErr != utils.Ok { + return l.fail(clientErr) + } + retStatus := svc.Cancel(client, w, upData, dao.SendStatusCancel, l.svcCtx.OrderSvcName) + if retStatus != utils.Ok { + return l.fail(retStatus) + } + return l.ok(utils.NumberOne) +} diff --git a/services/express/internal/logic/expressAdminEstimatedLogic.go b/services/express/internal/logic/expressAdminEstimatedLogic.go new file mode 100644 index 0000000..31b6434 --- /dev/null +++ b/services/express/internal/logic/expressAdminEstimatedLogic.go @@ -0,0 +1,100 @@ +package logic + +import ( + "context" + "lone-services/pkg/modelbase" + "lone-services/pkg/utils" + "lone-services/pkg/validate" + "lone-services/services/express/internal/dao" + "lone-services/services/express/internal/model" + "strconv" + "strings" + "time" + + "lone-services/rpc/express/pb" + "lone-services/services/express/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type ExpressAdminEstimatedLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger + BaseLogic +} + +func NewExpressAdminEstimatedLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ExpressAdminEstimatedLogic { + return &ExpressAdminEstimatedLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *ExpressAdminEstimatedLogic) ExpressAdminEstimated(in *express.IdRequest) (*express.Response, error) { + var v validate.InfoValidator + if fail := l.checkParams(in, &v); fail != nil { + return fail, nil + } + adminInfo := utils.GetUserFromCtx(l.ctx) + if adminInfo.ID < utils.NumberOne { + return l.fail(utils.ErrorNoLoginInfo) + } + w := modelbase.Params{Eq: map[string]string{"id": strconv.Itoa(int(in.Id))}} + var upData dao.DeliveryOrderUpTransit + err := model.DeliveryOrderModel{}.Init().GetOne(w, &upData) + if err != nil { + l.Logger.Error("没有找到快递数据", err) + return l.fail(utils.SetError(utils.ErrorNotFund, "没有找到快递数据")) + } + if upData.Id < utils.NumberZero { + return l.fail(utils.SetError(utils.ErrorNotFund, "没有找到快递数据")) + } + + if upData.Status != dao.SendStatusOk { + return l.ok(upData.EstimatedTime) + } + + tw := modelbase.Params{Eq: map[string]string{"id": strconv.Itoa(upData.TransitId)}} + var transitInfo dao.ExpressSend + err = model.ExpressModel{}.Init().GetOne(tw, &transitInfo) + if err != nil { + l.Logger.Error("发货地址信息没有找到", upData.TransitId, err) + return l.fail(utils.SetError(utils.ErrorNotFund, "没有找到发货的快递信息")) + } + if len(upData.TransitSn) < utils.NumberOne { + return l.fail(utils.SetError(utils.ErrorNotFund, "没有找到发货的快递信息")) + } + + client, clientErr := svc.GetTransitInfo(transitInfo) + if clientErr != utils.Ok { + return l.fail(clientErr) + } + + sns := strings.Split(upData.TransitSn, utils.DecollatorComma) + res, err := client.Estimated(sns[0], transitInfo.CardNumber) + if err != nil || res.ErrorCode != utils.StringStatusOk { + l.Logger.Error("estimated transit err", err, res) + return l.fail(utils.SetError(utils.ErrorNotFund, "获取快递错误")) + } + + var toTime string + if transitInfo.TransitId == dao.ExpressCompanyJd { + toTime = time.UnixMilli(int64(res.RequestQuery["deliveryPromiseTime"].(float64))).Format(time.DateTime) + } else if transitInfo.TransitId == dao.ExpressCompanySf { + toTime = utils.GetStringByMap(res.RequestQuery, "promiseTm") + } + + if toTime == utils.StringEmpty { + return l.fail(utils.Fail) + } + + upData.EstimatedTime = toTime + _, err = model.DeliveryOrderModel{}.Init().Edit(w, &upData) + if err != nil { + return l.fail(utils.Fail) + } + + return l.ok(toTime) +} diff --git a/services/express/internal/logic/expressAdminQueryLogic.go b/services/express/internal/logic/expressAdminQueryLogic.go new file mode 100644 index 0000000..6f2c512 --- /dev/null +++ b/services/express/internal/logic/expressAdminQueryLogic.go @@ -0,0 +1,92 @@ +package logic + +import ( + "context" + "lone-services/pkg/modelbase" + "lone-services/pkg/utils" + "lone-services/pkg/validate" + "lone-services/services/express/internal/dao" + "lone-services/services/express/internal/model" + "strconv" + + "lone-services/rpc/express/pb" + "lone-services/services/express/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type ExpressAdminQueryLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger + BaseLogic +} + +func NewExpressAdminQueryLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ExpressAdminQueryLogic { + return &ExpressAdminQueryLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *ExpressAdminQueryLogic) ExpressAdminQuery(in *express.IdRequest) (*express.Response, error) { + var v validate.InfoValidator + if fail := l.checkParams(in, &v); fail != nil { + return fail, nil + } + adminInfo := utils.GetUserFromCtx(l.ctx) + if adminInfo.ID < utils.NumberOne { + return l.fail(utils.ErrorNoLoginInfo) + } + w := modelbase.Params{Eq: map[string]string{"id": strconv.Itoa(int(in.Id))}} + var upData dao.DeliveryOrderUpTransit + err := model.DeliveryOrderModel{}.Init().GetOne(w, &upData) + if err != nil { + l.Logger.Error("没有找到快递数据", err) + return l.fail(utils.SetError(utils.ErrorNotFund, "没有找到快递数据")) + } + if upData.Id < utils.NumberZero { + return l.fail(utils.SetError(utils.ErrorNotFund, "没有找到快递数据")) + } + + if upData.Status != dao.SendStatusOk { + return l.fail(utils.SetError(utils.ErrorNotFund, "没有发货")) + } + + tw := modelbase.Params{Eq: map[string]string{"id": strconv.Itoa(upData.TransitId)}} + var transitInfo dao.ExpressSend + err = model.ExpressModel{}.Init().GetOne(tw, &transitInfo) + if err != nil { + l.Logger.Error("发货地址信息没有找到", upData.TransitId, err) + return l.fail(utils.SetError(utils.ErrorNotFund, "没有找到发货的快递信息")) + } + if transitInfo.Id < utils.NumberOne { + return l.fail(utils.SetError(utils.ErrorNotFund, "没有找到发货的快递信息")) + } + + client, clientErr := svc.GetTransitInfo(transitInfo) + if clientErr != utils.Ok { + return l.fail(clientErr) + } + sn := upData.OrderSn + if transitInfo.TransitId == dao.ExpressCompanyJd { + sn = upData.TransitSn + } + res, err := client.Query(sn) + if err != nil || res.ErrorCode != utils.StringStatusOk { + l.Logger.Error("query transit err", err, res) + return l.fail(utils.SetError(utils.ErrorNotFund, "获取快递错误")) + } + + //TODO JD + //if transitInfo.TransitId == dao.ExpressCompanyJd { + // return // s.queryJdEdit(res.RequestQuery, &upData) + //} + + items, s := svc.QueryEdit(res.RequestQuery, &upData, l.svcCtx.OrderSvcName) + if s != utils.Ok { + return l.fail(s) + } + return l.ok(items) +} diff --git a/services/express/internal/logic/expressApiCancelLogic.go b/services/express/internal/logic/expressApiCancelLogic.go new file mode 100644 index 0000000..594d8a5 --- /dev/null +++ b/services/express/internal/logic/expressApiCancelLogic.go @@ -0,0 +1,77 @@ +package logic + +import ( + "context" + "lone-services/pkg/modelbase" + "lone-services/pkg/utils" + "lone-services/services/express/internal/dao" + "lone-services/services/express/internal/model" + "lone-services/services/express/validator" + "strconv" + + "lone-services/rpc/express/pb" + "lone-services/services/express/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type ExpressApiCancelLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger + BaseLogic +} + +func NewExpressApiCancelLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ExpressApiCancelLogic { + return &ExpressApiCancelLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *ExpressApiCancelLogic) ExpressApiCancel(in *express.IdApiRequest) (*express.Response, error) { + var v validator.IdApiValidator + if fail := l.checkParams(in, &v); fail != nil { + return fail, nil + } + adminInfo := utils.GetUserFromCtx(l.ctx) + if adminInfo.ID < utils.NumberOne { + return l.fail(utils.ErrorNoLoginInfo) + } + + w := modelbase.Params{Eq: map[string]string{"id": strconv.Itoa(int(in.Id))}} + var upData dao.DeliveryOrderPrintEdit + err := model.DeliveryOrderModel{}.Init().GetOne(w, &upData) + if err != nil { + l.Logger.Error("没有找到快递数据", err) + return l.fail(utils.ErrorNotFund) + } + if upData.Id < utils.NumberZero { + return l.fail(utils.ErrorNotFund) + } + orderInfo := svc.GetOrderInfo(upData.OrderSn, in.Type, l.svcCtx.OrderSvcName) + if orderInfo.Id < utils.NumberOne { + return l.fail(utils.SetError(utils.ErrorNotFund, "没有找到订单信息")) + } + tw := modelbase.Params{Eq: map[string]string{"id": strconv.Itoa(upData.TransitId)}} + var transitInfo dao.ExpressSend + err = model.ExpressModel{}.Init().GetOne(tw, &transitInfo) + if err != nil { + l.Logger.Error("发货地址信息没有找到", upData.TransitId, err) + return l.fail(utils.SetError(utils.ErrorNotFund, "没有找到发货的快递信息")) + } + if transitInfo.Id < utils.NumberOne { + return l.fail(utils.SetError(utils.ErrorNotFund, "没有找到发货的快递信息")) + + } + client, clientErr := svc.GetTransitInfo(transitInfo) + if clientErr != utils.Ok { + return l.fail(clientErr) + } + retStatus := svc.Cancel(client, w, upData, dao.SendStatusCancel, l.svcCtx.OrderSvcName) + if retStatus != utils.Ok { + return l.fail(retStatus) + } + return l.ok(utils.NumberOne) +} diff --git a/services/express/internal/logic/expressApiEstimatedLogic.go b/services/express/internal/logic/expressApiEstimatedLogic.go new file mode 100644 index 0000000..2ccd60a --- /dev/null +++ b/services/express/internal/logic/expressApiEstimatedLogic.go @@ -0,0 +1,105 @@ +package logic + +import ( + "context" + "lone-services/pkg/modelbase" + "lone-services/pkg/utils" + "lone-services/pkg/validate" + "lone-services/services/express/internal/dao" + "lone-services/services/express/internal/model" + "strconv" + "strings" + "time" + + "lone-services/rpc/express/pb" + "lone-services/services/express/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type ExpressApiEstimatedLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger + BaseLogic +} + +func NewExpressApiEstimatedLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ExpressApiEstimatedLogic { + return &ExpressApiEstimatedLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *ExpressApiEstimatedLogic) ExpressApiEstimated(in *express.IdApiRequest) (*express.Response, error) { + var v validate.InfoValidator + if fail := l.checkParams(in, &v); fail != nil { + return fail, nil + } + adminInfo := utils.GetUserFromCtx(l.ctx) + if adminInfo.ID < utils.NumberOne { + return l.fail(utils.ErrorNoLoginInfo) + } + w := modelbase.Params{Eq: map[string]string{"id": strconv.Itoa(int(in.Id))}} + var upData dao.DeliveryOrderUpTransit + err := model.DeliveryOrderModel{}.Init().GetOne(w, &upData) + if err != nil { + l.Logger.Error("没有找到快递数据", err) + return l.fail(utils.SetError(utils.ErrorNotFund, "没有找到快递数据")) + } + if upData.Id < utils.NumberZero { + return l.fail(utils.SetError(utils.ErrorNotFund, "没有找到快递数据")) + } + + if upData.Status != dao.SendStatusOk { + return l.ok(upData.EstimatedTime) + } + + orderInfo := svc.GetOrderInfo(upData.OrderSn, in.Type, l.svcCtx.OrderSvcName) + if orderInfo.Id < utils.NumberOne { + return l.fail(utils.SetError(utils.ErrorNotFund, "没有找到订单信息")) + } + + tw := modelbase.Params{Eq: map[string]string{"id": strconv.Itoa(upData.TransitId)}} + var transitInfo dao.ExpressSend + err = model.ExpressModel{}.Init().GetOne(tw, &transitInfo) + if err != nil { + l.Logger.Error("发货地址信息没有找到", upData.TransitId, err) + return l.fail(utils.SetError(utils.ErrorNotFund, "没有找到发货的快递信息")) + } + if len(upData.TransitSn) < utils.NumberOne { + return l.fail(utils.SetError(utils.ErrorNotFund, "没有找到发货的快递信息")) + } + + client, clientErr := svc.GetTransitInfo(transitInfo) + if clientErr != utils.Ok { + return l.fail(clientErr) + } + + sns := strings.Split(upData.TransitSn, utils.DecollatorComma) + res, err := client.Estimated(sns[0], transitInfo.CardNumber) + if err != nil || res.ErrorCode != utils.StringStatusOk { + l.Logger.Error("estimated transit err", err, res) + return l.fail(utils.SetError(utils.ErrorNotFund, "获取快递错误")) + } + + var toTime string + if transitInfo.TransitId == dao.ExpressCompanyJd { + toTime = time.UnixMilli(int64(res.RequestQuery["deliveryPromiseTime"].(float64))).Format(time.DateTime) + } else if transitInfo.TransitId == dao.ExpressCompanySf { + toTime = utils.GetStringByMap(res.RequestQuery, "promiseTm") + } + + if toTime == utils.StringEmpty { + return l.fail(utils.Fail) + } + + upData.EstimatedTime = toTime + _, err = model.DeliveryOrderModel{}.Init().Edit(w, &upData) + if err != nil { + return l.fail(utils.Fail) + } + + return l.ok(toTime) +} diff --git a/services/express/internal/logic/expressApiQueryLogic.go b/services/express/internal/logic/expressApiQueryLogic.go new file mode 100644 index 0000000..742b782 --- /dev/null +++ b/services/express/internal/logic/expressApiQueryLogic.go @@ -0,0 +1,97 @@ +package logic + +import ( + "context" + "lone-services/pkg/modelbase" + "lone-services/pkg/utils" + "lone-services/pkg/validate" + "lone-services/services/express/internal/dao" + "lone-services/services/express/internal/model" + "strconv" + + "lone-services/rpc/express/pb" + "lone-services/services/express/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type ExpressApiQueryLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger + BaseLogic +} + +func NewExpressApiQueryLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ExpressApiQueryLogic { + return &ExpressApiQueryLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *ExpressApiQueryLogic) ExpressApiQuery(in *express.IdApiRequest) (*express.Response, error) { + var v validate.InfoValidator + if fail := l.checkParams(in, &v); fail != nil { + return fail, nil + } + adminInfo := utils.GetUserFromCtx(l.ctx) + if adminInfo.ID < utils.NumberOne { + return l.fail(utils.ErrorNoLoginInfo) + } + w := modelbase.Params{Eq: map[string]string{"id": strconv.Itoa(int(in.Id))}} + var upData dao.DeliveryOrderUpTransit + err := model.DeliveryOrderModel{}.Init().GetOne(w, &upData) + if err != nil { + l.Logger.Error("没有找到快递数据", err) + return l.fail(utils.SetError(utils.ErrorNotFund, "没有找到快递数据")) + } + if upData.Id < utils.NumberZero { + return l.fail(utils.SetError(utils.ErrorNotFund, "没有找到快递数据")) + } + + if upData.Status != dao.SendStatusOk { + return l.fail(utils.SetError(utils.ErrorNotFund, "没有发货")) + } + + orderInfo := svc.GetOrderInfo(upData.OrderSn, in.Type, l.svcCtx.OrderSvcName) + if orderInfo.Id < utils.NumberOne { + return l.fail(utils.SetError(utils.ErrorNotFund, "没有找到订单信息")) + } + + tw := modelbase.Params{Eq: map[string]string{"id": strconv.Itoa(upData.TransitId)}} + var transitInfo dao.ExpressSend + err = model.ExpressModel{}.Init().GetOne(tw, &transitInfo) + if err != nil { + l.Logger.Error("发货地址信息没有找到", upData.TransitId, err) + return l.fail(utils.SetError(utils.ErrorNotFund, "没有找到发货的快递信息")) + } + if transitInfo.Id < utils.NumberOne { + return l.fail(utils.SetError(utils.ErrorNotFund, "没有找到发货的快递信息")) + } + + client, clientErr := svc.GetTransitInfo(transitInfo) + if clientErr != utils.Ok { + return l.fail(clientErr) + } + sn := upData.OrderSn + if transitInfo.TransitId == dao.ExpressCompanyJd { + sn = upData.TransitSn + } + res, err := client.Query(sn) + if err != nil || res.ErrorCode != utils.StringStatusOk { + l.Logger.Error("query transit err", err, res) + return l.fail(utils.SetError(utils.ErrorNotFund, "获取快递错误")) + } + + //TODO JD + //if transitInfo.TransitId == dao.ExpressCompanyJd { + // return // s.queryJdEdit(res.RequestQuery, &upData) + //} + + items, s := svc.QueryEdit(res.RequestQuery, &upData, l.svcCtx.OrderSvcName) + if s != utils.Ok { + return l.fail(s) + } + return l.ok(items) +} diff --git a/services/express/internal/logic/infoLogic.go b/services/express/internal/logic/infoLogic.go index a606cec..bd09c3f 100644 --- a/services/express/internal/logic/infoLogic.go +++ b/services/express/internal/logic/infoLogic.go @@ -4,11 +4,11 @@ import ( "context" "lone-services/pkg/modelbase" "lone-services/pkg/utils" + "lone-services/pkg/validate" "lone-services/rpc/express/pb" "lone-services/services/express/internal/dao" "lone-services/services/express/internal/model" "lone-services/services/express/internal/svc" - "lone-services/services/express/validator" "strconv" "github.com/zeromicro/go-zero/core/logx" @@ -30,7 +30,7 @@ func NewInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext) *InfoLogic { } func (l *InfoLogic) Info(in *express.IdRequest) (*express.Response, error) { - var v validator.InfoValidator + var v validate.InfoValidator if fail := l.checkParams(in, &v); fail != nil { return fail, nil } diff --git a/services/express/internal/server/expressServer.go b/services/express/internal/server/expressServer.go index d46de10..0945b72 100644 --- a/services/express/internal/server/expressServer.go +++ b/services/express/internal/server/expressServer.go @@ -80,6 +80,36 @@ func (s *ExpressServer) ExpressJdBack(ctx context.Context, in *express.EmtpyRequ return l.ExpressJdBack(in) } +func (s *ExpressServer) ExpressApiQuery(ctx context.Context, in *express.IdApiRequest) (*express.Response, error) { + l := logic.NewExpressApiQueryLogic(ctx, s.svcCtx) + return l.ExpressApiQuery(in) +} + +func (s *ExpressServer) ExpressAdminQuery(ctx context.Context, in *express.IdRequest) (*express.Response, error) { + l := logic.NewExpressAdminQueryLogic(ctx, s.svcCtx) + return l.ExpressAdminQuery(in) +} + +func (s *ExpressServer) ExpressApiEstimated(ctx context.Context, in *express.IdApiRequest) (*express.Response, error) { + l := logic.NewExpressApiEstimatedLogic(ctx, s.svcCtx) + return l.ExpressApiEstimated(in) +} + +func (s *ExpressServer) ExpressAdminEstimated(ctx context.Context, in *express.IdRequest) (*express.Response, error) { + l := logic.NewExpressAdminEstimatedLogic(ctx, s.svcCtx) + return l.ExpressAdminEstimated(in) +} + +func (s *ExpressServer) ExpressApiCancel(ctx context.Context, in *express.IdApiRequest) (*express.Response, error) { + l := logic.NewExpressApiCancelLogic(ctx, s.svcCtx) + return l.ExpressApiCancel(in) +} + +func (s *ExpressServer) ExpressAdminCancel(ctx context.Context, in *express.IdRequest) (*express.Response, error) { + l := logic.NewExpressAdminCancelLogic(ctx, s.svcCtx) + return l.ExpressAdminCancel(in) +} + // 添加生成订单的发货信息 func (s *ExpressServer) DeliveryOrderCreate(ctx context.Context, in *express.DeliveryOrderCreateRequest) (*express.IdResponse, error) { l := logic.NewDeliveryOrderCreateLogic(ctx, s.svcCtx) diff --git a/services/express/internal/svc/delivery.go b/services/express/internal/svc/delivery.go new file mode 100644 index 0000000..24d7022 --- /dev/null +++ b/services/express/internal/svc/delivery.go @@ -0,0 +1,200 @@ +package svc + +import ( + "context" + "lone-services/pkg/modelbase" + "lone-services/pkg/utils" + order "lone-services/rpc/order/pb" + "lone-services/services/express/internal/dao" + "lone-services/services/express/internal/model" + "lone-services/services/express/internal/transit" + "strconv" + + "github.com/zeromicro/go-zero/core/logx" +) + +func Cancel(client transit.Transit, w modelbase.Params, info dao.DeliveryOrderPrintEdit, status uint8, name string) utils.Status { + sn := info.OrderSn + if info.TransitType == dao.ExpressCompanyJd { + sn = info.TransitSn + } + + ret, canErr := client.Cancel(sn) + if canErr != nil || ret.ErrorCode != utils.StringStatusOk { + logx.Error("cancel order err ", sn, canErr, ret) + return utils.ErrorInternalServer + } + var history dao.DeliveryHistoryCreate + history.DeliverId = info.Id + history.TransitName = dao.DeliverySendType[info.TransitType] + history.TransitInfo = ret.PostInfo + history.TransitContent = ret.RequestInfo + history.TransitType = info.TransitType + history.OrderSn = info.OrderSn + + info.OrderSn = utils.StringEmpty + info.Status = status + info.Express = utils.StringEmpty + modelObj := model.DeliveryOrderModel{}.Init() + + modelObj.Begin() + _, err := modelObj.Edit(w, &info) + if err != nil { + logx.Error("cancel up order err ", info.Id, err) + modelObj.Rollback() + return utils.Fail + } + err = model.DeliveryHistoryModel{}.Init().Create(&history) + if err != nil { + logx.Error("cancel up order err ", info.Id, err) + modelObj.Rollback() + return utils.Fail + } + ww := modelbase.Params{Eq: map[string]string{"deliver_goods_id": strconv.Itoa(info.Id)}} + editExp := dao.DeliveryExpStatus{ + Status: utils.StatusFail, + } + _, err = model.DeliveryOrderExpModel{}.Init().Edit(ww, &editExp) + if err != nil { + logx.Error("cancel up order err ", info.Id, err) + modelObj.Rollback() + return utils.Fail + } + + s := UpOrderDeliverStatus(name, info.ObjId, int(info.Type), int32(status)) + if s != utils.Ok { + modelObj.Rollback() + return s + } + modelObj.Commit() + + return utils.Ok +} + +func UpOrderDeliverStatus(name string, id string, Type int, status int32) utils.Status { + if Type == dao.DeliveryTypeOrder { + cli, err := GetRpcClient(name) + if err != nil { + logx.Errorf("get order err: %v", err) + return utils.ErrorInternalServer + } + + client := order.NewOrderClient(cli.Conn()) + _, err = client.UpdateOrderDeliverStatus(context.Background(), &order.UpdateOrderDeliverStatusRequest{Id: id, DeliverStatus: status}) + if err != nil { + logx.Errorf("get order err: %v", err) + return utils.ErrorInternalServer + } + } + + return utils.Ok +} + +func GetTransitInfo(transitInfo dao.ExpressSend) (transit.Transit, utils.Status) { + var client transit.Transit + switch transitInfo.TransitId { + case dao.ExpressCompanySf: + client = transit.NewSfClient(transitInfo) + case dao.ExpressCompanyJd: + client = transit.NewJdClient(transitInfo) + default: + return client, utils.SetError(utils.ErrorNotFund, "没有找到快递公司") + } + + return client, utils.Ok +} + +func GetOrderInfo(sn string, Type int32, name string) *order.OrderInfoResponse { + cli, err := GetRpcClient(name) + var info *order.OrderInfoResponse + if err != nil { + logx.Errorf("get order err: %v", err) + return info + } + + client := order.NewOrderClient(cli.Conn()) + info, err = client.GetOrderInfo(context.Background(), &order.GetOrderInfoRequest{OrderSn: sn, Type: Type}) + if err != nil { + logx.Errorf("get order err: %v", err) + return info + } + return info +} + +func QueryEdit(data map[string]interface{}, goods *dao.DeliveryOrderUpTransit, name string) ([]dao.ExpressQueryItems, utils.Status) { + routeResps, ok := data["routeResps"].([]interface{}) + if !ok || len(routeResps) == 0 { + logx.Error("routeResps 为空") + return nil, utils.SetError(utils.ErrorNotFund, "获取快递错误") + } + + firstResp, ok := routeResps[0].(map[string]interface{}) + if !ok { + logx.Error("routeResps 为空") + return nil, utils.SetError(utils.ErrorNotFund, "获取快递错误") + + } + routes, ok := firstResp["routes"].([]interface{}) + if !ok { + logx.Error("routes 为空") + return nil, utils.SetError(utils.ErrorNotFund, "获取快递错误") + + } + + status := false + var items []dao.ExpressQueryItems + for _, item := range routes { + route, ok := item.(map[string]interface{}) + if !ok { + continue + } + tmp := dao.ExpressQueryItems{ + AcceptAddress: route["acceptAddress"].(string), + AcceptTime: route["acceptTime"].(string), + FirstStatusCode: route["firstStatusCode"].(string), + FirstStatusName: route["firstStatusName"].(string), + OpCode: route["opCode"].(string), + Remark: route["remark"].(string), + SecondaryStatusCode: route["secondaryStatusCode"].(string), + SecondaryStatusName: route["secondaryStatusName"].(string), + } + items = append(items, tmp) + if ok := transit.SfSingedCodeMap[tmp.OpCode]; ok { + status = true + } + } + + modelObj := model.DeliveryOrderModel{}.Init() + modelObj.Begin() + if status { + goods.Status = dao.SendStatusOver + goods.SignTime = utils.Now() + ww := modelbase.Params{Eq: map[string]string{"deliver_goods_id": strconv.Itoa(goods.Id)}} + editExp := dao.DeliveryExpStatus{ + Status: utils.StatusFail, + } + _, err := model.DeliveryOrderExpModel{}.Init().Edit(ww, &editExp) + if err != nil { + modelObj.Rollback() + logx.Error("update deleverGoodsExp err", err) + return nil, utils.SetError(utils.ErrorNotFund, "更新数据出错") + } + } + + goods.TransitQuery = utils.StructToJson(items) + w := modelbase.Params{Eq: map[string]string{"id": strconv.Itoa(goods.Id)}} + _, err := modelObj.Edit(w, goods) + if err != nil { + modelObj.Rollback() + logx.Error("update deleverGoods err", err) + return nil, utils.SetError(utils.ErrorNotFund, "更新数据出错") + } + + s := UpOrderDeliverStatus(name, goods.ObjId, int(goods.Type), dao.SendStatusOver) + if s != utils.Ok { + modelObj.Rollback() + return nil, s + } + modelObj.Commit() + return items, utils.Ok +} diff --git a/services/express/validator/express.go b/services/express/validator/express.go index 74921a0..8939b27 100644 --- a/services/express/validator/express.go +++ b/services/express/validator/express.go @@ -49,17 +49,18 @@ func (p StatusValidator) GetMessage() validate.ValidatorMessages { } } -type InfoValidator struct { - Id int64 `validate:"required"` -} - -func (p InfoValidator) GetMessage() validate.ValidatorMessages { - return validate.ValidatorMessages{ - "Id.required": "ID不能为空", - } -} - type DeliveryHistoryValidator struct { Page int `form:"page" json:"page"` Size int `form:"size" json:"size"` } +type IdApiValidator struct { + Id int64 `validate:"required"` + Type int32 `validate:"type"` +} + +func (p IdApiValidator) GetMessage() validate.ValidatorMessages { + return validate.ValidatorMessages{ + "Name.required": "请输入名称", + "Type.required": "类型不能为空", + } +} diff --git a/services/order/internal/dao/order.go b/services/order/internal/dao/order.go index 1039c1a..6115954 100644 --- a/services/order/internal/dao/order.go +++ b/services/order/internal/dao/order.go @@ -248,3 +248,32 @@ type OrderTaskAndAwardHalfYear struct { type OrderTaskAndAwardYear struct { TaskAwardYearStatus uint8 `gorm:"column:task_award_year_status;type:tinyint(1);default:2;comment:结算任务与奖励年,1 为已结算,2为未结算" json:"task_awark_year_status"` } + +type OrderInfoDetail struct { + Id int64 `gorm:"column:id;type:bigint(20);primary_key;AUTO_INCREMENT" json:"id"` + OrderSn string `gorm:"column:order_sn;type:varchar(100);comment:订单号;NOT NULL" json:"order_sn"` + StoreId int64 `gorm:"column:store_id;type:int(11);comment:美容院关联ID号" json:"store_id"` + StoreName string `gorm:"column:store_name;type:varchar(50);comment:门店名" json:"store_name"` + SaleName string `gorm:"column:sale_name;type:varchar(50);comment:销售姓名" json:"sale_name"` + SaleMobile string `gorm:"column:sale_mobile;type:char(60);comment:销售电话" json:"sale_mobile"` + UserId int64 `gorm:"column:user_id;type:int(11);comment:用户ID" json:"user_id"` + UserName string `gorm:"column:user_name;type:varchar(255);comment:用户名" json:"user_name"` + SaleId int64 `gorm:"column:sale_id;type:int(11);comment:销售员ID号" json:"sale_id"` + Mobile string `gorm:"column:mobile;type:char(60);comment:收货人手机号;NOT NULL" json:"mobile"` + Address string `gorm:"column:address;type:varchar(255);comment:收货人地址;NOT NULL" json:"address"` + Addressee string `gorm:"column:addressee;type:varchar(50);comment:收货人姓名;NOT NULL" json:"addressee"` + DistrictIds string `gorm:"column:district_ids;type:varchar(255);comment:地区IDS;NOT NULL" json:"district_ids"` + TotalPrice float64 `gorm:"column:total_price;type:decimal(10,2);comment:总价;NOT NULL" json:"total_price"` + PayPrice float64 `gorm:"column:pay_price;type:decimal(10,2);comment:实际支付金额" json:"pay_price"` + PayType int32 `gorm:"column:pay_type;type:tinyint(1);default:1;comment:支付类型,1为微信,2为支付宝,3为余额支付" json:"pay_type"` + DeliverStatus int32 `gorm:"column:deliver_status;type:tinyint(1);default:2;comment:发货状态,1为已签收,2为待发货,3为发货中,4为已发货" json:"deliver_status"` + Status int32 `gorm:"column:status;type:tinyint(1);default:2;comment:支付状态,1为已支付,2为未支付,3为支付中,4支付失败,5已失效;NOT NULL" json:"status"` + IsSupply int32 `gorm:"column:is_supply;type:tinyint(1);default:1;comment:是否补过货,1为没有,2为补过" json:"is_supply"` + Note string `gorm:"column:note;type:varchar(255);comment:备注" json:"note"` + ProductIds string `gorm:"column:product_ids;type:varchar(150);comment:产品IDs" json:"product_ids"` + OutTradeNo string `gorm:"column:out_trade_no;type:varchar(50);comment:支付订单号" json:"out_trade_no"` + Type int32 `gorm:"column:type;type:tinyint(1);default:0;comment:类型 1 销售,2为门店,3为个人,4为个人家庭试用,5为个人门店试用" json:"type"` + VerifyStatus int32 `gorm:"column:verify_status;type:tinyint(1);default:0;comment:审核状态,1为通过,2为失败,3为待审核,0为正常订单不需要审核" json:"verify_status"` + CreateType int32 `gorm:"column:create_type;type:tinyint(1);default:1;comment:下单人类型,1为销售,2为门店,3为个人;NOT NULL" json:"create_type"` + RefundStatus int32 `gorm:"column:refund_status" json:"refund_status"` +} diff --git a/services/order/internal/logic/getOrderInfoLogic.go b/services/order/internal/logic/getOrderInfoLogic.go new file mode 100644 index 0000000..28e8cd4 --- /dev/null +++ b/services/order/internal/logic/getOrderInfoLogic.go @@ -0,0 +1,30 @@ +package logic + +import ( + "context" + + "lone-services/rpc/order/pb" + "lone-services/services/order/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type GetOrderInfoLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewGetOrderInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetOrderInfoLogic { + return &GetOrderInfoLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *GetOrderInfoLogic) GetOrderInfo(in *order.GetOrderInfoRequest) (*order.OrderInfoResponse, error) { + // todo: add your logic here and delete this line + + return &order.OrderInfoResponse{}, nil +} diff --git a/services/order/internal/server/orderServer.go b/services/order/internal/server/orderServer.go index 4008d5c..c0538a5 100644 --- a/services/order/internal/server/orderServer.go +++ b/services/order/internal/server/orderServer.go @@ -107,3 +107,8 @@ func (s *OrderServer) UpdateOrderDeliverStatus(ctx context.Context, in *order.Up l := logic.NewUpdateOrderDeliverStatusLogic(ctx, s.svcCtx) return l.UpdateOrderDeliverStatus(in) } + +func (s *OrderServer) GetOrderInfo(ctx context.Context, in *order.GetOrderInfoRequest) (*order.OrderInfoResponse, error) { + l := logic.NewGetOrderInfoLogic(ctx, s.svcCtx) + return l.GetOrderInfo(in) +} diff --git a/services/order/orderClient/order.go b/services/order/orderClient/order.go index f0e9e8e..1ff5916 100644 --- a/services/order/orderClient/order.go +++ b/services/order/orderClient/order.go @@ -23,10 +23,12 @@ type ( EditAddressRequest = order.EditAddressRequest EditCartRequest = order.EditCartRequest EmptyRequest = order.EmptyRequest + GetOrderInfoRequest = order.GetOrderInfoRequest IdAndTypeRequest = order.IdAndTypeRequest IdRequest = order.IdRequest OrderAuditingItemsRequest = order.OrderAuditingItemsRequest OrderAuditingRequest = order.OrderAuditingRequest + OrderInfoResponse = order.OrderInfoResponse OrderItemsRequest = order.OrderItemsRequest Response = order.Response TypeRequest = order.TypeRequest @@ -51,6 +53,7 @@ type ( OrderAuditing(ctx context.Context, in *OrderAuditingRequest, opts ...grpc.CallOption) (*Response, error) OrderCreate(ctx context.Context, in *AdminCreateOrderRequest, opts ...grpc.CallOption) (*Response, error) UpdateOrderDeliverStatus(ctx context.Context, in *UpdateOrderDeliverStatusRequest, opts ...grpc.CallOption) (*UpdateOrderDeliverStatusResponse, error) + GetOrderInfo(ctx context.Context, in *GetOrderInfoRequest, opts ...grpc.CallOption) (*OrderInfoResponse, error) } defaultOrder struct { @@ -148,3 +151,8 @@ func (m *defaultOrder) UpdateOrderDeliverStatus(ctx context.Context, in *UpdateO client := order.NewOrderClient(m.cli.Conn()) return client.UpdateOrderDeliverStatus(ctx, in, opts...) } + +func (m *defaultOrder) GetOrderInfo(ctx context.Context, in *GetOrderInfoRequest, opts ...grpc.CallOption) (*OrderInfoResponse, error) { + client := order.NewOrderClient(m.cli.Conn()) + return client.GetOrderInfo(ctx, in, opts...) +}