From 689afaff9745a70c843f1e9fc33c7de7abc09951 Mon Sep 17 00:00:00 2001 From: yanweidong Date: Thu, 17 Apr 2025 16:35:07 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20tpl/logic.go?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tpl/logic.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tpl/logic.go b/tpl/logic.go index cf45af5..61a1386 100644 --- a/tpl/logic.go +++ b/tpl/logic.go @@ -45,8 +45,8 @@ var FetchValidCode = ` var StatusReplyCode = ` return &pb.StatusReply{ - Status: 200, - Message: "ok", + Status: 0, + Message: "OK", Timeseq: time.Now().UnixNano(), }, nil ` From 9c3ac59467c962de6c6628eff9af28ce74c7b38d Mon Sep 17 00:00:00 2001 From: yanweidong Date: Thu, 17 Apr 2025 22:02:56 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20tpl/logic.go?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tpl/logic.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tpl/logic.go b/tpl/logic.go index 61a1386..a6c35e0 100644 --- a/tpl/logic.go +++ b/tpl/logic.go @@ -45,7 +45,7 @@ var FetchValidCode = ` var StatusReplyCode = ` return &pb.StatusReply{ - Status: 0, + Code: 0, Message: "OK", Timeseq: time.Now().UnixNano(), }, nil From cf7e34c61d7d1f0332e9d3b584bb1e916dd2db62 Mon Sep 17 00:00:00 2001 From: yanweidong Date: Thu, 17 Apr 2025 23:16:13 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20tpl/server.go?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tpl/server.go | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/tpl/server.go b/tpl/server.go index ffd90c7..6985954 100644 --- a/tpl/server.go +++ b/tpl/server.go @@ -13,6 +13,7 @@ import ( "git.apinb.com/bsm-sdk/core/vars" "google.golang.org/grpc" "google.golang.org/grpc/reflection" + "google.golang.org/protobuf/proto" gwRuntime "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" ) @@ -23,7 +24,9 @@ type Server struct { } func New(addr string) *Server { - srv := &Server{Ctx: context.Background(), Grpc: grpc.NewServer(), Mux: gwRuntime.NewServeMux()} + srv := &Server{Ctx: context.Background(), Grpc: grpc.NewServer(), Mux: gwRuntime.NewServeMux( + gwRuntime.WithForwardResponseRewriter(responseEnvelope), + )} // register service to grpc.Server {register} @@ -58,6 +61,19 @@ func (s *Server) RegisterSwagger() { }) } +// response envelope +func responseEnvelope(_ context.Context, response proto.Message) (interface{}, error) { + name := string(response.ProtoReflect().Descriptor().Name()) + if name == "Status" || name == "Error" || name == "StatusReply" { + return response, nil + } + return map[string]any{ + "code": 0, + "message": string(response.ProtoReflect().Descriptor().Name()), + "result": response, + }, nil +} + ` var Server = ` From 3b283780ab86536040a3c2943fe10e2af057e3a9 Mon Sep 17 00:00:00 2001 From: yanweidong Date: Thu, 17 Apr 2025 23:24:09 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20tpl/server.go?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tpl/server.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tpl/server.go b/tpl/server.go index 6985954..1491665 100644 --- a/tpl/server.go +++ b/tpl/server.go @@ -69,7 +69,7 @@ func responseEnvelope(_ context.Context, response proto.Message) (interface{}, e } return map[string]any{ "code": 0, - "message": string(response.ProtoReflect().Descriptor().Name()), + "message": "OK", "result": response, }, nil } From 87734c972f75ecdb956590d5b4a4d3ea33c3b0df Mon Sep 17 00:00:00 2001 From: yanweidong Date: Fri, 18 Apr 2025 12:14:38 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20tpl/logic.go?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tpl/logic.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tpl/logic.go b/tpl/logic.go index a6c35e0..b054f49 100644 --- a/tpl/logic.go +++ b/tpl/logic.go @@ -47,6 +47,6 @@ var StatusReplyCode = ` return &pb.StatusReply{ Code: 0, Message: "OK", - Timeseq: time.Now().UnixNano(), + Timeseq: time.Now().UnixMilli(), }, nil ` From fa9ceaddc6f4a94455f9c18872e55169c0098efa Mon Sep 17 00:00:00 2001 From: yanweidong Date: Thu, 1 May 2025 18:42:50 +0800 Subject: [PATCH 6/7] fix logic name caml --- main.go | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index 310f42b..3f3ac56 100644 --- a/main.go +++ b/main.go @@ -1,6 +1,7 @@ package main import ( + "bytes" "errors" "fmt" "go/format" @@ -9,6 +10,7 @@ import ( "path/filepath" "regexp" "strings" + "unicode" "git.apinb.com/bsm-tools/protoc-gen-slc/tpl" @@ -114,7 +116,7 @@ func generateServerFile(gen *protogen.Plugin, file *protogen.File, service *prot //create servers. code := tpl.Server imports := []string{ - "\"" + moduleName + "/internal/logic/" + strings.ToLower(service.GoName) + "\"", + "\"" + moduleName + "/internal/logic/" + toSnakeCase(service.GoName) + "\"", "pb \"" + moduleName + "/pb\"", } @@ -147,7 +149,7 @@ func generateServerFile(gen *protogen.Plugin, file *protogen.File, service *prot } func generateLogicFile(gen *protogen.Plugin, file *protogen.File, service *protogen.Service) error { - logicPath := "./internal/logic/" + strings.ToLower(service.GoName) + logicPath := "./internal/logic/" + toSnakeCase(service.GoName) if !utils.PathExists(logicPath) { os.MkdirAll(logicPath, os.ModePerm) } @@ -285,3 +287,20 @@ func parseOptions(comment string) map[string]string { return result } + +// CamelToSnake 将驼峰命名转换为下划线命名 +func CamelToSnake(s string) string { + var buf bytes.Buffer + for i, r := range s { + if unicode.IsUpper(r) { + // 如果不是第一个字符,添加下划线 + if i > 0 { + buf.WriteRune('_') + } + buf.WriteRune(unicode.ToLower(r)) + } else { + buf.WriteRune(r) + } + } + return buf.String() +} From 9943ed0e6edf6a93fa537bc49438f0682d292394 Mon Sep 17 00:00:00 2001 From: yanweidong Date: Thu, 1 May 2025 18:47:38 +0800 Subject: [PATCH 7/7] fix server name caml --- main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.go b/main.go index 3f3ac56..ae08d3d 100644 --- a/main.go +++ b/main.go @@ -110,7 +110,7 @@ func generateNewServerFile(services []string) error { } func generateServerFile(gen *protogen.Plugin, file *protogen.File, service *protogen.Service) error { - filename := fmt.Sprintf("./internal/server/%s_server.go", strings.ToLower(service.GoName)) + filename := fmt.Sprintf("./internal/server/%s_server.go", toSnakeCase(service.GoName)) moduleName := getModuleName() //create servers.