服务之间相互调用

This commit is contained in:
2026-08-24 10:06:52 +08:00
parent c33fbdb422
commit 80f428c032
49 changed files with 1756 additions and 35 deletions
@@ -0,0 +1,13 @@
package config
type Config struct {
Nacos NacosConf
}
type NacosConf struct {
Hosts []string
NamespaceId string `json:",optional"`
Group string `json:",optional"`
RegisterIP string `json:",optional"`
ConfigID string `json:",optional"`
}
+44
View File
@@ -0,0 +1,44 @@
package logic
import (
"lone-services/pkg/utils"
"lone-services/pkg/validate"
express "lone-services/rpc/express/pb"
"reflect"
jsoniter "github.com/json-iterator/go"
)
type BaseLogic struct {
}
func (l *BaseLogic) checkParams(in interface{}, v validate.IValidator) *express.Response {
rv := reflect.ValueOf(in)
if rv.Kind() != reflect.Ptr || rv.IsNil() {
return &express.Response{
Code: utils.ErrorParams.Code,
Msg: "request must be nonnil proto pointer",
}
}
resp := validate.ValidateFromProto(in, v)
if resp != utils.StringEmpty {
return &express.Response{
Code: utils.ErrorParams.Code,
Msg: resp,
}
}
return nil
}
func (l *BaseLogic) fail(status utils.Status) (*express.Response, error) {
return l.out(status, status.Msg)
}
func (l *BaseLogic) out(status utils.Status, msg string) (*express.Response, error) {
return &express.Response{Code: status.Code, Msg: msg}, nil
}
func (l *BaseLogic) ok(data any) (*express.Response, error) {
buf, _ := jsoniter.Marshal(data)
return &express.Response{Code: utils.Ok.Code, Msg: utils.Ok.Msg, Data: string(buf)}, nil
}
@@ -0,0 +1,30 @@
package logic
import (
"context"
"lone-services/rpc/express/pb"
"lone-services/services/express/internal/svc"
"github.com/zeromicro/go-zero/core/logx"
)
type ItemsLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewItemsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ItemsLogic {
return &ItemsLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *ItemsLogic) Items(in *express.EmtpyRequest) (*express.Response, error) {
// todo: add your logic here and delete this line
return &express.Response{}, nil
}
@@ -0,0 +1,31 @@
package logic
import (
"context"
express "lone-services/rpc/express/pb"
"lone-services/services/express/internal/svc"
"github.com/zeromicro/go-zero/core/logx"
)
type PingLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
BaseLogic
}
func NewPingLogic(ctx context.Context, svcCtx *svc.ServiceContext) *PingLogic {
return &PingLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *PingLogic) Ping(in *express.Request) (*express.Response, error) {
// todo: add your logic here and delete this line
return l.ok("this is a test")
}
@@ -0,0 +1,34 @@
// Code generated by goctl. DO NOT EDIT.
// goctl 1.10.2
// Source: express.proto
package server
import (
"context"
"lone-services/rpc/express/pb"
"lone-services/services/express/internal/logic"
"lone-services/services/express/internal/svc"
)
type ExpressServer struct {
svcCtx *svc.ServiceContext
express.UnimplementedExpressServer
}
func NewExpressServer(svcCtx *svc.ServiceContext) *ExpressServer {
return &ExpressServer{
svcCtx: svcCtx,
}
}
func (s *ExpressServer) Ping(ctx context.Context, in *express.Request) (*express.Response, error) {
l := logic.NewPingLogic(ctx, s.svcCtx)
return l.Ping(in)
}
func (s *ExpressServer) Items(ctx context.Context, in *express.EmtpyRequest) (*express.Response, error) {
l := logic.NewItemsLogic(ctx, s.svcCtx)
return l.Items(in)
}
@@ -0,0 +1,23 @@
package svc
import (
"lone-services/pkg/utils"
"lone-services/services/express/internal/config"
"gorm.io/gorm"
)
type ServiceContext struct {
Config config.Config
DB *gorm.DB
Prefix string
}
func NewServiceContext(c config.Config, db *gorm.DB) *ServiceContext {
return &ServiceContext{
Config: c,
DB: db,
Prefix: utils.GetConfigString("mysql.prefix"),
}
}