From 29ffc24bbb601bd661cd10164b0d90c8d96433f2 Mon Sep 17 00:00:00 2001 From: zzw <1464003642@qq.com> Date: Fri, 7 Aug 2026 16:20:31 +0800 Subject: [PATCH] fix: admin database charset --- admin/admin/admin.pb.go | 11 ++++++----- admin/admin/admin_grpc.pb.go | 2 +- admin/proto/admin.proto | 10 +++++++++- bff/etc/admin.pb | Bin 68896 -> 15179 bytes bff/etc/bff.yaml | 13 ++----------- product/etc/product.yaml | 15 ++++++++++++--- product/internal/logic/createlogic.go | 8 ++++---- product/internal/logic/infologic.go | 2 +- product/internal/logic/itemslogic.go | 2 +- product/internal/logic/response.go | 24 ++++++++++++++++-------- product/internal/logic/sortlogic.go | 2 +- product/internal/logic/statuslogic.go | 4 ++-- 12 files changed, 55 insertions(+), 38 deletions(-) diff --git a/admin/admin/admin.pb.go b/admin/admin/admin.pb.go index a6a7b2c..1e5a6fb 100644 --- a/admin/admin/admin.pb.go +++ b/admin/admin/admin.pb.go @@ -1,12 +1,13 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v4.25.8 +// protoc v3.19.4 // source: proto/admin.proto package admin import ( + _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" anypb "google.golang.org/protobuf/types/known/anypb" @@ -514,7 +515,7 @@ var File_proto_admin_proto protoreflect.FileDescriptor const file_proto_admin_proto_rawDesc = "" + "\n" + - "\x11proto/admin.proto\x12\x05admin\x1a\x19google/protobuf/any.proto\"\xac\x01\n" + + "\x11proto/admin.proto\x12\x05admin\x1a\x19google/protobuf/any.proto\x1a\x1cgoogle/api/annotations.proto\"\xac\x01\n" + "\x10AdminEditRequest\x12\x0e\n" + "\x02id\x18\x01 \x01(\x03R\x02id\x12\x12\n" + "\x04name\x18\x02 \x01(\tR\x04name\x12\x1a\n" + @@ -547,9 +548,9 @@ const file_proto_admin_proto_rawDesc = "" + "\x06status\x18\a \x01(\x05R\x06status\"K\n" + "\x11AdminLoginRequest\x12\x1a\n" + "\busername\x18\x01 \x01(\x05R\busername\x12\x1a\n" + - "\bpassword\x18\x02 \x01(\x05R\bpassword2\xc3\x03\n" + - "\x05Admin\x124\n" + - "\bAdminAdd\x12\x17.admin.AdminEditRequest\x1a\x0f.admin.Response\x125\n" + + "\bpassword\x18\x02 \x01(\x05R\bpassword2\xe3\x03\n" + + "\x05Admin\x12T\n" + + "\bAdminAdd\x12\x17.admin.AdminEditRequest\x1a\x0f.admin.Response\"\x1e\x82\xd3\xe4\x93\x02\x18:\x01*\"\x13/admin/v3/admin/add\x125\n" + "\tAdminEdit\x12\x17.admin.AdminEditRequest\x1a\x0f.admin.Response\x124\n" + "\vAdminStatus\x12\x14.admin.StatusRequest\x1a\x0f.admin.Response\x123\n" + "\bPassword\x12\x16.admin.PasswordRequest\x1a\x0f.admin.Response\x129\n" + diff --git a/admin/admin/admin_grpc.pb.go b/admin/admin/admin_grpc.pb.go index cf5a636..7f3c8bb 100644 --- a/admin/admin/admin_grpc.pb.go +++ b/admin/admin/admin_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.6.2 -// - protoc v4.25.8 +// - protoc v3.19.4 // source: proto/admin.proto package admin diff --git a/admin/proto/admin.proto b/admin/proto/admin.proto index 73646cc..6b1d89a 100644 --- a/admin/proto/admin.proto +++ b/admin/proto/admin.proto @@ -4,6 +4,7 @@ package admin; option go_package="./admin"; import "google/protobuf/any.proto"; +import "google/api/annotations.proto"; message AdminEditRequest { int64 id = 1; @@ -15,6 +16,7 @@ message AdminEditRequest { repeated int64 roles = 7; } + message StatusRequest { int64 id = 1 ; int32 status = 2 ; @@ -55,7 +57,13 @@ message AdminLoginRequest { } service Admin { - rpc AdminAdd(AdminEditRequest) returns(Response); + rpc AdminAdd(AdminEditRequest) returns(Response){ + option (google.api.http) = { + post: "/admin/v3/admin/add" + body: "*" + }; + }; + rpc AdminEdit(AdminEditRequest) returns(Response); rpc AdminStatus(StatusRequest) returns(Response); rpc Password(PasswordRequest) returns(Response); diff --git a/bff/etc/admin.pb b/bff/etc/admin.pb index bb449a4139a8d6b725572a24849d1b121c7ad5e6..294d3509a3633aff4b0d4a16543b26c850618fc1 100644 GIT binary patch delta 2794 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 JW7B`|{{vO$fz1E_ diff --git a/bff/etc/bff.yaml b/bff/etc/bff.yaml index bcfb0c4..fc64d57 100644 --- a/bff/etc/bff.yaml +++ b/bff/etc/bff.yaml @@ -20,19 +20,10 @@ Upstreams: Timeout: 5000 ProtoSets: - etc/product.pb + - Name: admin Grpc: Target: admin-service Timeout: 5000 ProtoSets: - - etc/admin.pb - Mappings: - - Method: post - Path: /admin/v3/admin/add - RpcPath: admin.Admin/Add - - Method: post - Path: /admin/v3/admin/edit - RpcPath: admin.Admin/Edit - - Method: post - Path: /admin/v3/admin/status - RpcPath: admin.Admin/Status \ No newline at end of file + - etc/admin.pb \ No newline at end of file diff --git a/product/etc/product.yaml b/product/etc/product.yaml index e9471dd..fad8e92 100644 --- a/product/etc/product.yaml +++ b/product/etc/product.yaml @@ -22,13 +22,22 @@ Nacos: RegisterIP: product Mysql: - Host: mysql - Port: 3306 + # Host: mysql + # Port: 3306 + # User: root + # Password: "123123" + # Database: dms-product + # Charset: utf8mb4 + # Prefix: + + Host: "39.106.171.204" + Port: 33066 User: root - Password: "123123" + Password: "MOLXRZNOU4Y4" Database: dms-product Charset: utf8mb4 Prefix: + # ReadHost: mysql-slave # ReadPort: 3306 # ReadUser: root diff --git a/product/internal/logic/createlogic.go b/product/internal/logic/createlogic.go index 08a63ee..8496140 100644 --- a/product/internal/logic/createlogic.go +++ b/product/internal/logic/createlogic.go @@ -39,14 +39,14 @@ func NewCreateLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CreateLogi func (l *CreateLogic) Create(in *product.CreateReq) (*product.Response, error) { var req validator.ProductCreateValidator if msg := validateService.ValidateFromProto(in, &req); msg != utils.StringEmpty { - return msgResponse(utils.Ok.Code, msg), nil + return outResponse(utils.ErrorParams, msg), nil } if req.Type == dao.ProductTypeNormal { if req.AgentPrice == 0 || req.StorePrice == 0 || req.SalePrice == 0 || req.SharePrice == 0 || req.SaleReward == "" { - return msgResponse(int32(utils.ErrorMissingParams.GetCode()), "缺少相关价格"), nil + return outResponse(utils.ErrorParams, "缺少相关价格"), nil } } @@ -54,7 +54,7 @@ func (l *CreateLogic) Create(in *product.CreateReq) (*product.Response, error) { if len(req.PublishTime) > 1 { t, err := parsePublishTime(req.PublishTime) if err != nil { - return msgResponse(int32(utils.ErrorMissingParams.GetCode()), "时间错误"), nil + return outResponse(utils.ErrorParams, "时间错误"), nil } publishTime = t } @@ -68,7 +68,7 @@ func (l *CreateLogic) Create(in *product.CreateReq) (*product.Response, error) { return failResponse(utils.Fail), nil } if check.Id > 0 { - return failResponse(utils.ErrorDataIsExist), nil + return failErr(utils.ErrorDataIsExist), nil } // 管理员信息后续从 ctx / metadata 取 diff --git a/product/internal/logic/infologic.go b/product/internal/logic/infologic.go index c238ad4..72815e8 100644 --- a/product/internal/logic/infologic.go +++ b/product/internal/logic/infologic.go @@ -35,7 +35,7 @@ func NewInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext) *InfoLogic { func (l *InfoLogic) Info(in *product.InfoReq) (*product.Response, error) { var req validator.ProductInfoValidator if msg := validateService.ValidateFromProto(in, &req); msg != utils.StringEmpty { - return msgResponse(utils.Ok.Code, msg), nil + return outResponse(utils.ErrorParams, msg), nil } var info dao.ProductInfo diff --git a/product/internal/logic/itemslogic.go b/product/internal/logic/itemslogic.go index 9dfae91..4f5be60 100644 --- a/product/internal/logic/itemslogic.go +++ b/product/internal/logic/itemslogic.go @@ -34,7 +34,7 @@ func NewItemsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ItemsLogic func (l *ItemsLogic) Items(in *product.ItemsReq) (*product.Response, error) { var req validator.ProductItemsValidator if msg := validateService.ValidateFromProto(in, &req); msg != utils.StringEmpty { - return msgResponse(utils.Ok.Code, msg), nil + return outResponse(utils.ErrorParams, msg), nil } page := int(req.Page) diff --git a/product/internal/logic/response.go b/product/internal/logic/response.go index 260bdef..ac9713b 100644 --- a/product/internal/logic/response.go +++ b/product/internal/logic/response.go @@ -14,16 +14,24 @@ func okResponse(data string) *product.Response { } } -func failResponse(err utils.Error) *product.Response { +func failResponse(status utils.Status) *product.Response { + return &product.Response{ + Code: status.Code, + Msg: status.Msg, + } +} + +func outResponse(status utils.Status, msg string) *product.Response { + return &product.Response{ + Code: status.Code, + Msg: msg, + } +} + +// failErr 兼容仍返回 utils.Error 的旧错误码 +func failErr(err utils.Error) *product.Response { return &product.Response{ Code: int32(err.GetCode()), Msg: err.GetMsg(), } } - -func msgResponse(code int32, msg string) *product.Response { - return &product.Response{ - Code: code, - Msg: msg, - } -} diff --git a/product/internal/logic/sortlogic.go b/product/internal/logic/sortlogic.go index 7a8579f..64c2f20 100644 --- a/product/internal/logic/sortlogic.go +++ b/product/internal/logic/sortlogic.go @@ -35,7 +35,7 @@ func NewSortLogic(ctx context.Context, svcCtx *svc.ServiceContext) *SortLogic { func (l *SortLogic) Sort(in *product.SortReq) (*product.Response, error) { var req validator.ProductSortValidator if msg := validateService.ValidateFromProto(in, &req); msg != utils.StringEmpty { - return msgResponse(utils.Ok.Code, msg), nil + return outResponse(utils.ErrorParams, msg), nil } var info dao.ProductSort diff --git a/product/internal/logic/statuslogic.go b/product/internal/logic/statuslogic.go index b64642e..10a741c 100644 --- a/product/internal/logic/statuslogic.go +++ b/product/internal/logic/statuslogic.go @@ -35,11 +35,11 @@ func NewStatusLogic(ctx context.Context, svcCtx *svc.ServiceContext) *StatusLogi func (l *StatusLogic) Status(in *product.StatusReq) (*product.Response, error) { var req validator.ProductStatusValidator if msg := validateService.ValidateFromProto(in, &req); msg != utils.StringEmpty { - return msgResponse(utils.Ok.Code, msg), nil + return outResponse(utils.ErrorParams, msg), nil } if req.Status == uint32(dao.ProductStatusDisabled) && len(req.Reason) < 1 { - return failResponse(utils.ErrorReasonParams), nil + return failErr(utils.ErrorReasonParams), nil } var info dao.ProductCheckExist