package svc import ( "github.com/zeromicro/go-zero/core/stores/sqlx" "github.com/zeromicro/go-zero/rest" "github.com/zeromicro/go-zero/zrpc" _ "github.com/zeromicro/zero-contrib/zrpc/registry/nacos" "rs/cmd/api/internal/config" "rs/cmd/api/internal/middleware" "rs/cmd/api/internal/types" "rs/genModel" "rs/rpc/transferClient" ) type ServiceContext struct { *types.BaseServiceContext SignMiddleware rest.Middleware } func NewServiceContext(c config.Config) *ServiceContext { var timeOut int64 = 2000 if c.Nacos.Timeout > 2000 { timeOut = c.Nacos.Timeout } client := transferClient.NewTransfer(zrpc.MustNewClient(zrpc.RpcClientConf{ Endpoints: c.Nacos.Endpoints, Timeout: timeOut, })) sqlConn := sqlx.NewMysql(c.DB.Master.DataSource) base := types.BaseServiceContext{ Config: c, TransferRpc: client, YlOrdersMarketRepo: genModel.NewYlOrdersMarketModel(sqlConn, c.Cache), } return &ServiceContext{ BaseServiceContext: &base, SignMiddleware: middleware.NewSignMiddleware(&c).Handle, } }