From e615be6ad724bc9a14cea4b93e3e929ee3be2c60 Mon Sep 17 00:00:00 2001 From: gjs Date: Fri, 4 Sep 2026 17:51:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=9E=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bff/bff.go | 5 +- bff/internal/dialer/nacos.go | 4 +- bff/internal/{response => request}/user.go | 74 ++++-- deploy/apisix/lua/auth.lua | 5 +- pkg/utils/loginInfo.go | 23 ++ rpc/express/express.pb | Bin 15659 -> 15956 bytes rpc/express/express.proto | 20 ++ rpc/express/pb/express.pb.go | 210 ++++++++++++------ rpc/express/pb/express_grpc.pb.go | 76 +++++++ services/express/.gitignore | 3 +- services/express/expressclient/express.go | 13 ++ .../internal/logic/expressDeliveringLogic.go | 5 +- .../internal/logic/expressJdBackLogic.go | 31 +++ .../internal/logic/expressSfBackLogic.go | 32 +++ .../express/internal/server/expressServer.go | 10 + services/express/internal/transit/jd.go | 45 ++-- services/express/internal/transit/sf.go | 15 +- .../logic/updateOrderDeliverStatusLogic.go | 2 +- 18 files changed, 449 insertions(+), 124 deletions(-) rename bff/internal/{response => request}/user.go (73%) create mode 100644 services/express/internal/logic/expressJdBackLogic.go create mode 100644 services/express/internal/logic/expressSfBackLogic.go diff --git a/bff/bff.go b/bff/bff.go index 0bf23db..240025c 100644 --- a/bff/bff.go +++ b/bff/bff.go @@ -6,6 +6,7 @@ import ( "log" "lone-services/bff/internal/config" "lone-services/bff/internal/dialer" + "lone-services/bff/internal/request" "lone-services/bff/internal/response" "lone-services/pkg/discovery" "lone-services/pkg/utils" @@ -55,8 +56,8 @@ func main() { gw := gateway.MustNewServer(c.GatewayConf, gateway.WithDialer(dialer.Nacos), - // 权鉴 - gateway.WithMiddleware(response.UserReadMiddleware), + // 权鉴+穿透 + gateway.WithMiddleware(request.UserReadMiddleware), gateway.WithMiddleware(response.Wrap), ) defer gw.Stop() diff --git a/bff/internal/dialer/nacos.go b/bff/internal/dialer/nacos.go index 49c583b..9c5bdd4 100644 --- a/bff/internal/dialer/nacos.go +++ b/bff/internal/dialer/nacos.go @@ -3,7 +3,7 @@ package dialer import ( "context" "fmt" - "lone-services/bff/internal/response" + "lone-services/bff/internal/request" "lone-services/pkg/discovery" "net" "time" @@ -25,7 +25,7 @@ func Nacos(conf zrpc.RpcClientConf) zrpc.Client { return zrpc.MustNewClient(cliConf, zrpc.WithDialOption(grpc.WithTransportCredentials(insecure.NewCredentials())), - zrpc.WithDialOption(grpc.WithUnaryInterceptor(response.UserClientInterceptor)), + zrpc.WithDialOption(grpc.WithUnaryInterceptor(request.UserClientInterceptor)), zrpc.WithDialOption(grpc.WithDefaultCallOptions(grpc.WaitForReady(true))), zrpc.WithDialOption(grpc.WithConnectParams(grpc.ConnectParams{ MinConnectTimeout: 2 * time.Second, diff --git a/bff/internal/response/user.go b/bff/internal/request/user.go similarity index 73% rename from bff/internal/response/user.go rename to bff/internal/request/user.go index d40b454..7f1892e 100644 --- a/bff/internal/response/user.go +++ b/bff/internal/request/user.go @@ -1,11 +1,14 @@ -package response +package request import ( + "bytes" "context" + "io" "lone-services/pkg/utils" "net/http" "net/url" "strconv" + "strings" "google.golang.org/grpc" "google.golang.org/grpc/metadata" @@ -14,23 +17,32 @@ import ( type ctxKey string const ( - CtxUserId ctxKey = "X-User-Id" - CtxUserName ctxKey = "X-User-Name" - CtxRefresh ctxKey = "X-Refresh" - CtxClientIP ctxKey = "X-Client-Ip" - CtxUserAgent ctxKey = "X-User-Agent" - CtxClientCode ctxKey = "X-Client-Code" - CtxSaleId ctxKey = "X-Sale-Id" - CtxSaleName ctxKey = "X-Sale-Name" - CtxSaleMobile ctxKey = "X-Sale-Mobile" - CtxSaleProvince ctxKey = "X-Sale-Province" - CtxStoreId ctxKey = "X-Store-Id" - CtxStoreName ctxKey = "X-Store-Name" - CtxGroupId ctxKey = "X-Group-Id" - CtxGroupName ctxKey = "X-Group-Name" - CtxUserType ctxKey = "X-User-Type" + CtxUserId ctxKey = "X-User-Id" + CtxUserName ctxKey = "X-User-Name" + CtxRefresh ctxKey = "X-Refresh" + CtxClientIP ctxKey = "X-Client-Ip" + CtxUserAgent ctxKey = "X-User-Agent" + CtxClientCode ctxKey = "X-Client-Code" + CtxSaleId ctxKey = "X-Sale-Id" + CtxSaleName ctxKey = "X-Sale-Name" + CtxSaleMobile ctxKey = "X-Sale-Mobile" + CtxSaleProvince ctxKey = "X-Sale-Province" + CtxStoreId ctxKey = "X-Store-Id" + CtxStoreName ctxKey = "X-Store-Name" + CtxGroupId ctxKey = "X-Group-Id" + CtxGroupName ctxKey = "X-Group-Name" + CtxUserType ctxKey = "X-User-Type" + CtxCallbackRawBody ctxKey = "callback_raw_body" + CtxCallbackHeaders ctxKey = "callback_headers" + CtxCallbackErr ctxKey = "callback_read_err" ) +var callbackPrefixes = []string{ + "/api/v3/express/", + "/api/v3/other1/", + "/api/v3/other2/", +} + type UserInfo struct { ID int64 Name string @@ -113,6 +125,26 @@ func getRealClientIP(r *http.Request) string { func UserReadMiddleware(next http.HandlerFunc) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { newCtx := r.Context() + if isCallbackPath(r.URL.Path) { + body, err := io.ReadAll(r.Body) + if err != nil { + newCtx = context.WithValue(newCtx, CtxCallbackRawBody, []byte(nil)) + newCtx = context.WithValue(newCtx, CtxCallbackHeaders, http.Header(nil)) + newCtx = context.WithValue(newCtx, CtxCallbackErr, err) + } else { + r.Body = io.NopCloser(bytes.NewBuffer(body)) + header := make(http.Header) + for k, vv := range r.Header { + header[k] = vv + } + newCtx = context.WithValue(newCtx, CtxCallbackRawBody, body) + newCtx = context.WithValue(newCtx, CtxCallbackHeaders, header) + newCtx = context.WithValue(newCtx, CtxCallbackErr, error(nil)) + } + next(w, r.WithContext(newCtx)) + return + } + newCtx = context.WithValue(newCtx, CtxUserId, r.Header.Get("X-User-Id")) newCtx = context.WithValue(newCtx, CtxUserName, r.Header.Get("X-User-Name")) newCtx = context.WithValue(newCtx, CtxRefresh, r.Header.Get("X-Refresh")) @@ -128,10 +160,20 @@ func UserReadMiddleware(next http.HandlerFunc) http.HandlerFunc { newCtx = context.WithValue(newCtx, CtxStoreName, r.Header.Get("X-Store-Name")) newCtx = context.WithValue(newCtx, CtxGroupId, r.Header.Get("X-Group-Id")) newCtx = context.WithValue(newCtx, CtxGroupName, r.Header.Get("X-Group-Name")) + next(w, r.WithContext(newCtx)) } } +func isCallbackPath(path string) bool { + for _, prefix := range callbackPrefixes { + if strings.HasPrefix(path, prefix) { + return true + } + } + return false +} + func setMDIfNotEmpty(md metadata.MD, key, value string) { if value != utils.StringEmpty { md.Set(key, value) diff --git a/deploy/apisix/lua/auth.lua b/deploy/apisix/lua/auth.lua index fefe3e7..f182f89 100644 --- a/deploy/apisix/lua/auth.lua +++ b/deploy/apisix/lua/auth.lua @@ -14,7 +14,9 @@ function _M.access(conf, ctx) ["/api/v3/login"] = true, ["/admin/v3/login"] = true, ["/admin/v3/refresh"] = true, - ["/api/v3/version"] = true, + ["/api/v3/version"] = true, + ["/api/v3/express/sf"] = true, + ["/api/v3/express/jd"] = true, } local user_key = core.request.header(ctx, "authorization") @@ -22,6 +24,7 @@ function _M.access(conf, ctx) local req_auth = core.request.header(ctx, "authorization-auth") local refresh = core.request.header(ctx, "refresh") + local skip_auth = white_list[request_uri] if skip_auth then core.log.info("WHITE_LIST_DEBUG: hit white list "..request_uri) diff --git a/pkg/utils/loginInfo.go b/pkg/utils/loginInfo.go index 5daaf57..d66e725 100644 --- a/pkg/utils/loginInfo.go +++ b/pkg/utils/loginInfo.go @@ -2,6 +2,7 @@ package utils import ( "context" + "net/http" "net/url" "strconv" @@ -9,6 +10,12 @@ import ( "google.golang.org/grpc/metadata" ) +const ( + CtxCallbackRawBody string = "callback_raw_body" + CtxCallbackHeaders string = "callback_headers" + CtxCallbackErr string = "callback_read_err" +) + type UserInfo struct { ID int64 Name string @@ -31,6 +38,11 @@ type UserInfo struct { Valid bool } +type HeaderAndBody struct { + Header http.Header + Body []byte +} + func firstMD(md metadata.MD, keys ...string) string { for _, key := range keys { vals := md.Get(key) @@ -109,3 +121,14 @@ func GetUserFromCtx(ctx context.Context) UserInfo { return userInfo } + +// GetHeaderAndBody 只从ctx拿数据,不写http响应,Err交给handler处理 +func GetHeaderAndBody(ctx context.Context) HeaderAndBody { + rawBody, _ := ctx.Value(CtxCallbackRawBody).([]byte) + headers, _ := ctx.Value(CtxCallbackHeaders).(http.Header) + + return HeaderAndBody{ + Header: headers, + Body: rawBody, + } +} diff --git a/rpc/express/express.pb b/rpc/express/express.pb index 1c6ba2698b9a02ad9c287d4e6868fab3d86ed405..6ba1f7fbcdca1ae913760846fc96894899756fb6 100644 GIT binary patch delta 281 zcmZ2ob){y*V`HZGB9osQx7HVOaRsLZr4|?D=M|?4$#ZcRrIwTy<;5rGr=&_SDllqr z25~`zoPi=jvRqJJd~R{N1QS@E6C&?hoGzry#S7J6T#{H)S}ef~R>1=i3ZYy;O*p9>SqYvQ3wt sOlA^S64FmB$kZ=0)`zOmFHW;!)Dnt-8|0M&HAq_;r=F~o$%kw*0VoGv?f?J) delta 31 ncmcaov$|@-V`HXcLX)2ww{E^`BEZTti+%HZOE2ch?`=~7@-Pk# diff --git a/rpc/express/express.proto b/rpc/express/express.proto index 5f00a5e..e3ec088 100644 --- a/rpc/express/express.proto +++ b/rpc/express/express.proto @@ -10,6 +10,13 @@ message Response { string msg = 2; string data = 3; } + +message SfResponse { + string return_code = 1; + string return_msg = 2; + string return_status = 3; +} + message IdResponse { int64 id = 1; } @@ -144,6 +151,19 @@ service Express { }; }; + rpc ExpressSfBack(EmtpyRequest) returns(SfResponse){ + option (google.api.http) = { + post: "/api/v3/express/sf" + body: "*" + }; + }; + rpc ExpressJdBack(EmtpyRequest) returns(Response){ + option (google.api.http) = { + post: "/api/v3/express/jd" + body: "*" + }; + }; + //添加生成订单的发货信息 rpc DeliveryOrderCreate(DeliveryOrderCreateRequest) returns(IdResponse); } diff --git a/rpc/express/pb/express.pb.go b/rpc/express/pb/express.pb.go index 8b98f98..fdcbc94 100644 --- a/rpc/express/pb/express.pb.go +++ b/rpc/express/pb/express.pb.go @@ -82,6 +82,66 @@ func (x *Response) GetData() string { return "" } +type SfResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + ReturnCode string `protobuf:"bytes,1,opt,name=return_code,json=returnCode,proto3" json:"return_code,omitempty"` + ReturnMsg string `protobuf:"bytes,2,opt,name=return_msg,json=returnMsg,proto3" json:"return_msg,omitempty"` + ReturnStatus string `protobuf:"bytes,3,opt,name=return_status,json=returnStatus,proto3" json:"return_status,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SfResponse) Reset() { + *x = SfResponse{} + mi := &file_express_express_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SfResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SfResponse) ProtoMessage() {} + +func (x *SfResponse) ProtoReflect() protoreflect.Message { + mi := &file_express_express_proto_msgTypes[1] + 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 SfResponse.ProtoReflect.Descriptor instead. +func (*SfResponse) Descriptor() ([]byte, []int) { + return file_express_express_proto_rawDescGZIP(), []int{1} +} + +func (x *SfResponse) GetReturnCode() string { + if x != nil { + return x.ReturnCode + } + return "" +} + +func (x *SfResponse) GetReturnMsg() string { + if x != nil { + return x.ReturnMsg + } + return "" +} + +func (x *SfResponse) GetReturnStatus() string { + if x != nil { + return x.ReturnStatus + } + return "" +} + type IdResponse struct { state protoimpl.MessageState `protogen:"open.v1"` Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` @@ -91,7 +151,7 @@ type IdResponse struct { func (x *IdResponse) Reset() { *x = IdResponse{} - mi := &file_express_express_proto_msgTypes[1] + mi := &file_express_express_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -103,7 +163,7 @@ func (x *IdResponse) String() string { func (*IdResponse) ProtoMessage() {} func (x *IdResponse) ProtoReflect() protoreflect.Message { - mi := &file_express_express_proto_msgTypes[1] + mi := &file_express_express_proto_msgTypes[2] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116,7 +176,7 @@ func (x *IdResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use IdResponse.ProtoReflect.Descriptor instead. func (*IdResponse) Descriptor() ([]byte, []int) { - return file_express_express_proto_rawDescGZIP(), []int{1} + return file_express_express_proto_rawDescGZIP(), []int{2} } func (x *IdResponse) GetId() int64 { @@ -134,7 +194,7 @@ type EmtpyRequest struct { func (x *EmtpyRequest) Reset() { *x = EmtpyRequest{} - mi := &file_express_express_proto_msgTypes[2] + mi := &file_express_express_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -146,7 +206,7 @@ func (x *EmtpyRequest) String() string { func (*EmtpyRequest) ProtoMessage() {} func (x *EmtpyRequest) ProtoReflect() protoreflect.Message { - mi := &file_express_express_proto_msgTypes[2] + mi := &file_express_express_proto_msgTypes[3] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -159,7 +219,7 @@ func (x *EmtpyRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use EmtpyRequest.ProtoReflect.Descriptor instead. func (*EmtpyRequest) Descriptor() ([]byte, []int) { - return file_express_express_proto_rawDescGZIP(), []int{2} + return file_express_express_proto_rawDescGZIP(), []int{3} } type CreateRequest struct { @@ -186,7 +246,7 @@ type CreateRequest struct { func (x *CreateRequest) Reset() { *x = CreateRequest{} - mi := &file_express_express_proto_msgTypes[3] + mi := &file_express_express_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -198,7 +258,7 @@ func (x *CreateRequest) String() string { func (*CreateRequest) ProtoMessage() {} func (x *CreateRequest) ProtoReflect() protoreflect.Message { - mi := &file_express_express_proto_msgTypes[3] + mi := &file_express_express_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -211,7 +271,7 @@ func (x *CreateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateRequest.ProtoReflect.Descriptor instead. func (*CreateRequest) Descriptor() ([]byte, []int) { - return file_express_express_proto_rawDescGZIP(), []int{3} + return file_express_express_proto_rawDescGZIP(), []int{4} } func (x *CreateRequest) GetId() int64 { @@ -335,7 +395,7 @@ type IdRequest struct { func (x *IdRequest) Reset() { *x = IdRequest{} - mi := &file_express_express_proto_msgTypes[4] + mi := &file_express_express_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -347,7 +407,7 @@ func (x *IdRequest) String() string { func (*IdRequest) ProtoMessage() {} func (x *IdRequest) ProtoReflect() protoreflect.Message { - mi := &file_express_express_proto_msgTypes[4] + mi := &file_express_express_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -360,7 +420,7 @@ func (x *IdRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use IdRequest.ProtoReflect.Descriptor instead. func (*IdRequest) Descriptor() ([]byte, []int) { - return file_express_express_proto_rawDescGZIP(), []int{4} + return file_express_express_proto_rawDescGZIP(), []int{5} } func (x *IdRequest) GetId() int64 { @@ -381,7 +441,7 @@ type StatusRequest struct { func (x *StatusRequest) Reset() { *x = StatusRequest{} - mi := &file_express_express_proto_msgTypes[5] + mi := &file_express_express_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -393,7 +453,7 @@ func (x *StatusRequest) String() string { func (*StatusRequest) ProtoMessage() {} func (x *StatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_express_express_proto_msgTypes[5] + mi := &file_express_express_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -406,7 +466,7 @@ func (x *StatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StatusRequest.ProtoReflect.Descriptor instead. func (*StatusRequest) Descriptor() ([]byte, []int) { - return file_express_express_proto_rawDescGZIP(), []int{5} + return file_express_express_proto_rawDescGZIP(), []int{6} } func (x *StatusRequest) GetId() int64 { @@ -440,7 +500,7 @@ type HistoryRequest struct { func (x *HistoryRequest) Reset() { *x = HistoryRequest{} - mi := &file_express_express_proto_msgTypes[6] + mi := &file_express_express_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -452,7 +512,7 @@ func (x *HistoryRequest) String() string { func (*HistoryRequest) ProtoMessage() {} func (x *HistoryRequest) ProtoReflect() protoreflect.Message { - mi := &file_express_express_proto_msgTypes[6] + mi := &file_express_express_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -465,7 +525,7 @@ func (x *HistoryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use HistoryRequest.ProtoReflect.Descriptor instead. func (*HistoryRequest) Descriptor() ([]byte, []int) { - return file_express_express_proto_rawDescGZIP(), []int{6} + return file_express_express_proto_rawDescGZIP(), []int{7} } func (x *HistoryRequest) GetPage() int32 { @@ -502,7 +562,7 @@ type DeliveryOrderCreateRequest struct { func (x *DeliveryOrderCreateRequest) Reset() { *x = DeliveryOrderCreateRequest{} - mi := &file_express_express_proto_msgTypes[7] + mi := &file_express_express_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -514,7 +574,7 @@ func (x *DeliveryOrderCreateRequest) String() string { func (*DeliveryOrderCreateRequest) ProtoMessage() {} func (x *DeliveryOrderCreateRequest) ProtoReflect() protoreflect.Message { - mi := &file_express_express_proto_msgTypes[7] + mi := &file_express_express_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -527,7 +587,7 @@ func (x *DeliveryOrderCreateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeliveryOrderCreateRequest.ProtoReflect.Descriptor instead. func (*DeliveryOrderCreateRequest) Descriptor() ([]byte, []int) { - return file_express_express_proto_rawDescGZIP(), []int{7} + return file_express_express_proto_rawDescGZIP(), []int{8} } func (x *DeliveryOrderCreateRequest) GetObjId() string { @@ -627,7 +687,7 @@ type DeliverOrderProductInfo struct { func (x *DeliverOrderProductInfo) Reset() { *x = DeliverOrderProductInfo{} - mi := &file_express_express_proto_msgTypes[8] + mi := &file_express_express_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -639,7 +699,7 @@ func (x *DeliverOrderProductInfo) String() string { func (*DeliverOrderProductInfo) ProtoMessage() {} func (x *DeliverOrderProductInfo) ProtoReflect() protoreflect.Message { - mi := &file_express_express_proto_msgTypes[8] + mi := &file_express_express_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -652,7 +712,7 @@ func (x *DeliverOrderProductInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use DeliverOrderProductInfo.ProtoReflect.Descriptor instead. func (*DeliverOrderProductInfo) Descriptor() ([]byte, []int) { - return file_express_express_proto_rawDescGZIP(), []int{8} + return file_express_express_proto_rawDescGZIP(), []int{9} } func (x *DeliverOrderProductInfo) GetNumber() int32 { @@ -700,7 +760,7 @@ type DeliveringRequest struct { func (x *DeliveringRequest) Reset() { *x = DeliveringRequest{} - mi := &file_express_express_proto_msgTypes[9] + mi := &file_express_express_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -712,7 +772,7 @@ func (x *DeliveringRequest) String() string { func (*DeliveringRequest) ProtoMessage() {} func (x *DeliveringRequest) ProtoReflect() protoreflect.Message { - mi := &file_express_express_proto_msgTypes[9] + mi := &file_express_express_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -725,7 +785,7 @@ func (x *DeliveringRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeliveringRequest.ProtoReflect.Descriptor instead. func (*DeliveringRequest) Descriptor() ([]byte, []int) { - return file_express_express_proto_rawDescGZIP(), []int{9} + return file_express_express_proto_rawDescGZIP(), []int{10} } func (x *DeliveringRequest) GetTransitId() int64 { @@ -751,7 +811,7 @@ type ExpressCompanyRequest struct { func (x *ExpressCompanyRequest) Reset() { *x = ExpressCompanyRequest{} - mi := &file_express_express_proto_msgTypes[10] + mi := &file_express_express_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -763,7 +823,7 @@ func (x *ExpressCompanyRequest) String() string { func (*ExpressCompanyRequest) ProtoMessage() {} func (x *ExpressCompanyRequest) ProtoReflect() protoreflect.Message { - mi := &file_express_express_proto_msgTypes[10] + mi := &file_express_express_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -776,7 +836,7 @@ func (x *ExpressCompanyRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ExpressCompanyRequest.ProtoReflect.Descriptor instead. func (*ExpressCompanyRequest) Descriptor() ([]byte, []int) { - return file_express_express_proto_rawDescGZIP(), []int{10} + return file_express_express_proto_rawDescGZIP(), []int{11} } func (x *ExpressCompanyRequest) GetCode() string { @@ -794,7 +854,14 @@ const file_express_express_proto_rawDesc = "" + "\bResponse\x12\x12\n" + "\x04code\x18\x01 \x01(\x05R\x04code\x12\x10\n" + "\x03msg\x18\x02 \x01(\tR\x03msg\x12\x12\n" + - "\x04data\x18\x03 \x01(\tR\x04data\"\x1c\n" + + "\x04data\x18\x03 \x01(\tR\x04data\"q\n" + + "\n" + + "SfResponse\x12\x1f\n" + + "\vreturn_code\x18\x01 \x01(\tR\n" + + "returnCode\x12\x1d\n" + + "\n" + + "return_msg\x18\x02 \x01(\tR\treturnMsg\x12#\n" + + "\rreturn_status\x18\x03 \x01(\tR\freturnStatus\"\x1c\n" + "\n" + "IdResponse\x12\x0e\n" + "\x02id\x18\x01 \x01(\x03R\x02id\"\x0e\n" + @@ -854,7 +921,7 @@ 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\x9a\a\n" + + "\x04code\x18\x01 \x01(\tR\x04code2\xd0\b\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" + @@ -864,7 +931,9 @@ const file_express_express_proto_rawDesc = "" + "\x06Status\x12\x16.express.StatusRequest\x1a\x11.express.Response\"#\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/admin/v3/express/status\x12\\\n" + "\aHistory\x12\x17.express.HistoryRequest\x1a\x11.express.Response\"%\x82\xd3\xe4\x93\x02\x1f:\x01*\x12\x1a/admin/v3/delivery/history\x12i\n" + "\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\x12O\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" + "\x13DeliveryOrderCreate\x12#.express.DeliveryOrderCreateRequest\x1a\x13.express.IdResponseB\vZ\t./expressb\x06proto3" var ( @@ -879,44 +948,49 @@ func file_express_express_proto_rawDescGZIP() []byte { return file_express_express_proto_rawDescData } -var file_express_express_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_express_express_proto_msgTypes = make([]protoimpl.MessageInfo, 12) var file_express_express_proto_goTypes = []any{ (*Response)(nil), // 0: express.Response - (*IdResponse)(nil), // 1: express.IdResponse - (*EmtpyRequest)(nil), // 2: express.EmtpyRequest - (*CreateRequest)(nil), // 3: express.CreateRequest - (*IdRequest)(nil), // 4: express.IdRequest - (*StatusRequest)(nil), // 5: express.StatusRequest - (*HistoryRequest)(nil), // 6: express.HistoryRequest - (*DeliveryOrderCreateRequest)(nil), // 7: express.DeliveryOrderCreateRequest - (*DeliverOrderProductInfo)(nil), // 8: express.DeliverOrderProductInfo - (*DeliveringRequest)(nil), // 9: express.DeliveringRequest - (*ExpressCompanyRequest)(nil), // 10: express.ExpressCompanyRequest + (*SfResponse)(nil), // 1: express.SfResponse + (*IdResponse)(nil), // 2: express.IdResponse + (*EmtpyRequest)(nil), // 3: express.EmtpyRequest + (*CreateRequest)(nil), // 4: express.CreateRequest + (*IdRequest)(nil), // 5: express.IdRequest + (*StatusRequest)(nil), // 6: express.StatusRequest + (*HistoryRequest)(nil), // 7: express.HistoryRequest + (*DeliveryOrderCreateRequest)(nil), // 8: express.DeliveryOrderCreateRequest + (*DeliverOrderProductInfo)(nil), // 9: express.DeliverOrderProductInfo + (*DeliveringRequest)(nil), // 10: express.DeliveringRequest + (*ExpressCompanyRequest)(nil), // 11: express.ExpressCompanyRequest } var file_express_express_proto_depIdxs = []int32{ - 8, // 0: express.DeliveryOrderCreateRequest.product_info:type_name -> express.DeliverOrderProductInfo - 2, // 1: express.Express.Items:input_type -> express.EmtpyRequest - 3, // 2: express.Express.Create:input_type -> express.CreateRequest - 3, // 3: express.Express.Edit:input_type -> express.CreateRequest - 4, // 4: express.Express.Info:input_type -> express.IdRequest - 2, // 5: express.Express.Names:input_type -> express.EmtpyRequest - 5, // 6: express.Express.Status:input_type -> express.StatusRequest - 6, // 7: express.Express.History:input_type -> express.HistoryRequest - 10, // 8: express.Express.ExpressCompany:input_type -> express.ExpressCompanyRequest - 9, // 9: express.Express.ExpressDelivering:input_type -> express.DeliveringRequest - 7, // 10: express.Express.DeliveryOrderCreate:input_type -> express.DeliveryOrderCreateRequest - 0, // 11: express.Express.Items:output_type -> express.Response - 0, // 12: express.Express.Create:output_type -> express.Response - 0, // 13: express.Express.Edit:output_type -> express.Response - 0, // 14: express.Express.Info:output_type -> express.Response - 0, // 15: express.Express.Names:output_type -> express.Response - 0, // 16: express.Express.Status:output_type -> express.Response - 0, // 17: express.Express.History:output_type -> express.Response - 0, // 18: express.Express.ExpressCompany:output_type -> express.Response - 0, // 19: express.Express.ExpressDelivering:output_type -> express.Response - 1, // 20: express.Express.DeliveryOrderCreate:output_type -> express.IdResponse - 11, // [11:21] is the sub-list for method output_type - 1, // [1:11] is the sub-list for method input_type + 9, // 0: express.DeliveryOrderCreateRequest.product_info:type_name -> express.DeliverOrderProductInfo + 3, // 1: express.Express.Items:input_type -> express.EmtpyRequest + 4, // 2: express.Express.Create:input_type -> express.CreateRequest + 4, // 3: express.Express.Edit:input_type -> express.CreateRequest + 5, // 4: express.Express.Info:input_type -> express.IdRequest + 3, // 5: express.Express.Names:input_type -> express.EmtpyRequest + 6, // 6: express.Express.Status:input_type -> express.StatusRequest + 7, // 7: express.Express.History:input_type -> express.HistoryRequest + 11, // 8: express.Express.ExpressCompany:input_type -> express.ExpressCompanyRequest + 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 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 @@ -933,7 +1007,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: 11, + NumMessages: 12, NumExtensions: 0, NumServices: 1, }, diff --git a/rpc/express/pb/express_grpc.pb.go b/rpc/express/pb/express_grpc.pb.go index a2190c1..b195809 100644 --- a/rpc/express/pb/express_grpc.pb.go +++ b/rpc/express/pb/express_grpc.pb.go @@ -28,6 +28,8 @@ const ( 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" ) @@ -46,6 +48,8 @@ type ExpressClient interface { ExpressCompany(ctx context.Context, in *ExpressCompanyRequest, opts ...grpc.CallOption) (*Response, error) // 发货 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) // 添加生成订单的发货信息 DeliveryOrderCreate(ctx context.Context, in *DeliveryOrderCreateRequest, opts ...grpc.CallOption) (*IdResponse, error) } @@ -148,6 +152,26 @@ func (c *expressClient) ExpressDelivering(ctx context.Context, in *DeliveringReq return out, nil } +func (c *expressClient) ExpressSfBack(ctx context.Context, in *EmtpyRequest, opts ...grpc.CallOption) (*SfResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(SfResponse) + err := c.cc.Invoke(ctx, Express_ExpressSfBack_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *expressClient) ExpressJdBack(ctx context.Context, in *EmtpyRequest, opts ...grpc.CallOption) (*Response, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Response) + err := c.cc.Invoke(ctx, Express_ExpressJdBack_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) @@ -173,6 +197,8 @@ type ExpressServer interface { ExpressCompany(context.Context, *ExpressCompanyRequest) (*Response, error) // 发货 ExpressDelivering(context.Context, *DeliveringRequest) (*Response, error) + ExpressSfBack(context.Context, *EmtpyRequest) (*SfResponse, error) + ExpressJdBack(context.Context, *EmtpyRequest) (*Response, error) // 添加生成订单的发货信息 DeliveryOrderCreate(context.Context, *DeliveryOrderCreateRequest) (*IdResponse, error) mustEmbedUnimplementedExpressServer() @@ -212,6 +238,12 @@ func (UnimplementedExpressServer) ExpressCompany(context.Context, *ExpressCompan func (UnimplementedExpressServer) ExpressDelivering(context.Context, *DeliveringRequest) (*Response, error) { return nil, status.Error(codes.Unimplemented, "method ExpressDelivering not implemented") } +func (UnimplementedExpressServer) ExpressSfBack(context.Context, *EmtpyRequest) (*SfResponse, error) { + return nil, status.Error(codes.Unimplemented, "method ExpressSfBack not implemented") +} +func (UnimplementedExpressServer) ExpressJdBack(context.Context, *EmtpyRequest) (*Response, error) { + return nil, status.Error(codes.Unimplemented, "method ExpressJdBack not implemented") +} func (UnimplementedExpressServer) DeliveryOrderCreate(context.Context, *DeliveryOrderCreateRequest) (*IdResponse, error) { return nil, status.Error(codes.Unimplemented, "method DeliveryOrderCreate not implemented") } @@ -398,6 +430,42 @@ func _Express_ExpressDelivering_Handler(srv interface{}, ctx context.Context, de return interceptor(ctx, in, info, handler) } +func _Express_ExpressSfBack_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EmtpyRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExpressServer).ExpressSfBack(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Express_ExpressSfBack_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExpressServer).ExpressSfBack(ctx, req.(*EmtpyRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Express_ExpressJdBack_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EmtpyRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExpressServer).ExpressJdBack(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Express_ExpressJdBack_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExpressServer).ExpressJdBack(ctx, req.(*EmtpyRequest)) + } + 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 { @@ -459,6 +527,14 @@ var Express_ServiceDesc = grpc.ServiceDesc{ MethodName: "ExpressDelivering", Handler: _Express_ExpressDelivering_Handler, }, + { + MethodName: "ExpressSfBack", + Handler: _Express_ExpressSfBack_Handler, + }, + { + MethodName: "ExpressJdBack", + Handler: _Express_ExpressJdBack_Handler, + }, { MethodName: "DeliveryOrderCreate", Handler: _Express_DeliveryOrderCreate_Handler, diff --git a/services/express/.gitignore b/services/express/.gitignore index b16af82..2c88e2e 100644 --- a/services/express/.gitignore +++ b/services/express/.gitignore @@ -1,3 +1,4 @@ run.toml tmp -etc/express.yaml \ No newline at end of file +etc/express.yaml +download \ No newline at end of file diff --git a/services/express/expressclient/express.go b/services/express/expressclient/express.go index 63a3326..0bb69b1 100644 --- a/services/express/expressclient/express.go +++ b/services/express/expressclient/express.go @@ -24,6 +24,7 @@ type ( IdRequest = express.IdRequest IdResponse = express.IdResponse Response = express.Response + SfResponse = express.SfResponse StatusRequest = express.StatusRequest Express interface { @@ -38,6 +39,8 @@ type ( ExpressCompany(ctx context.Context, in *ExpressCompanyRequest, opts ...grpc.CallOption) (*Response, error) // 发货 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) // 添加生成订单的发货信息 DeliveryOrderCreate(ctx context.Context, in *DeliveryOrderCreateRequest, opts ...grpc.CallOption) (*IdResponse, error) } @@ -100,6 +103,16 @@ func (m *defaultExpress) ExpressDelivering(ctx context.Context, in *DeliveringRe return client.ExpressDelivering(ctx, in, opts...) } +func (m *defaultExpress) ExpressSfBack(ctx context.Context, in *EmtpyRequest, opts ...grpc.CallOption) (*SfResponse, error) { + client := express.NewExpressClient(m.cli.Conn()) + return client.ExpressSfBack(ctx, in, opts...) +} + +func (m *defaultExpress) ExpressJdBack(ctx context.Context, in *EmtpyRequest, opts ...grpc.CallOption) (*Response, error) { + client := express.NewExpressClient(m.cli.Conn()) + return client.ExpressJdBack(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/expressDeliveringLogic.go b/services/express/internal/logic/expressDeliveringLogic.go index fc71c91..4236de3 100644 --- a/services/express/internal/logic/expressDeliveringLogic.go +++ b/services/express/internal/logic/expressDeliveringLogic.go @@ -201,7 +201,7 @@ func (l *ExpressDeliveringLogic) saveDelever(w modelbase.Params, info *dao.Deliv func (l *ExpressDeliveringLogic) getOrderInfo(items *[]dao.DeliveryOrderPrint) utils.Status { for value, item := range *items { obj := &(*items)[value] - mobile, aErr := utils.Crypto{}.AESDecryptECB(item.Mobile) + mobile, aErr := utils.DecryptPhone(item.Mobile) if aErr == nil { obj.Mobile = mobile } @@ -236,7 +236,6 @@ func (l *ExpressDeliveringLogic) createTransit(info dao.DeliveryOrderPrint, tran func (l *ExpressDeliveringLogic) getDown(client transit.Transit, orders []string, info dao.DeliveryOrderPrint) (transit.TransitResult, error) { ret, err := client.DownSheet(orders, info) if err != nil || len(ret.Files) < utils.NumberOne { - l.Logger.Error("get down err ", orders, err, ret) if len(ret.Files) < utils.NumberOne { err = errors.New("files is empty") } @@ -335,7 +334,7 @@ func (l *ExpressDeliveringLogic) cancel(client transit.Transit, w modelbase.Para return } - ww := modelbase.Params{Eq: map[string]string{"deliver_goods_id": strconv.Itoa(info.Id)}} + ww := modelbase.Params{Eq: map[string]string{"delivery_order_id": strconv.Itoa(info.Id)}} editExp := dao.DeliveryExpStatus{ Status: utils.StatusFail, } diff --git a/services/express/internal/logic/expressJdBackLogic.go b/services/express/internal/logic/expressJdBackLogic.go new file mode 100644 index 0000000..662eddf --- /dev/null +++ b/services/express/internal/logic/expressJdBackLogic.go @@ -0,0 +1,31 @@ +package logic + +import ( + "context" + + "lone-services/rpc/express/pb" + "lone-services/services/express/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type ExpressJdBackLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger + BaseLogic +} + +func NewExpressJdBackLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ExpressJdBackLogic { + return &ExpressJdBackLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *ExpressJdBackLogic) ExpressJdBack(in *express.EmtpyRequest) (*express.Response, error) { + // todo: add your logic here and delete this line + + return &express.Response{}, nil +} diff --git a/services/express/internal/logic/expressSfBackLogic.go b/services/express/internal/logic/expressSfBackLogic.go new file mode 100644 index 0000000..e9855bb --- /dev/null +++ b/services/express/internal/logic/expressSfBackLogic.go @@ -0,0 +1,32 @@ +package logic + +import ( + "context" + "lone-services/pkg/utils" + + "lone-services/rpc/express/pb" + "lone-services/services/express/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type ExpressSfBackLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger + BaseLogic +} + +func NewExpressSfBackLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ExpressSfBackLogic { + return &ExpressSfBackLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *ExpressSfBackLogic) ExpressSfBack(in *express.EmtpyRequest) (*express.SfResponse, error) { + info := utils.GetHeaderAndBody(l.ctx) + l.Logger.Error("ExpressSfBack", "info", string(info.Body)) + return &express.SfResponse{}, nil +} diff --git a/services/express/internal/server/expressServer.go b/services/express/internal/server/expressServer.go index 28e575b..d46de10 100644 --- a/services/express/internal/server/expressServer.go +++ b/services/express/internal/server/expressServer.go @@ -70,6 +70,16 @@ func (s *ExpressServer) ExpressDelivering(ctx context.Context, in *express.Deliv return l.ExpressDelivering(in) } +func (s *ExpressServer) ExpressSfBack(ctx context.Context, in *express.EmtpyRequest) (*express.SfResponse, error) { + l := logic.NewExpressSfBackLogic(ctx, s.svcCtx) + return l.ExpressSfBack(in) +} + +func (s *ExpressServer) ExpressJdBack(ctx context.Context, in *express.EmtpyRequest) (*express.Response, error) { + l := logic.NewExpressJdBackLogic(ctx, s.svcCtx) + return l.ExpressJdBack(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/transit/jd.go b/services/express/internal/transit/jd.go index 3a65a7b..153ff5a 100644 --- a/services/express/internal/transit/jd.go +++ b/services/express/internal/transit/jd.go @@ -19,6 +19,7 @@ import ( "unicode/utf8" jsoniter "github.com/json-iterator/go" + "github.com/zeromicro/go-zero/core/logx" ) // JdClient 顺丰快递客户端 @@ -99,11 +100,11 @@ func (c *JdClient) Create(order dao.DeliveryOrderPrint) (TransitResult, error) { //发送请求 result, err = c.send(JdServiceOrder, info) if err != nil { - utils.Logger.Error("Jd Create Order:", err) + logx.Error("Jd Create Order:", err) return result, err } if result.ErrorCode != utils.StringStatusOk { - utils.Logger.Error("Jd Create Order:", err) + logx.Error("Jd Create Order:", err) return result, nil } c.subscribe(result.WaybillNo[utils.NumberZero]) @@ -123,7 +124,7 @@ func (c *JdClient) Query(waybillCode string) (TransitResult, error) { //发送请求 result, err := c.send(JdServiceOrderQueryByMailNo, data) if err != nil { - utils.Logger.Error("Jd Query Order:", err) + logx.Error("Jd Query Order:", err) return result, err } return result, nil @@ -155,7 +156,7 @@ func (c *JdClient) DownSheet(orders []string, info dao.DeliveryOrderPrint) (Tran //发送请求 result, err := c.sendDown(JdServiceOrderWaybills, data, orders[0]) if err != nil { - utils.Logger.Error("Jd Create Order:", err) + logx.Error("Jd Create Order:", err) return result, err } result.PostInfo = utils.StructToJson(data) @@ -169,14 +170,14 @@ func (c *JdClient) Estimated(orderId, card string) (TransitResult, error) { "customerCode": c.customerCode, "deliveryId": orderId, } - utils.Logger.Error(data) + logx.Error(data) //发送请求 result, err := c.send(JdServiceOrderEstimated, data) if err != nil { - utils.Logger.Error("Jd estimated Order:", err) + logx.Error("Jd estimated Order:", err) return result, err } - utils.Logger.Error(result) + logx.Error(result) result.PostInfo = utils.StructToJson(data) return result, nil } @@ -192,7 +193,7 @@ func (c *JdClient) Cancel(waybillCode string) (TransitResult, error) { //发送请求 result, err := c.send(JdServiceOrderConfirm, data) if err != nil { - utils.Logger.Error("Jd cancel Order:", err) + logx.Error("Jd cancel Order:", err) return result, err } result.PostInfo = utils.StructToJson(data) @@ -210,7 +211,7 @@ func (c *JdClient) Edit(waybillCode string) (TransitResult, error) { //发送请求 result, err := c.send(JdServiceOrderConfirm, data) if err != nil { - utils.Logger.Error("Jd cancel Order:", err) + logx.Error("Jd cancel Order:", err) return result, err } result.PostInfo = utils.StructToJson(data) @@ -238,13 +239,13 @@ func (c *JdClient) sendPost(apiUri, lop string, postData map[string]interface{}) }, "") sign, err := c.sign(JdAlgorithm, []byte(content), c.config.AppSecretKey) if err != nil { - utils.Logger.Error("Jd:", err) + logx.Error("Jd:", err) return "", err } postUrl := baseUri + apiUri httpRequest, err := http.NewRequest("POST", postUrl, bytes.NewReader([]byte(body))) if err != nil { - utils.Logger.Error("Jd:", err) + logx.Error("Jd:", err) return "", err } query := httpRequest.URL.Query() @@ -264,19 +265,19 @@ func (c *JdClient) sendPost(apiUri, lop string, postData map[string]interface{}) httpRequest.Header.Add("content-type", "application/json;charset=utf-8") httpResponse, err := client.Do(httpRequest) if err != nil { - utils.Logger.Error("Jd:", err) + logx.Error("Jd:", err) return "", err } defer func(Body io.ReadCloser) { err := Body.Close() if err != nil { - utils.Logger.Error(err) + logx.Error(err) } }(httpResponse.Body) b, err := io.ReadAll(httpResponse.Body) if err != nil { - utils.Logger.Error("Jd:", err) + logx.Error("Jd:", err) return "", err } @@ -438,12 +439,12 @@ func (c *JdClient) send(uri string, postData map[string]interface{}) (TransitRes // 发送请求 resultStr, err := c.sendPost(uri, JdOrderECAP, postData) if err != nil { - utils.Logger.Error(err) + logx.Error(err) return res, err } var result map[string]interface{} if err = jsoniter.Unmarshal([]byte(resultStr), &result); err != nil { - utils.Logger.Error(err) + logx.Error(err) return res, err } res.RequestInfo = resultStr @@ -471,8 +472,6 @@ func (c *JdClient) send(uri string, postData map[string]interface{}) (TransitRes if msgData, ok := result["data"].(map[string]interface{}); ok { res.RequestQuery = msgData } - utils.Logger.Error(res) - utils.Logger.Error(result) return res, nil } @@ -484,14 +483,14 @@ func (c *JdClient) subscribe(referenceNumber string) bool { res := TransitResult{} // 发送请求 resultStr, err := c.sendPost(JdServiceBackUrl, JdLopDNBackECAP, data) - utils.Logger.Error(data) + logx.Error(data) if err != nil { - utils.Logger.Error(err) + logx.Error(err) return false } var result map[string]interface{} if err = jsoniter.Unmarshal([]byte(resultStr), &result); err != nil { - utils.Logger.Error(err) + logx.Error(err) return false } res.RequestInfo = resultStr @@ -500,12 +499,12 @@ func (c *JdClient) subscribe(referenceNumber string) bool { if result["code"].(float64) == 1000 { res.ErrorCode = utils.StringStatusOk } else { - utils.Logger.Error(result) + logx.Error(result) } res.ApiErrorMsg = utils.GetStringByMap(result, "msg") } - utils.Logger.Error(resultStr) + logx.Error(resultStr) return true } diff --git a/services/express/internal/transit/sf.go b/services/express/internal/transit/sf.go index 46e66e1..553470f 100644 --- a/services/express/internal/transit/sf.go +++ b/services/express/internal/transit/sf.go @@ -14,6 +14,7 @@ import ( "time" jsoniter "github.com/json-iterator/go" + "github.com/zeromicro/go-zero/core/logx" ) // SfClient 顺丰快递客户端 @@ -73,7 +74,7 @@ func (c *SfClient) Create(order dao.DeliveryOrderPrint) (TransitResult, error) { //发送请求 result, err := c.send(postData) if err != nil { - utils.Logger.Error("SF Create Order:", err) + logx.Error("SF Create Order:", err) return result, nil } result.PostInfo = info @@ -94,7 +95,7 @@ func (c *SfClient) Query(orderId string) (TransitResult, error) { //发送请求 result, err := c.send(postData) if err != nil { - utils.Logger.Error("SF Query Order:", err) + logx.Error("SF Query Order:", err) return result, err } return result, nil @@ -130,7 +131,7 @@ func (c *SfClient) DownSheet(orders []string, info dao.DeliveryOrderPrint) (Tran //发送请求 result, err := c.sendDown(postData) if err != nil { - utils.Logger.Error("SF Create Order:", err) + logx.Error("SF Create Order:", err) return result, err } result.PostInfo = string(bytes) @@ -151,7 +152,7 @@ func (c *SfClient) Estimated(orderId, card string) (TransitResult, error) { //发送请求 result, err := c.send(postData) if err != nil { - utils.Logger.Error("SF estimated Order:", err) + logx.Error("SF estimated Order:", err) return result, err } result.PostInfo = string(bytes) @@ -170,7 +171,7 @@ func (c *SfClient) Cancel(orderId string) (TransitResult, error) { //发送请求 result, err := c.send(postData) if err != nil { - utils.Logger.Error("SF cancel Order:", err) + logx.Error("SF cancel Order:", err) return result, err } result.PostInfo = string(bytes) @@ -204,13 +205,13 @@ func (c *SfClient) sendPost(apiUrl string, postData map[string]interface{}) (str resp, err := client.Do(req) if err != nil { - utils.Logger.Error("Sf:", err) + logx.Error("Sf:", err) return "", err } defer func(Body io.ReadCloser) { err := Body.Close() if err != nil { - utils.Logger.Error(err) + logx.Error(err) } }(resp.Body) diff --git a/services/order/internal/logic/updateOrderDeliverStatusLogic.go b/services/order/internal/logic/updateOrderDeliverStatusLogic.go index 000f96c..89d7af2 100644 --- a/services/order/internal/logic/updateOrderDeliverStatusLogic.go +++ b/services/order/internal/logic/updateOrderDeliverStatusLogic.go @@ -32,7 +32,7 @@ func NewUpdateOrderDeliverStatusLogic(ctx context.Context, svcCtx *svc.ServiceCo } func (l *UpdateOrderDeliverStatusLogic) UpdateOrderDeliverStatus(in *order.UpdateOrderDeliverStatusRequest) (*order.UpdateOrderDeliverStatusResponse, error) { - var v validator.AdminOrderAuditingValidator + var v validator.UpdateOrderDeliverStatusValidator if fail := l.checkParams(in, &v); fail != nil { return nil, status.Error(codes.InvalidArgument, fail.Msg) }