解决消息中间件并发环境下报错问题
This commit is contained in:
		
							parent
							
								
									7eab49cabe
								
							
						
					
					
						commit
						64905d5d96
					
				|  | @ -22,6 +22,11 @@ WORKDIR /src | |||
| ADD ./sh/startup.sh /opt/startup.sh | ||||
| RUN sed -i 's/\r//g' /opt/startup.sh | ||||
| ADD ./sh/supervisord.conf /etc/supervisord.conf | ||||
| RUN echo 'http://mirrors.ustc.edu.cn/alpine/v3.5/main' > /etc/apk/repositories \ | ||||
| && echo 'http://mirrors.ustc.edu.cn/alpine/v3.5/community' >>/etc/apk/repositories \ | ||||
| && apk update && apk add tzdata \ | ||||
| && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ | ||||
| && echo "Asia/Shanghai" > /etc/timezone | ||||
| 
 | ||||
| WORKDIR /src | ||||
| EXPOSE 10001 | ||||
|  |  | |||
|  | @ -6,7 +6,8 @@ type ExtraConfig struct { | |||
| } | ||||
| 
 | ||||
| type NacosConf struct { | ||||
| 	Hosts       []string | ||||
| 	Hosts       string | ||||
| 	Port        uint64 | ||||
| 	NameSpace   string | ||||
| 	TimeOut     uint64 | ||||
| 	ServiceName string | ||||
|  |  | |||
|  | @ -24,6 +24,6 @@ func NewNewMarketDiscardLogic(ctx context.Context, svcCtx *svc.ServiceContext) * | |||
| } | ||||
| 
 | ||||
| func (l *NewMarketDiscardLogic) NewMarketDiscard(in *transfer.NewMarketDiscardReq) (*transfer.NewMarketDiscardRes, error) { | ||||
| 	res, err := l.svcCtx.NewMarket.Discard(l.ctx, in) | ||||
| 	res, err := l.svcCtx.NewMarket.Init(l.svcCtx.Config.Mq).Discard(l.ctx, in) | ||||
| 	return res, err | ||||
| } | ||||
|  |  | |||
|  | @ -23,7 +23,7 @@ func NewNewMarketOrderLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Ne | |||
| } | ||||
| 
 | ||||
| func (l *NewMarketOrderLogic) NewMarketOrder(in *transfer.NewMarketOrderReq) (*transfer.NewMarketOrderRes, error) { | ||||
| 	res, err := l.svcCtx.NewMarket.Order(l.ctx, in) | ||||
| 	res, err := l.svcCtx.NewMarket.Init(l.svcCtx.Config.Mq).Order(l.ctx, in) | ||||
| 
 | ||||
| 	return res, err | ||||
| } | ||||
|  |  | |||
|  | @ -24,6 +24,6 @@ func NewNewMarketQueryLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Ne | |||
| } | ||||
| 
 | ||||
| func (l *NewMarketQueryLogics) NewMarketQuery(in *transfer.NewMarketQueryReq) (*transfer.NewMarketOrderRes, error) { | ||||
| 	res, err := l.svcCtx.NewMarket.Query(l.ctx, in) | ||||
| 	res, err := l.svcCtx.NewMarket.Init(l.svcCtx.Config.Mq).Query(l.ctx, in) | ||||
| 	return res, err | ||||
| } | ||||
|  |  | |||
|  | @ -6,6 +6,7 @@ import ( | |||
| 	"github.com/mitchellh/mapstructure" | ||||
| 	"github.com/sleepinggodoflove/lansexiongdi-marketing-sdk/api/v1/key" | ||||
| 	"github.com/sleepinggodoflove/lansexiongdi-marketing-sdk/core" | ||||
| 	"trasfer_middleware/cmd/rpc/etc" | ||||
| 	mqs "trasfer_middleware/until/mq" | ||||
| 
 | ||||
| 	"trasfer_middleware/cmd/rpc/internal/logic/po" | ||||
|  | @ -25,6 +26,7 @@ type NewMarketStruct struct { | |||
| } | ||||
| 
 | ||||
| func NewNewMarket(conf types.NewMarketConf, rmq *mqs.Producer) *NewMarketStruct { | ||||
| 
 | ||||
| 	return &NewMarketStruct{ | ||||
| 		Conf: &conf, | ||||
| 		CoreConfig: &core.Config{ | ||||
|  | @ -34,9 +36,15 @@ func NewNewMarket(conf types.NewMarketConf, rmq *mqs.Producer) *NewMarketStruct | |||
| 			BaseURL:    conf.Host, | ||||
| 		}, | ||||
| 		rmq:           rmq, | ||||
| 		RequestStruct: &po.RequestStruct{}, | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func (r *NewMarketStruct) Init(config etc.RockerMqConfig) *NewMarketStruct { | ||||
| 	r.RequestStruct.Config = config | ||||
| 	return r | ||||
| } | ||||
| 
 | ||||
| func (r *NewMarketStruct) handleLog(ctx context.Context, url string, resp *key.Response, in interface{}) error { | ||||
| 	r.SetRequestStruct(in) | ||||
| 	err := r.sendMq(ctx, url, resp) | ||||
|  | @ -112,7 +120,8 @@ func (r *NewMarketStruct) coreKey(appId string) (*key.Key, error) { | |||
| 
 | ||||
| func (r *NewMarketStruct) sendMq(ctx context.Context, url string, resp *key.Response) error { | ||||
| 	//异步存入请求记录
 | ||||
| 	err := r.rmq.SendSync(ctx, r.Config.TopicPrefix+r.Config.Topic.NewMarket.Name, po.SetMqSendDataNewMarket(r.RequestStruct, resp, url)) | ||||
| 	topic := r.RequestStruct.Config.TopicPrefix + r.RequestStruct.Config.Topic.NewMarket.Name | ||||
| 	err := r.rmq.SendSync(ctx, topic, po.SetMqSendDataNewMarket(r.RequestStruct, resp, url)) | ||||
| 	if err != nil { | ||||
| 		sysLog.LogSendMq(ctx, err) | ||||
| 	} | ||||
|  |  | |||
|  | @ -63,9 +63,7 @@ message PhysicalOrderAfterApplyRes { | |||
| } | ||||
| 
 | ||||
| message PhysicalOrderAfterApplyResData { | ||||
|   message ApplyOrderAfterByOpenapiReply { | ||||
|     repeated string order_after_nums = 1; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
|  | @ -204,6 +202,8 @@ message OrderOpSubmitGoodsInfo { | |||
| 
 | ||||
|   string goods_num = 19;  //  商品编号 | ||||
| 
 | ||||
|   double sale_price = 20;  //  商品编号 | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| message    PhysicalOrderListRes{ | ||||
|  | @ -240,6 +240,7 @@ message PhysicalOrderListReq { | |||
|   repeated string customer_order_nums = 7; | ||||
|   repeated int32 abnormal_status = 8; | ||||
|   repeated string created_at = 9; | ||||
|   repeated string supplier_ids = 11; | ||||
| } | ||||
| 
 | ||||
| message PhysicalOrderInfoRes { | ||||
|  | @ -605,6 +606,8 @@ message NewMarketOrderRes { | |||
|     string key = 3; | ||||
|     int32 status = 4; | ||||
|     string url = 5; | ||||
|     uint32 usable_num=10; | ||||
|     uint32 usage_num=11; | ||||
|     string valid_begin_time = 6; | ||||
|     string valid_end_time = 7; | ||||
|     string usage_time = 8; | ||||
|  |  | |||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							|  | @ -4,14 +4,14 @@ import ( | |||
| 	"flag" | ||||
| 	"fmt" | ||||
| 	"github.com/nacos-group/nacos-sdk-go/v2/common/constant" | ||||
| 	"github.com/zeromicro/zero-contrib/zrpc/registry/nacos" | ||||
| 	//"github.com/nacos-group/nacos-sdk-go/v2/common/constant"
 | ||||
| 	"github.com/zeromicro/go-zero/core/conf" | ||||
| 	"github.com/zeromicro/go-zero/core/service" | ||||
| 	"github.com/zeromicro/go-zero/zrpc" | ||||
| 	"github.com/zeromicro/zero-contrib/zrpc/registry/nacos" | ||||
| 	//"github.com/zeromicro/zero-contrib/zrpc/registry/nacos"
 | ||||
| 	"google.golang.org/grpc" | ||||
| 	"google.golang.org/grpc/reflection" | ||||
| 	"strconv" | ||||
| 	"strings" | ||||
| 	"trasfer_middleware/cmd/rpc/internal/config" | ||||
| 	"trasfer_middleware/cmd/rpc/internal/server" | ||||
| 	"trasfer_middleware/cmd/rpc/internal/svc" | ||||
|  | @ -34,7 +34,14 @@ func main() { | |||
| 		} | ||||
| 	}) | ||||
| 
 | ||||
| 	//registerNacos(&c)
 | ||||
| 	registerNacos(&c) | ||||
| 	//until_nacos.NewRegistrarxxx(
 | ||||
| 	//	c.Nacos.Hosts,
 | ||||
| 	//	c.Nacos.Port,
 | ||||
| 	//	v1c.WithNamespaceId(c.Nacos.NameSpace),
 | ||||
| 	//	v1c.WithLogDir("./log/base"),
 | ||||
| 	//)
 | ||||
| 
 | ||||
| 	defer s.Stop() | ||||
| 
 | ||||
| 	fmt.Printf("Starting rpc server at %s...\n", c.ListenOn) | ||||
|  | @ -43,25 +50,25 @@ func main() { | |||
| 
 | ||||
| func registerNacos(c *config.Config) { | ||||
| 	sc := []constant.ServerConfig{} | ||||
| 	for _, v := range c.Nacos.Hosts { | ||||
| 		splitSlice := strings.Split(v, ":") | ||||
| 		port, _ := strconv.Atoi(splitSlice[1]) | ||||
| 		sc = append(sc, *constant.NewServerConfig(splitSlice[0], uint64(port))) | ||||
| 	} | ||||
| 	sc = append(sc, *constant.NewServerConfig(c.Nacos.Hosts, c.Nacos.Port)) | ||||
| 
 | ||||
| 	cc := &constant.ClientConfig{ | ||||
| 		NamespaceId:         c.Nacos.NameSpace, | ||||
| 		TimeoutMs:           c.Nacos.TimeOut, | ||||
| 		NotLoadCacheAtStart: true, | ||||
| 		Username:            c.Nacos.Username, | ||||
| 		Password:            c.Nacos.Password, | ||||
| 		//Username:            c.Nacos.Username,
 | ||||
| 		//Password:            c.Nacos.Password,
 | ||||
| 		LogDir:   "/tmp/nacos/log", | ||||
| 		CacheDir: "/tmp/nacos/cache", | ||||
| 		LogLevel: "debug", | ||||
| 	} | ||||
| 
 | ||||
| 	//splitSlice := strings.Split(c.ListenOn, ":")
 | ||||
| 	//ip, _ := common.GetLocalIP()
 | ||||
| 	opts := nacos.NewNacosConfig(c.Nacos.ServiceName, c.ListenOn, sc, cc) | ||||
| 
 | ||||
| 	err := nacos.RegisterService(opts) | ||||
| 	if err != nil { | ||||
| 		panic(err) | ||||
| 	} | ||||
| 	fmt.Printf("rpc 连接成功") | ||||
| } | ||||
|  |  | |||
|  | @ -74,7 +74,6 @@ type ( | |||
| 	PhysicalOrderAfterApplyReq                    = transfer.PhysicalOrderAfterApplyReq | ||||
| 	PhysicalOrderAfterApplyRes                    = transfer.PhysicalOrderAfterApplyRes | ||||
| 	PhysicalOrderAfterApplyResData                = transfer.PhysicalOrderAfterApplyResData | ||||
| 	PhysicalOrderAfterApplyResData_ApplyOrderAfterByOpenapiReply = transfer.PhysicalOrderAfterApplyResData_ApplyOrderAfterByOpenapiReply | ||||
| 	PhysicalOrderAfterReturnReq                   = transfer.PhysicalOrderAfterReturnReq | ||||
| 	PhysicalOrderAfterReturnRes                   = transfer.PhysicalOrderAfterReturnRes | ||||
| 	PhysicalOrderAfterReturnResData               = transfer.PhysicalOrderAfterReturnResData | ||||
|  |  | |||
							
								
								
									
										14
									
								
								go.mod
								
								
								
								
							
							
						
						
									
										14
									
								
								go.mod
								
								
								
								
							|  | @ -4,8 +4,10 @@ go 1.22.2 | |||
| 
 | ||||
| require ( | ||||
| 	github.com/apache/rocketmq-client-go/v2 v2.1.2 | ||||
| 	github.com/go-kratos/kratos/contrib/registry/nacos/v2 v2.0.0-20250210091908-15168b5a1b7d | ||||
| 	github.com/jinzhu/copier v0.4.0 | ||||
| 	github.com/mitchellh/mapstructure v1.5.0 | ||||
| 	github.com/nacos-group/nacos-sdk-go v1.1.5 | ||||
| 	github.com/nacos-group/nacos-sdk-go/v2 v2.2.3 | ||||
| 	github.com/pkg/errors v0.9.1 | ||||
| 	github.com/sleepinggodoflove/lansexiongdi-marketing-sdk v0.0.14 | ||||
|  | @ -13,10 +15,10 @@ require ( | |||
| 	github.com/streadway/amqp v1.1.0 | ||||
| 	github.com/zeromicro/go-zero v1.6.5 | ||||
| 	github.com/zeromicro/zero-contrib/zrpc/registry/nacos v0.0.0-20231030135404-af9ae855016f | ||||
| 	go.opentelemetry.io/otel v1.19.0 | ||||
| 	go.opentelemetry.io/otel v1.24.0 | ||||
| 	go.opentelemetry.io/otel/exporters/jaeger v1.17.0 | ||||
| 	go.opentelemetry.io/otel/sdk v1.19.0 | ||||
| 	go.opentelemetry.io/otel/trace v1.19.0 | ||||
| 	go.opentelemetry.io/otel/sdk v1.24.0 | ||||
| 	go.opentelemetry.io/otel/trace v1.24.0 | ||||
| 	google.golang.org/grpc v1.67.1 | ||||
| 	google.golang.org/protobuf v1.34.2 | ||||
| ) | ||||
|  | @ -36,7 +38,9 @@ require ( | |||
| 	github.com/emirpasic/gods v1.18.1 // indirect | ||||
| 	github.com/fatih/color v1.16.0 // indirect | ||||
| 	github.com/gabriel-vasile/mimetype v1.4.3 // indirect | ||||
| 	github.com/go-logr/logr v1.3.0 // indirect | ||||
| 	github.com/go-errors/errors v1.0.1 // indirect | ||||
| 	github.com/go-kratos/kratos/v2 v2.8.3 // indirect | ||||
| 	github.com/go-logr/logr v1.4.1 // indirect | ||||
| 	github.com/go-logr/stdr v1.2.2 // indirect | ||||
| 	github.com/go-openapi/jsonpointer v0.19.6 // indirect | ||||
| 	github.com/go-openapi/jsonreference v0.20.2 // indirect | ||||
|  | @ -88,7 +92,7 @@ require ( | |||
| 	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 // indirect | ||||
| 	go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0 // indirect | ||||
| 	go.opentelemetry.io/otel/exporters/zipkin v1.19.0 // indirect | ||||
| 	go.opentelemetry.io/otel/metric v1.19.0 // indirect | ||||
| 	go.opentelemetry.io/otel/metric v1.24.0 // indirect | ||||
| 	go.opentelemetry.io/proto/otlp v1.0.0 // indirect | ||||
| 	go.uber.org/atomic v1.11.0 // indirect | ||||
| 	go.uber.org/automaxprocs v1.5.3 // indirect | ||||
|  |  | |||
							
								
								
									
										39
									
								
								go.sum
								
								
								
								
							
							
						
						
									
										39
									
								
								go.sum
								
								
								
								
							|  | @ -751,6 +751,7 @@ github.com/alicebob/gopher-json v0.0.0-20230218143504-906a9b012302/go.mod h1:SGn | |||
| github.com/alicebob/miniredis/v2 v2.30.4/go.mod h1:b25qWj4fCEsBeAAR2mlb0ufImGC6uH3VlUfb/HS5zKg= | ||||
| github.com/alicebob/miniredis/v2 v2.32.1 h1:Bz7CciDnYSaa0mX5xODh6GUITRSx+cVhjNoOR4JssBo= | ||||
| github.com/alicebob/miniredis/v2 v2.32.1/go.mod h1:AqkLNAfUm0K07J28hnAyyQKf/x0YkCY/g5DCtuL01Mw= | ||||
| github.com/aliyun/alibaba-cloud-sdk-go v1.61.18/go.mod h1:v8ESoHo4SyHmuB4b1tJqDHxfTGEciD+yhvOU/5s1Rfk= | ||||
| github.com/aliyun/alibaba-cloud-sdk-go v1.61.1704 h1:PpfENOj/vPfhhy9N2OFRjpue0hjM5XqAp2thFmkXXIk= | ||||
| github.com/aliyun/alibaba-cloud-sdk-go v1.61.1704/go.mod h1:RcDobYh8k5VP6TNybz9m++gL3ijVI5wueVr0EM10VsU= | ||||
| github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= | ||||
|  | @ -872,6 +873,8 @@ github.com/fullstorydev/grpcurl v1.8.7/go.mod h1:pVtM4qe3CMoLaIzYS8uvTuDj2jVYmXq | |||
| github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= | ||||
| github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= | ||||
| github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= | ||||
| github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w= | ||||
| github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= | ||||
| github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g= | ||||
| github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks= | ||||
| github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= | ||||
|  | @ -885,6 +888,10 @@ github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 | |||
| github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= | ||||
| github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= | ||||
| github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= | ||||
| github.com/go-kratos/kratos/contrib/registry/nacos/v2 v2.0.0-20250210091908-15168b5a1b7d h1:po7aRrAMypX3fbkli93U4pOwYymEF5BUTGXYhk5mHJI= | ||||
| github.com/go-kratos/kratos/contrib/registry/nacos/v2 v2.0.0-20250210091908-15168b5a1b7d/go.mod h1:jYFYjR7PJFJkrVLC9eV4RVYg6IU3zKvJolUYJmW4xaY= | ||||
| github.com/go-kratos/kratos/v2 v2.8.3 h1:kkNBq0gvdX+b8cbaN+p6Sdh95DgMhx7GimefXb4o7Ss= | ||||
| github.com/go-kratos/kratos/v2 v2.8.3/go.mod h1:+Vfe3FzF0d+BfMdajA11jT0rAyJWublRE/seZQNZVxE= | ||||
| github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U= | ||||
| github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk= | ||||
| github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= | ||||
|  | @ -896,8 +903,9 @@ github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTg | |||
| github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= | ||||
| github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= | ||||
| github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= | ||||
| github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= | ||||
| github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= | ||||
| github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= | ||||
| github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= | ||||
| github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= | ||||
| github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= | ||||
| github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= | ||||
|  | @ -1201,6 +1209,8 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8m | |||
| github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= | ||||
| github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= | ||||
| github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= | ||||
| github.com/nacos-group/nacos-sdk-go v1.1.5 h1:bAs4gi4HIV9gW9/hO8bqwTfDxwVWpqR3NkoRmq+PJME= | ||||
| github.com/nacos-group/nacos-sdk-go v1.1.5/go.mod h1:cBv9wy5iObs7khOqov1ERFQrCuTR4ILpgaiaVMxEmGI= | ||||
| github.com/nacos-group/nacos-sdk-go/v2 v2.2.3 h1:sUQx4f1bXDeeOOEQZjGAitzxYApbYY9fVDbxVCaBW+I= | ||||
| github.com/nacos-group/nacos-sdk-go/v2 v2.2.3/go.mod h1:UL4U89WYdnyajgKJUMpuT1Rr6iNmbjrxOO40JRgtA00= | ||||
| github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms= | ||||
|  | @ -1311,8 +1321,8 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L | |||
| github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | ||||
| github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= | ||||
| github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= | ||||
| github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= | ||||
| github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= | ||||
| github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= | ||||
| github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= | ||||
| github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= | ||||
| github.com/rs/zerolog v1.28.0/go.mod h1:NILgTygv/Uej1ra5XxGf82ZFSLk58MFGAUS2o6usyD0= | ||||
| github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= | ||||
|  | @ -1329,6 +1339,7 @@ github.com/sleepinggodoflove/lansexiongdi-marketing-sdk v0.0.14/go.mod h1:2tlSbX | |||
| github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= | ||||
| github.com/smartystreets/assertions v1.2.0 h1:42S6lae5dvLc7BrLu/0ugRtcFVjoJNMC/N3yZFZkDFs= | ||||
| github.com/smartystreets/assertions v1.2.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo= | ||||
| github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= | ||||
| github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= | ||||
| github.com/smartystreets/goconvey v1.7.2 h1:9RBaZCeXEQ3UselpuwUQHltGVXvdwm6cv1hgR6gDIPg= | ||||
| github.com/smartystreets/goconvey v1.7.2/go.mod h1:Vw0tHAZW6lzCRk3xgdin6fKYcG+G3Pg9vgXWeJpQFMM= | ||||
|  | @ -1421,8 +1432,8 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= | |||
| go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= | ||||
| go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= | ||||
| go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU= | ||||
| go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= | ||||
| go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= | ||||
| go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= | ||||
| go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= | ||||
| go.opentelemetry.io/otel/exporters/jaeger v1.14.0/go.mod h1:4Ay9kk5vELRrbg5z4cpP9EtmQRFap2Wb0woPG4lujZA= | ||||
| go.opentelemetry.io/otel/exporters/jaeger v1.17.0 h1:D7UpUy2Xc2wsi1Ras6V40q806WM07rqoCWzXu7Sqy+4= | ||||
| go.opentelemetry.io/otel/exporters/jaeger v1.17.0/go.mod h1:nPCqOnEH9rNLKqH/+rrUjiMzHJdV1BlpKcTwRTyKkKI= | ||||
|  | @ -1442,20 +1453,21 @@ go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0/go.mod h1:1MsF6Y7g | |||
| go.opentelemetry.io/otel/exporters/zipkin v1.14.0/go.mod h1:RcjvOAcvhzcufQP8aHmzRw1gE9g/VEZufDdo2w+s4sk= | ||||
| go.opentelemetry.io/otel/exporters/zipkin v1.19.0 h1:EGY0h5mGliP9o/nIkVuLI0vRiQqmsYOcbwCuotksO1o= | ||||
| go.opentelemetry.io/otel/exporters/zipkin v1.19.0/go.mod h1:JQgTGJP11yi3o4GHzIWYodhPisxANdqxF1eHwDSnJrI= | ||||
| go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= | ||||
| go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= | ||||
| go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI= | ||||
| go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco= | ||||
| go.opentelemetry.io/otel/sdk v1.14.0/go.mod h1:bwIC5TjrNG6QDCHNWvW4HLHtUQ4I+VQDsnjhvyZCALM= | ||||
| go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= | ||||
| go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= | ||||
| go.opentelemetry.io/otel/sdk v1.24.0 h1:YMPPDNymmQN3ZgczicBY3B6sf9n62Dlj9pWD3ucgoDw= | ||||
| go.opentelemetry.io/otel/sdk v1.24.0/go.mod h1:KVrIYw6tEubO9E96HQpcmpTKDVn9gdv35HoYiQWGDFg= | ||||
| go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8= | ||||
| go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= | ||||
| go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= | ||||
| go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= | ||||
| go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= | ||||
| go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= | ||||
| go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= | ||||
| go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= | ||||
| go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= | ||||
| go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= | ||||
| go.uber.org/atomic v1.5.1/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= | ||||
| go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= | ||||
| go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= | ||||
| go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= | ||||
| go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= | ||||
|  | @ -1467,9 +1479,12 @@ go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ | |||
| go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= | ||||
| go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= | ||||
| go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= | ||||
| go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= | ||||
| go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= | ||||
| go.uber.org/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI= | ||||
| go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ= | ||||
| go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= | ||||
| go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= | ||||
| go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= | ||||
| go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= | ||||
| go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= | ||||
|  | @ -1857,6 +1872,7 @@ golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtn | |||
| golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | ||||
| golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | ||||
| golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | ||||
| golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | ||||
| golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | ||||
| golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | ||||
| golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | ||||
|  | @ -2240,6 +2256,7 @@ gopkg.in/h2non/gock.v1 v1.1.2 h1:jBbHXgGBK/AoPVfJh5x4r/WxIrElvbLel8TCZkkZJoY= | |||
| gopkg.in/h2non/gock.v1 v1.1.2/go.mod h1:n7UGz/ckNChHiK05rDoiC4MYSunEC/lyaUm2WWaDva0= | ||||
| gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= | ||||
| gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= | ||||
| gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= | ||||
| gopkg.in/ini.v1 v1.66.2 h1:XfR1dOYubytKy4Shzc2LHrrGhU0lDCfDGG1yLPmpgsI= | ||||
| gopkg.in/ini.v1 v1.66.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= | ||||
| gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= | ||||
|  |  | |||
|  | @ -4,4 +4,4 @@ PORT="10001" | |||
| TEST_ADDRESS="registry.cn-chengdu.aliyuncs.com/go_ls/transfer_middleware" | ||||
| PRODUCE_ADDRESS="registry.cn-chengdu.aliyuncs.com/go_ls/transfer_middleware_produce" | ||||
| COMMIT_CONTENT="UPDATE" | ||||
| VERSION="v3.0.0" | ||||
| VERSION="v3.0.5" | ||||
|  |  | |||
|  | @ -3,6 +3,8 @@ package common | |||
| import ( | ||||
| 	"crypto/md5" | ||||
| 	"encoding/hex" | ||||
| 	"fmt" | ||||
| 	"net" | ||||
| 	"reflect" | ||||
| 	"strings" | ||||
| ) | ||||
|  | @ -61,3 +63,52 @@ func MergeMaps(maps ...map[string]interface{}) map[string]interface{} { | |||
| 	} | ||||
| 	return merged | ||||
| } | ||||
| 
 | ||||
| // 判断一个IP地址是否是私有(局域网)IP地址
 | ||||
| func isPrivateIP(ip net.IP) bool { | ||||
| 	privateIPBlocks := []*net.IPNet{ | ||||
| 		{IP: net.ParseIP("10.0.0.0"), Mask: net.CIDRMask(8, 32)}, | ||||
| 		{IP: net.ParseIP("172.16.0.0"), Mask: net.CIDRMask(12, 32)}, | ||||
| 		{IP: net.ParseIP("192.168.0.0"), Mask: net.CIDRMask(16, 32)}, | ||||
| 		// 如果需要IPv6私有地址,可以在这里添加
 | ||||
| 	} | ||||
| 
 | ||||
| 	for _, block := range privateIPBlocks { | ||||
| 		if block.Contains(ip) { | ||||
| 			return true | ||||
| 		} | ||||
| 	} | ||||
| 	return false | ||||
| } | ||||
| 
 | ||||
| func GetLocalIP() (string, error) { | ||||
| 	interfaces, err := net.Interfaces() | ||||
| 	if err != nil { | ||||
| 		return "", err | ||||
| 	} | ||||
| 
 | ||||
| 	for _, iface := range interfaces { | ||||
| 		addrs, err := iface.Addrs() | ||||
| 		if err != nil { | ||||
| 			continue | ||||
| 		} | ||||
| 
 | ||||
| 		for _, addr := range addrs { | ||||
| 			var ip net.IP | ||||
| 
 | ||||
| 			switch v := addr.(type) { | ||||
| 			case *net.IPNet: | ||||
| 				ip = v.IP | ||||
| 			case *net.IPAddr: | ||||
| 				ip = v.IP | ||||
| 			} | ||||
| 
 | ||||
| 			// 忽略IPv6地址和回环地址(127.0.0.1)
 | ||||
| 			if ip.To4() != nil && !ip.IsLoopback() && isPrivateIP(ip) { | ||||
| 				return ip.String(), nil | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	return "", fmt.Errorf("no local IP address found") | ||||
| } | ||||
|  |  | |||
|  | @ -19,6 +19,7 @@ func GetConfig() string { | |||
| 	default: | ||||
| 		dir = "local.yaml" | ||||
| 	} | ||||
| 	fmt.Printf("当前环境:%s", dir) | ||||
| 	return dir | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -0,0 +1,56 @@ | |||
| package test | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| 	key2 "github.com/sleepinggodoflove/lansexiongdi-marketing-sdk/api/v1/key" | ||||
| 	"github.com/sleepinggodoflove/lansexiongdi-marketing-sdk/core" | ||||
| 	"testing" | ||||
| ) | ||||
| 
 | ||||
| var ( | ||||
| 	appId      = "KYP4nKr53itdP8QQjMyu6pxp" | ||||
| 	privateKey = "MIIEowIBAAKCAQEA7a2I4l8OOdW4weVFvj4u/mBqP3aZhJ0mOTKl4MCW4Pf6gNAlZa5dZYOS/BocmG872+pd10BiI73qiAWsuVaPwCL0A37lQbCXlG0fDAfCLogXuF1qVNRZgkYKrx/5Gppo2PNed7E5YyCUkMUKVPbuwuZteMZJH8d1o6Uojbb/xJQvAGOlx5Y04VZWp/6p2GjhW0srwgbpVegMyyn2Qblx1Lo+Uq5zG8um7FTpbtb/L/itpBFEDSZGIIKDfn4FPyt+jQ0SW5TDYQClSvWHK4V3RkWOVkD1nHeBpZyp7JNehK+7kBfO6G4NJabkyoWqFEiZcTy38ZWQdqJ9N4LZuY37NwIDAQABAoIBAGs2u6e5z1YBda1pehN+Q36WCXeFTW0H4qUslq0S0zy6P/L5cdUzWYggWR6FvN56Vts2Foyxy1NqKTCgtrCIPqIiYkZtaIdAXLAkpTutCEgrNeABq6SGgbYFWG51Es6QVrl+1t9RP5zaponDiIyZM00R2tH/SB8gv41JREjhAvEuNIwPyaoVVt+U/kAdhJgiMKsDpoGaMfsJk76sORu6qQqBkBN8cglN94xC0QtROytW3EY8SnZmgGZHcY3YTXM74CWM8yBg7rNuKv0982f9hKvUDHKMFYly1PzYiSgplkT7RYCMjo2FFf1lt7k7N61+4nalS/EM6324m2poisTRFAkCgYEA+3oXvtwrTim0kXG7V7w5PS8u5dU0sAAH4ACSyzy8nEdKEk4ipoaTGm6km8ko0O+9E70SwZQgK/eAnmsYf5WtMzvItweKUUVsBCm01qSHlu5vzGO3H1ndi7hg+tH9VrOQH3+odQJP9FqC4BkncMszHM4nLglWSTixTTvGIovQLy0CgYEA8fPnu0tWqhfQV6svaA5kt4h6cL52ARKlubRuYkI4hGuikKYpd2A3WuVtD1LkuPQSjwID9730HAqLc7ZMwONjQ8NANi9ZoJR6A+Vzba9zDPQmSc80Ax7Kkjc03D1Y7yiP6P8bWnhCCbRcMy+dcobvBZc2zaWzSNjZwPOSV9xaMnMCgYAclz354hg+U7mGy7JsACdV0HZ5hOrvk6FRk18dIjOjZOuD90QzQJua5rdqSs2MK6WIh/eI8KlTtlj2KeDoKIE/kO15+a59HPJx6rf3q08LFuK5DyEzvEjW6MiF27f80n9xRVdGrlOeyWeVyOZWCZQvEzUbI86eloZ57HDTXqf1pQKBgF6T6xeJgZ0Hpgc/AU75oWEk1kfQC6yrr2CCKUv7esA4mtlUOo1RbRH48MK2snWh4sdIEGj9NbjoXk6jCim0OQ85+ZW0uKJOp8tyG8baeGyt23GqrzgxBxpUvjMBQAxsnKSFZBnfPGEywX+4syEbob9btq54gTaOncAQ9jmmBxQFAoGBAIpPbq2lYwOhgoUJ2BR34xjpmNOiOAF5AVLPGTH44a+iGMJ4tbF9AvfL4xsCWK9zMi3ExaKVN0lNn0cWx2lpXxwO6B+l4L//eczmHx4h1eLJd6ZWyTj7lq+RBOOUgHLKEssZfJ11RYTZjSD7s75JZteM2OFw7BVRRNgw387A3mj6" | ||||
| 	publicKey  = "MIIBCgKCAQEA43/kRptu3Y5i/LjZhGQMaExG7+VE4MvonWpXELhxFdLAsfLA+e1XcKBzD6uHWaKo+L7CWvSBtj3LXAr++uInDnxAiPbgsnmYe8tEeZzg2IYeYPThLH84XQouuTx1pspqvU2t7ZXQPJulq5LbYJUmRR+V4d8zKhSsctLlg3AhujHnZ4LUWJXjrnt++JYi3hFai+p1knUic5rXh/35HoYbnnljGhPPe2U3xn4TWvVkeAJQpxkdS4s2AuSUg+L0M5kkHgeYAr28YQTwOm8GcCaXuLUDdNdX1/Iud9tgsLzQVP3qVdxKVNp8vRZOnKn6OjwLaTBkePVuMVgmtBTR+Gsm+QIDAQAB" | ||||
| 	key        = "f6340a2f536827e35f9f17c8dc9660e0" | ||||
| 	baseURL    = "https://gateway.dev.cdlsxd.cn" | ||||
| 	signType   = core.SignRSA | ||||
| ) | ||||
| 
 | ||||
| func newCore() (*core.Core, error) { | ||||
| 	return core.NewCore(&core.Config{ | ||||
| 		AppID:      appId, | ||||
| 		PrivateKey: privateKey, | ||||
| 		PublicKey:  publicKey, | ||||
| 		Key:        key, | ||||
| 		//SignType:   signType,
 | ||||
| 		BaseURL: baseURL, | ||||
| 	}) | ||||
| } | ||||
| 
 | ||||
| func TestOrder(t *testing.T) { | ||||
| 	c, err := newCore() | ||||
| 	if err != nil { | ||||
| 		t.Error(err) | ||||
| 		return | ||||
| 	} | ||||
| 	a := &key2.Key{c} | ||||
| 	r, err := a.Order(context.Background(), &key2.OrderRequest{ | ||||
| 		OutBizNo:   "10yue00001223001", | ||||
| 		ActivityNo: "N123456", | ||||
| 		Number:     1, | ||||
| 	}) | ||||
| 	if err != nil { | ||||
| 		t.Error(err) | ||||
| 		return | ||||
| 	} | ||||
| 	if !r.IsSuccess() { | ||||
| 		t.Errorf("获取key失败:%s", r.Message) | ||||
| 		return | ||||
| 	} | ||||
| 	//data, err := r.ConvertData()
 | ||||
| 	//if err != nil {
 | ||||
| 	//	t.Error(err)
 | ||||
| 	//	return
 | ||||
| 	//}
 | ||||
| 	t.Logf("data=%+v", r) | ||||
| } | ||||
|  | @ -0,0 +1,125 @@ | |||
| package until_nacos | ||||
| 
 | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"github.com/go-kratos/kratos/contrib/registry/nacos/v2" | ||||
| 	"github.com/nacos-group/nacos-sdk-go/clients" | ||||
| 	"github.com/nacos-group/nacos-sdk-go/clients/config_client" | ||||
| 	"github.com/nacos-group/nacos-sdk-go/common/constant" | ||||
| 	"github.com/nacos-group/nacos-sdk-go/common/logger" | ||||
| 	"github.com/nacos-group/nacos-sdk-go/vo" | ||||
| 	"time" | ||||
| ) | ||||
| 
 | ||||
| type Logger struct { | ||||
| } | ||||
| 
 | ||||
| func (l Logger) Info(args ...interface{}) { | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| func (l Logger) Warn(args ...interface{}) { | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| func (l Logger) Error(args ...interface{}) { | ||||
| 	fmt.Println("hello") | ||||
| } | ||||
| 
 | ||||
| func (l Logger) Debug(args ...interface{}) { | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| func (l Logger) Infof(fmt string, args ...interface{}) { | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| func (l Logger) Warnf(fmt string, args ...interface{}) { | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| func (l Logger) Errorf(fmt string, args ...interface{}) { | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| func (l Logger) Debugf(fmt string, args ...interface{}) { | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| func NewDiscovery(ip string, port uint64, space string, user string, password string, log string) *nacos.Registry { | ||||
| 	defer func() { | ||||
| 		if err := recover(); err != nil { | ||||
| 			fmt.Println("panic:", err) | ||||
| 		} | ||||
| 	}() | ||||
| 	sc := []constant.ServerConfig{ | ||||
| 		*constant.NewServerConfig(ip, port), | ||||
| 	} | ||||
| 	cc := constant.ClientConfig{ | ||||
| 		NamespaceId:  space, | ||||
| 		TimeoutMs:    5000, | ||||
| 		LogDir:       "./log/" + time.Now().Format(time.DateOnly) + "/" + log, | ||||
| 		LogLevel:     "error", | ||||
| 		CustomLogger: Logger{}, | ||||
| 		Username:     user, | ||||
| 		Password:     password, | ||||
| 	} | ||||
| 	client, err := clients.NewNamingClient( | ||||
| 		vo.NacosClientParam{ | ||||
| 			ServerConfigs: sc, | ||||
| 			ClientConfig:  &cc, | ||||
| 		}, | ||||
| 	) | ||||
| 	if err != nil { | ||||
| 		logger.Error("nacos client err", err) | ||||
| 	} | ||||
| 
 | ||||
| 	return nacos.New(client) | ||||
| } | ||||
| 
 | ||||
| func NewRegistrarxxx(ip string, port uint64, opts ...constant.ClientOption) *nacos.Registry { | ||||
| 	sc := []constant.ServerConfig{ | ||||
| 		*constant.NewServerConfig(ip, port), | ||||
| 	} | ||||
| 	clientOpts := append([]constant.ClientOption{ | ||||
| 		constant.WithNamespaceId("transfer"), | ||||
| 		constant.WithTimeoutMs(5000), | ||||
| 		constant.WithCustomLogger(Logger{}), | ||||
| 	}, opts...) | ||||
| 	cc := constant.NewClientConfig(clientOpts...) | ||||
| 	client, err := clients.NewNamingClient( | ||||
| 		vo.NacosClientParam{ | ||||
| 			ServerConfigs: sc, | ||||
| 			ClientConfig:  cc, | ||||
| 		}, | ||||
| 	) | ||||
| 	if err != nil { | ||||
| 		panic(err) | ||||
| 	} | ||||
| 	return nacos.New(client) | ||||
| } | ||||
| 
 | ||||
| func NewNacosConfig(ip string, port uint64, opts ...constant.ClientOption) config_client.IConfigClient { | ||||
| 	//nacos配置中心
 | ||||
| 	sc := []constant.ServerConfig{ | ||||
| 		*constant.NewServerConfig(ip, port), | ||||
| 	} | ||||
| 	clientOpts := append([]constant.ClientOption{ | ||||
| 		constant.WithTimeoutMs(5000), | ||||
| 		constant.WithLogDir("./log/nacos/log/" + time.Now().Format(time.DateOnly)), | ||||
| 		constant.WithCacheDir("./log/nacos/cache"), | ||||
| 		constant.WithLogLevel("error"), | ||||
| 		constant.WithCustomLogger(Logger{}), | ||||
| 	}, opts...) | ||||
| 	cc := constant.NewClientConfig(clientOpts...) | ||||
| 	client, err := clients.NewConfigClient( | ||||
| 		vo.NacosClientParam{ | ||||
| 			ClientConfig:  cc, | ||||
| 			ServerConfigs: sc, | ||||
| 		}, | ||||
| 	) | ||||
| 	if err != nil { | ||||
| 		panic(err) | ||||
| 	} | ||||
| 	return client | ||||
| } | ||||
		Loading…
	
		Reference in New Issue