荣数api转发

This commit is contained in:
Rzy 2024-06-18 18:14:57 +08:00
commit f1aa904c7c
25 changed files with 7092 additions and 0 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
/.idea
/cmd/api/etc
/genModel.sh

31
Dockerfile Normal file
View File

@ -0,0 +1,31 @@
FROM golang:1.21.10-alpine AS builder
LABEL stage=gobuilder
ENV CGO_ENABLED 0
ENV GOPROXY https://goproxy.cn,direct
WORKDIR /src
COPY ../.. .
RUN go mod download
RUN go build -ldflags="-s -w" -o /src/cmd/api/transfer cmd/api/transfer.go
FROM alpine:latest AS runtime
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories/
RUN apk update --no-cache && apk add --no-cache supervisor
RUN apk add --no-cache make
ENV TZ Asia/Shanghai
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY --from=builder /src /src
RUN mkdir "/var/log/supervisor"
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
WORKDIR /src
EXPOSE 10001
#CMD ["sh","/opt/startup.sh"]

73
Makefile Executable file
View File

@ -0,0 +1,73 @@
GOHOSTOS:=$(shell go env GOHOSTOS)
GOPATH:=$(shell go env GOPATH)
VERSION=$(shell git describe --tags --always)
ifeq ($(GOHOSTOS), windows)
#the `find.exe` is different from `find` in bash/shell.
#to see https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/find.
#changed to use git-bash.exe to run find cli or other cli friendly, caused of every developer has a Git.
#Git_Bash= $(subst cmd\,bin\bash.exe,$(dir $(shell where git)))
Git_Bash=$(subst \,/,$(subst cmd\,bin\bash.exe,$(dir $(shell where git))))
INTERNAL_PROTO_FILES=$(shell $(Git_Bash) -c "find internal -name *.proto")
API_PROTO_FILES=$(shell $(Git_Bash) -c "find api -name *.proto")
else
INTERNAL_PROTO_FILES=$(shell find internal -name *.proto)
API_PROTO_FILES=$(shell find api -name *.proto)
endif
.PHONY: apigen
# 根据api创建http文件
apigen:
cd cmd/api/doc && goctl api go -api *.api -dir ../ --style=goZero
.PHONY: rpcgen
# 根据protoc创建rpc文件
rpcgen:
cd cmd/rpc/pb && goctl rpc protoc *.proto --go_out=../pb --go-grpc_out=../pb --zrpc_out=../ --client=false --style=goZero
.PHONY: apiinitrpc
# api端生成rpc
apiinitrpc:
cd rpc && goctl rpc protoc *.proto --go_out=./ --go-grpc_out=./ --zrpc_out=./ --client=true --style=goZero && rm -r etc && rm -r internal && rm *.go
.PHONY: rpcrun
# 运行rpc
rpcrun:
cd cmd/rpc && go run transfer.go
.PHONY: apirun
# 运行rpc
apirun:
cd cmd/api && go run transfer.go
.PHONY: apivalidate
# 运行rpc
apivalidate:
cd cmd/api/doc && goctl api validate --api *.api
.PHONY: apiformat
# 运行rpc
apiformat:
cd cmd/api/doc && goctl api format --dir ./
.PHONY: apitodoc
# 运行rpc
apitodoc:
cd cmd/api/doc && goctl api doc --dir ./
.PHONY: templateUpdate
# rpcdocker
templateUpdate:
cd template && goctl template update --home ./
.PHONY: rpcdocker
# rpcdocker
rpcdocker:
goctl docker -go ./cmd/rpc/transfer.go

25
cmd/api/doc/api.api Executable file
View File

@ -0,0 +1,25 @@
syntax = "v1"
info (
title: "荣数"
desc: "荣数"
author: "RZY"
email: "465386466@qq.com"
version: "v1"
)
import (
"vo/base.api"
)
@server (
prefix: /cross/v1
group: transfer
//middleware: DecryptMiddleware
)
service transfer {
@doc "荣数立减金发放"
@handler market
post /coupon/grant (Req) returns (Resp)
}

46
cmd/api/doc/vo/base.api Executable file
View File

@ -0,0 +1,46 @@
syntax = "v1"
type Empty {}
type Req{
VendorNo string `json:"vendorNo"`
Data ReqData `json:"data"`
Sign string `json:"sign"`
}
type ReqData{
SipOrderNo string `json:"sipOrderNo"`
VoucherTag string `json:"voucherTag"`
AccountType int32 `json:"accountType"`
AccountNo string `json:"accountNo"`
AccountInfo string `json:"accountInfo"`
Num int `json:"num"`
}
type Resp{
Code string `json:"code"`
Message string `json:"message"`
Status string `json:"status"`
Data RespData `json:"data"`
}
type RespData{
SipOrderNo string `json:"sipOrderNo"`
VendorOrderNo string `json:"vendorOrderNo"`
VoucherInfo []RespDataVocherInfo `json:"voucherInfo"`
}
type RespDataVocherInfo{
VoucherCode string `json:"voucherCode"`
VoucherPassword string `json:"voucherPassword"`
VoucherDesc string `json:"voucherDesc"`
QrCodeUrl string `json:"qrCodeUrl"`
StartTime string `json:"startTime"`
EndTime string `json:"endTime"`
}

View File

@ -0,0 +1,24 @@
package config
import (
"github.com/zeromicro/go-zero/core/stores/cache"
"github.com/zeromicro/go-zero/rest"
)
type Config struct {
rest.RestConf
Rpc
DB struct {
Coupon struct {
DataSource string
}
}
Cache cache.CacheConf
}
type Rpc struct {
Nacos Nacos
}
type Nacos struct {
Target string
}

View File

@ -0,0 +1,25 @@
// Code generated by goctl. DO NOT EDIT.
package handler
import (
"net/http"
transfer "rs/cmd/api/internal/handler/transfer"
"rs/cmd/api/internal/svc"
"github.com/zeromicro/go-zero/rest"
)
func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
server.AddRoutes(
[]rest.Route{
{
// 荣数立减金发放
Method: http.MethodPost,
Path: "/coupon/grant",
Handler: transfer.MarketHandler(serverCtx),
},
},
rest.WithPrefix("/cross/v1"),
)
}

View File

@ -0,0 +1,29 @@
package transfer
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"rs/cmd/api/internal/logic/transfer"
"rs/cmd/api/internal/svc"
"rs/cmd/api/internal/types"
)
// 荣数立减金发放
func MarketHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.Req
if err := httpx.Parse(r, &req); err != nil {
httpx.ErrorCtx(r.Context(), w, err)
return
}
l := transfer.NewMarketLogic(r.Context(), svcCtx)
resp, err := l.Market(&req)
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}

View File

@ -0,0 +1,54 @@
package transfer
import (
"context"
"rs/rpc/transfer"
"github.com/jinzhu/copier"
"github.com/zeromicro/go-zero/core/logx"
"rs/cmd/api/internal/svc"
"rs/cmd/api/internal/types"
)
type MarketLogic struct {
logx.Logger
ctx context.Context
svcCtx *svc.ServiceContext
}
// 荣数立减金发放
func NewMarketLogic(ctx context.Context, svcCtx *svc.ServiceContext) *MarketLogic {
return &MarketLogic{
Logger: logx.WithContext(ctx),
ctx: ctx,
svcCtx: svcCtx,
}
}
func (l *MarketLogic) Market(req *types.Req) (resp *types.Resp, err error) {
var (
reqData transfer.RsCouponGrantReq
res types.Resp
)
prefix := req.Data.VoucherTag[0:6]
prefixData, err := l.svcCtx.ProductRedirectConf.FindOneByProductNoPrefix(l.ctx, prefix)
if err != nil {
return nil, err
}
_ = copier.Copy(&reqData, &req)
if prefixData == nil {
result, _err := l.svcCtx.TransferRpc.RsCouponGrant(l.ctx, &reqData)
if _err != nil {
return nil, err
}
_ = copier.Copy(&res, &result)
} else {
result, _err := l.svcCtx.TransferRpc.ZltxRsMiXue(l.ctx, &reqData)
if _err != nil {
return nil, err
}
_ = copier.Copy(&res, &result)
}
return &res, nil
}

View File

@ -0,0 +1,28 @@
package svc
import (
"github.com/zeromicro/go-zero/core/stores/sqlx"
"github.com/zeromicro/go-zero/zrpc"
"rs/cmd/api/internal/config"
"rs/genModel"
"rs/rpc/transferClient"
)
type ServiceContext struct {
Config config.Config
TransferRpc transferClient.Transfer // 调用transfer服务
ProductRedirectConf genModel.ProductRedirectConfModel
}
func NewServiceContext(c config.Config) *ServiceContext {
conn := zrpc.MustNewClient(zrpc.RpcClientConf{
Target: c.Nacos.Target,
})
sqlConn := sqlx.NewMysql(c.DB.Coupon.DataSource)
client := transferClient.NewTransfer(conn)
return &ServiceContext{
Config: c,
TransferRpc: client,
ProductRedirectConf: genModel.NewProductRedirectConfModel(sqlConn, c.Cache),
}
}

View File

@ -0,0 +1,42 @@
// Code generated by goctl. DO NOT EDIT.
package types
type Empty struct {
}
type Req struct {
VendorNo string `json:"vendorNo"`
Data ReqData `json:"data"`
Sign string `json:"sign"`
}
type ReqData struct {
SipOrderNo string `json:"sipOrderNo"`
VoucherTag string `json:"voucherTag"`
AccountType int32 `json:"accountType"`
AccountNo string `json:"accountNo"`
AccountInfo string `json:"accountInfo"`
Num int `json:"num"`
}
type Resp struct {
Code string `json:"code"`
Message string `json:"message"`
Status string `json:"status"`
Data RespData `json:"data"`
}
type RespData struct {
SipOrderNo string `json:"sipOrderNo"`
VendorOrderNo string `json:"vendorOrderNo"`
VoucherInfo []RespDataVocherInfo `json:"voucherInfo"`
}
type RespDataVocherInfo struct {
VoucherCode string `json:"voucherCode"`
VoucherPassword string `json:"voucherPassword"`
VoucherDesc string `json:"voucherDesc"`
QrCodeUrl string `json:"qrCodeUrl"`
StartTime string `json:"startTime"`
EndTime string `json:"endTime"`
}

30
cmd/api/transfer.go Executable file
View File

@ -0,0 +1,30 @@
package main
import (
"flag"
"fmt"
"github.com/zeromicro/go-zero/core/conf"
"github.com/zeromicro/go-zero/rest"
_ "github.com/zeromicro/zero-contrib/zrpc/registry/nacos"
"rs/cmd/api/internal/config"
"rs/cmd/api/internal/handler"
"rs/cmd/api/internal/svc"
)
var configFile = flag.String("f", "etc/transfer.yaml", "the config file")
func main() {
flag.Parse()
var c config.Config
conf.MustLoad(*configFile, &c)
server := rest.MustNewServer(c.RestConf)
defer server.Stop()
ctx := svc.NewServiceContext(c)
handler.RegisterHandlers(server, ctx)
fmt.Printf("Starting server at %s:%d...\n", c.Host, c.Port)
server.Start()
}

View File

@ -0,0 +1,27 @@
package genModel
import (
"github.com/zeromicro/go-zero/core/stores/cache"
"github.com/zeromicro/go-zero/core/stores/sqlx"
)
var _ ProductRedirectConfModel = (*customProductRedirectConfModel)(nil)
type (
// ProductRedirectConfModel is an interface to be customized, add more methods here,
// and implement the added methods in customProductRedirectConfModel.
ProductRedirectConfModel interface {
productRedirectConfModel
}
customProductRedirectConfModel struct {
*defaultProductRedirectConfModel
}
)
// NewProductRedirectConfModel returns a model for the database table.
func NewProductRedirectConfModel(conn sqlx.SqlConn, c cache.CacheConf, opts ...cache.Option) ProductRedirectConfModel {
return &customProductRedirectConfModel{
defaultProductRedirectConfModel: newProductRedirectConfModel(conn, c, opts...),
}
}

View File

@ -0,0 +1,132 @@
// Code generated by goctl. DO NOT EDIT.
package genModel
import (
"context"
"database/sql"
"fmt"
"strings"
"time"
"github.com/zeromicro/go-zero/core/stores/builder"
"github.com/zeromicro/go-zero/core/stores/cache"
"github.com/zeromicro/go-zero/core/stores/sqlc"
"github.com/zeromicro/go-zero/core/stores/sqlx"
"github.com/zeromicro/go-zero/core/stringx"
)
var (
productRedirectConfFieldNames = builder.RawFieldNames(&ProductRedirectConf{})
productRedirectConfRows = strings.Join(productRedirectConfFieldNames, ",")
productRedirectConfRowsExpectAutoSet = strings.Join(stringx.Remove(productRedirectConfFieldNames, "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",")
productRedirectConfRowsWithPlaceHolder = strings.Join(stringx.Remove(productRedirectConfFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?"
cacheCouponOpenProductRedirectConfIdPrefix = "cache:couponOpen:productRedirectConf:id:"
cacheCouponOpenProductRedirectConfProductNoPrefixPrefix = "cache:couponOpen:productRedirectConf:product_no_prefix:"
)
type (
productRedirectConfModel interface {
Insert(ctx context.Context, data *ProductRedirectConf) (sql.Result, error)
FindOne(ctx context.Context, id int64) (*ProductRedirectConf, error)
Update(ctx context.Context, data *ProductRedirectConf) error
Delete(ctx context.Context, id int64) error
FindOneByProductNoPrefix(ctx context.Context, productNoPrefix string) (*ProductRedirectConf, error)
}
defaultProductRedirectConfModel struct {
sqlc.CachedConn
table string
}
ProductRedirectConf struct {
Id int64 `db:"id"`
ProductNoPrefix string `db:"product_no_prefix"` // 商品编号前缀
RequestUrl string `db:"request_url"` // 分发地址
Method string `db:"method"` // 请求方式
Encrypt uint64 `db:"encrypt"` // 是否需要加密、加签
CreateTime time.Time `db:"create_time"`
}
)
func newProductRedirectConfModel(conn sqlx.SqlConn, c cache.CacheConf, opts ...cache.Option) *defaultProductRedirectConfModel {
return &defaultProductRedirectConfModel{
CachedConn: sqlc.NewConn(conn, c, opts...),
table: "`product_redirect_conf`",
}
}
func (m *defaultProductRedirectConfModel) Delete(ctx context.Context, id int64) error {
couponOpenProductRedirectConfIdKey := fmt.Sprintf("%s%v", cacheCouponOpenProductRedirectConfIdPrefix, id)
_, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
query := fmt.Sprintf("delete from %s where `id` = ?", m.table)
return conn.ExecCtx(ctx, query, id)
}, couponOpenProductRedirectConfIdKey)
return err
}
func (m *defaultProductRedirectConfModel) FindOne(ctx context.Context, id int64) (*ProductRedirectConf, error) {
couponOpenProductRedirectConfIdKey := fmt.Sprintf("%s%v", cacheCouponOpenProductRedirectConfIdPrefix, id)
var resp ProductRedirectConf
err := m.QueryRowCtx(ctx, &resp, couponOpenProductRedirectConfIdKey, func(ctx context.Context, conn sqlx.SqlConn, v any) error {
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", productRedirectConfRows, m.table)
return conn.QueryRowCtx(ctx, v, query, id)
})
switch err {
case nil:
return &resp, nil
case sqlc.ErrNotFound:
return nil, ErrNotFound
default:
return nil, err
}
}
func (m *defaultProductRedirectConfModel) Insert(ctx context.Context, data *ProductRedirectConf) (sql.Result, error) {
couponOpenProductRedirectConfIdKey := fmt.Sprintf("%s%v", cacheCouponOpenProductRedirectConfIdPrefix, data.Id)
ret, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?)", m.table, productRedirectConfRowsExpectAutoSet)
return conn.ExecCtx(ctx, query, data.Id, data.ProductNoPrefix, data.RequestUrl, data.Method, data.Encrypt)
}, couponOpenProductRedirectConfIdKey)
return ret, err
}
func (m *defaultProductRedirectConfModel) Update(ctx context.Context, data *ProductRedirectConf) error {
couponOpenProductRedirectConfIdKey := fmt.Sprintf("%s%v", cacheCouponOpenProductRedirectConfIdPrefix, data.Id)
_, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, productRedirectConfRowsWithPlaceHolder)
return conn.ExecCtx(ctx, query, data.ProductNoPrefix, data.RequestUrl, data.Method, data.Encrypt, data.Id)
}, couponOpenProductRedirectConfIdKey)
return err
}
func (m *defaultProductRedirectConfModel) formatPrimary(primary any) string {
return fmt.Sprintf("%s%v", cacheCouponOpenProductRedirectConfIdPrefix, primary)
}
func (m *defaultProductRedirectConfModel) queryPrimary(ctx context.Context, conn sqlx.SqlConn, v, primary any) error {
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", productRedirectConfRows, m.table)
return conn.QueryRowCtx(ctx, v, query, primary)
}
func (m *defaultProductRedirectConfModel) FindOneByProductNoPrefix(ctx context.Context, productNoPrefix string) (*ProductRedirectConf, error) {
cacheCouponOpenProductRedirectConfProductNoPrefixPrefix := fmt.Sprintf("%s%v", cacheCouponOpenProductRedirectConfProductNoPrefixPrefix, productNoPrefix)
var resp ProductRedirectConf
err := m.QueryRowCtx(ctx, &resp, cacheCouponOpenProductRedirectConfProductNoPrefixPrefix, func(ctx context.Context, conn sqlx.SqlConn, v any) error {
query := fmt.Sprintf("select %s from %s where `product_no_prefix` = ? limit 1", productRedirectConfRows, m.table)
return conn.QueryRowCtx(ctx, v, query, productNoPrefix)
})
switch err {
case nil:
return &resp, nil
case sqlc.ErrNotFound:
return nil, nil
default:
return nil, err
}
}
func (m *defaultProductRedirectConfModel) tableName() string {
return m.table
}

5
genModel/vars.go Normal file
View File

@ -0,0 +1,5 @@
package genModel
import "github.com/zeromicro/go-zero/core/stores/sqlx"
var ErrNotFound = sqlx.ErrNotFound

104
go.mod Executable file
View File

@ -0,0 +1,104 @@
module rs
go 1.21
require (
github.com/jinzhu/copier v0.4.0
github.com/zeromicro/go-zero v1.6.4
github.com/zeromicro/zero-contrib/zrpc/registry/nacos v0.0.0-20231030135404-af9ae855016f
google.golang.org/grpc v1.63.2
google.golang.org/protobuf v1.33.0
)
require (
filippo.io/edwards25519 v1.1.0 // indirect
github.com/aliyun/alibaba-cloud-sdk-go v1.61.1704 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/buger/jsonparser v1.1.1 // indirect
github.com/cenkalti/backoff/v4 v4.2.1 // indirect
github.com/cespare/xxhash/v2 v2.2.0 // indirect
github.com/coreos/go-semver v0.3.1 // indirect
github.com/coreos/go-systemd/v22 v22.5.0 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
github.com/fatih/color v1.16.0 // indirect
github.com/go-logr/logr v1.3.0 // 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
github.com/go-openapi/swag v0.22.4 // indirect
github.com/go-sql-driver/mysql v1.8.1 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang-jwt/jwt/v4 v4.5.0 // indirect
github.com/golang/mock v1.6.0 // indirect
github.com/golang/protobuf v1.5.4 // indirect
github.com/google/gnostic-models v0.6.8 // indirect
github.com/google/go-cmp v0.6.0 // indirect
github.com/google/gofuzz v1.2.0 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/nacos-group/nacos-sdk-go/v2 v2.2.3 // indirect
github.com/openzipkin/zipkin-go v0.4.2 // indirect
github.com/pelletier/go-toml/v2 v2.2.0 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/prometheus/client_golang v1.18.0 // indirect
github.com/prometheus/client_model v0.5.0 // indirect
github.com/prometheus/common v0.45.0 // indirect
github.com/prometheus/procfs v0.12.0 // indirect
github.com/redis/go-redis/v9 v9.4.0 // indirect
github.com/spaolacci/murmur3 v1.1.0 // indirect
go.etcd.io/etcd/api/v3 v3.5.13 // indirect
go.etcd.io/etcd/client/pkg/v3 v3.5.13 // indirect
go.etcd.io/etcd/client/v3 v3.5.13 // indirect
go.opentelemetry.io/otel v1.19.0 // indirect
go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0 // indirect
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/sdk v1.19.0 // indirect
go.opentelemetry.io/otel/trace v1.19.0 // indirect
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
go.uber.org/atomic v1.10.0 // indirect
go.uber.org/automaxprocs v1.5.3 // indirect
go.uber.org/multierr v1.9.0 // indirect
go.uber.org/zap v1.24.0 // indirect
golang.org/x/net v0.24.0 // indirect
golang.org/x/oauth2 v0.17.0 // indirect
golang.org/x/sync v0.6.0 // indirect
golang.org/x/sys v0.19.0 // indirect
golang.org/x/term v0.19.0 // indirect
golang.org/x/text v0.14.0 // indirect
golang.org/x/time v0.5.0 // indirect
google.golang.org/appengine v1.6.8 // indirect
google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/ini.v1 v1.66.2 // indirect
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
k8s.io/api v0.29.3 // indirect
k8s.io/apimachinery v0.29.3 // indirect
k8s.io/client-go v0.29.3 // indirect
k8s.io/klog/v2 v2.110.1 // indirect
k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 // indirect
k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
sigs.k8s.io/yaml v1.3.0 // indirect
)

2303
go.sum Executable file

File diff suppressed because it is too large Load Diff

260
rpc/transfer.proto Executable file
View File

@ -0,0 +1,260 @@
syntax = "proto3";
package transfer;
option go_package="./transfer";
message DefaultRes {
string code=1;
string message=2;
}
message DefaultReq {
string merchantId = 1;
uint64 timeStamp = 2;
string sign = 3;
}
service Transfer {
rpc zltxOrderRecharge(ZltxOrderRechargeReq) returns(DefaultRes);
rpc zltxOrderRechargeQuery(ZltxOrderRechargeQueryReq) returns(ZltxOrderRechargeQueryRes);
rpc zltxOrderCard(ZltxOrderCardReq) returns(DefaultRes);
rpc zltxOrderCardQuery(ZltxOrderCardQueryReq) returns(ZltxOrderCardQueryRes);
rpc zltxOrderSms(ZltxOrderSmsReq) returns(ZltxOrderSmsRes);
rpc zltxRechargeInfo(DefaultReq) returns(ZltxRechargeInfoRes);
rpc zltxRechargeProduct(DefaultReq) returns(ZltxRechargeProductRes);
rpc zltxRsMiXue(RsCouponGrantReq) returns(RsCouponGrantRes);
rpc marketKeySend(MarketKeySendReq) returns(MarketKeySendRes);
rpc marketKeyDiscard(MarketKeyDiscardReq) returns(MarketKeyDiscardRes);
rpc marketQuery(MarketQueryReq) returns(MarketQueryRes);
rpc rsCouponGrant(RsCouponGrantReq) returns(RsCouponGrantRes);
}
message RsCouponGrantReq {
string vendorNo = 1;
Data data = 2;
message Data{
string sipOrderNo = 1;
string voucherTag = 2;
int32 accountType = 3;
string accountNo = 4;
string accountInfo = 5;
int32 num = 6;
}
string sign = 3;
}
message RsCouponGrantRes {
string code = 1;
string message = 2;
string status = 3;
Data data = 4;
message Data {
string sipOrderNo = 1;
string vendorOrderNo = 2;
repeated VoucherInfo voucherInfo = 3;
message VoucherInfo {
string voucherCode = 1;
string voucherPassword = 2;
string voucherDesc = 3;
string qrCodeUrl = 4;
string startTime = 5;
string endTime = 6;
}
}
}
message MarketQueryRes {
string errCode=1;
string msg=2;
Data data=3;
message Data{
string voucher_id = 1;
string voucher_code = 2;
string voucher_status = 5;
}
}
message MarketQueryReq {
string app_id = 1;
uint64 sign = 2;
string req_code = 3;
string mem_id = 4;
string req_serial_no = 5;
string timestamp = 6;
string voucher_id = 8;
string voucher_code = 9;
}
message MarketKeyDiscardRes {
string errCode=1;
string msg=2;
Data data=3;
message Data{
string voucher_id = 1;
string voucher_code = 2;
string voucher_date = 4;
string status = 5;
}
}
message MarketKeyDiscardReq {
string app_id = 1;
uint64 sign = 2;
string req_code = 3;
string mem_id = 4;
string req_serial_no = 5;
string timestamp = 6;
string voucher_id = 8;
string voucher_code = 9;
}
message MarketKeySendRes {
string errCode=1;
string msg=2;
Data data=3;
message Data{
string voucher_id = 1;
string voucher_code = 2;
string short_url = 3;
string voucher_sdate = 4;
string voucher_edate = 5;
string code_type = 6;
}
}
message MarketKeySendReq {
string app_id = 1;
uint64 sign = 2;
string req_code = 3;
string mem_id = 4;
string req_serial_no = 5;
string timestamp = 6;
string pos_id = 7;
string voucher_id = 8;
int64 voucher_num = 9;
string mobile_no = 10;
string send_msg = 11;
}
message ZltxRechargeProductRes {
string code=1;
repeated Product products=2;
message Product{
int64 productId=1;
string channelPrice=2;
string itemName=3;
string originalPrice=4;
}
}
message ZltxRechargeInfoRes {
string code=1;
string balance=2;
}
message ZltxOrderSmsRes {
string code=1;
string message=2;
string status = 3;
string outTradeNo=4;
}
message ZltxOrderSmsReq {
string merchantId = 1;
uint64 timeStamp = 2;
string sign = 3;
string outTradeNo = 4;
}
message ZltxOrderCardQueryRes {
string code=1;
string message=2;
string status = 3;
string outTradeNo=4;
}
message ZltxOrderCardQueryReq {
string merchantId = 1;
uint64 timeStamp = 2;
string sign = 3;
string outTradeNo = 4;
}
message ZltxOrderCardReq {
string merchantId = 1;
string sign = 2;
uint64 timeStamp = 3;
string outTradeNo = 4;
int64 productId=5;
string mobile=6;
uint32 accountType=7;
int32 number=8;
string notifyUrl=9;
string extendParameter=10;
}
message ZltxOrderRechargeQueryRes {
string code=1;
string message=2;
string status = 3;
string outTradeNo=4;
}
message ZltxOrderRechargeQueryReq {
string merchantId = 1;
uint64 timeStamp = 2;
string sign = 3;
string outTradeNo = 4;
}
message ZltxOrderRechargeReq {
string merchantId = 1;
string sign = 2;
uint64 timeStamp = 3;
string outTradeNo = 4;
int64 productId=5;
string mobile=6;
uint32 accountType=7;
int32 number=8;
string notifyUrl=9;
string extendParameter=10;
}
message GetResellerByAppIdReq {
string appId = 1;
}
message GetResellerByAppIdRes {
int64 id=1;
string merchantId=2;
string resellerId=3;
string appId=4;
string posId=5;
string storeId=6;
int32 apiMod=7;
string publicKey=8;
string privateKey=9;
string merchantPublicKey=10;
string secretKey=11;
string notifyUrl=12;
string subscribeEvent=13;
int32 status=14;
string createTime=15;
}

3134
rpc/transfer/transfer.pb.go Executable file

File diff suppressed because it is too large Load Diff

516
rpc/transfer/transfer_grpc.pb.go Executable file
View File

@ -0,0 +1,516 @@
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.3.0
// - protoc v3.6.1
// source: transfer.proto
package transfer
import (
context "context"
grpc "google.golang.org/grpc"
codes "google.golang.org/grpc/codes"
status "google.golang.org/grpc/status"
)
// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
// Requires gRPC-Go v1.32.0 or later.
const _ = grpc.SupportPackageIsVersion7
const (
Transfer_ZltxOrderRecharge_FullMethodName = "/transfer.Transfer/zltxOrderRecharge"
Transfer_ZltxOrderRechargeQuery_FullMethodName = "/transfer.Transfer/zltxOrderRechargeQuery"
Transfer_ZltxOrderCard_FullMethodName = "/transfer.Transfer/zltxOrderCard"
Transfer_ZltxOrderCardQuery_FullMethodName = "/transfer.Transfer/zltxOrderCardQuery"
Transfer_ZltxOrderSms_FullMethodName = "/transfer.Transfer/zltxOrderSms"
Transfer_ZltxRechargeInfo_FullMethodName = "/transfer.Transfer/zltxRechargeInfo"
Transfer_ZltxRechargeProduct_FullMethodName = "/transfer.Transfer/zltxRechargeProduct"
Transfer_ZltxRsMiXue_FullMethodName = "/transfer.Transfer/zltxRsMiXue"
Transfer_MarketKeySend_FullMethodName = "/transfer.Transfer/marketKeySend"
Transfer_MarketKeyDiscard_FullMethodName = "/transfer.Transfer/marketKeyDiscard"
Transfer_MarketQuery_FullMethodName = "/transfer.Transfer/marketQuery"
Transfer_RsCouponGrant_FullMethodName = "/transfer.Transfer/rsCouponGrant"
)
// TransferClient is the client API for Transfer service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
type TransferClient interface {
ZltxOrderRecharge(ctx context.Context, in *ZltxOrderRechargeReq, opts ...grpc.CallOption) (*DefaultRes, error)
ZltxOrderRechargeQuery(ctx context.Context, in *ZltxOrderRechargeQueryReq, opts ...grpc.CallOption) (*ZltxOrderRechargeQueryRes, error)
ZltxOrderCard(ctx context.Context, in *ZltxOrderCardReq, opts ...grpc.CallOption) (*DefaultRes, error)
ZltxOrderCardQuery(ctx context.Context, in *ZltxOrderCardQueryReq, opts ...grpc.CallOption) (*ZltxOrderCardQueryRes, error)
ZltxOrderSms(ctx context.Context, in *ZltxOrderSmsReq, opts ...grpc.CallOption) (*ZltxOrderSmsRes, error)
ZltxRechargeInfo(ctx context.Context, in *DefaultReq, opts ...grpc.CallOption) (*ZltxRechargeInfoRes, error)
ZltxRechargeProduct(ctx context.Context, in *DefaultReq, opts ...grpc.CallOption) (*ZltxRechargeProductRes, error)
ZltxRsMiXue(ctx context.Context, in *RsCouponGrantReq, opts ...grpc.CallOption) (*RsCouponGrantRes, error)
MarketKeySend(ctx context.Context, in *MarketKeySendReq, opts ...grpc.CallOption) (*MarketKeySendRes, error)
MarketKeyDiscard(ctx context.Context, in *MarketKeyDiscardReq, opts ...grpc.CallOption) (*MarketKeyDiscardRes, error)
MarketQuery(ctx context.Context, in *MarketQueryReq, opts ...grpc.CallOption) (*MarketQueryRes, error)
RsCouponGrant(ctx context.Context, in *RsCouponGrantReq, opts ...grpc.CallOption) (*RsCouponGrantRes, error)
}
type transferClient struct {
cc grpc.ClientConnInterface
}
func NewTransferClient(cc grpc.ClientConnInterface) TransferClient {
return &transferClient{cc}
}
func (c *transferClient) ZltxOrderRecharge(ctx context.Context, in *ZltxOrderRechargeReq, opts ...grpc.CallOption) (*DefaultRes, error) {
out := new(DefaultRes)
err := c.cc.Invoke(ctx, Transfer_ZltxOrderRecharge_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *transferClient) ZltxOrderRechargeQuery(ctx context.Context, in *ZltxOrderRechargeQueryReq, opts ...grpc.CallOption) (*ZltxOrderRechargeQueryRes, error) {
out := new(ZltxOrderRechargeQueryRes)
err := c.cc.Invoke(ctx, Transfer_ZltxOrderRechargeQuery_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *transferClient) ZltxOrderCard(ctx context.Context, in *ZltxOrderCardReq, opts ...grpc.CallOption) (*DefaultRes, error) {
out := new(DefaultRes)
err := c.cc.Invoke(ctx, Transfer_ZltxOrderCard_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *transferClient) ZltxOrderCardQuery(ctx context.Context, in *ZltxOrderCardQueryReq, opts ...grpc.CallOption) (*ZltxOrderCardQueryRes, error) {
out := new(ZltxOrderCardQueryRes)
err := c.cc.Invoke(ctx, Transfer_ZltxOrderCardQuery_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *transferClient) ZltxOrderSms(ctx context.Context, in *ZltxOrderSmsReq, opts ...grpc.CallOption) (*ZltxOrderSmsRes, error) {
out := new(ZltxOrderSmsRes)
err := c.cc.Invoke(ctx, Transfer_ZltxOrderSms_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *transferClient) ZltxRechargeInfo(ctx context.Context, in *DefaultReq, opts ...grpc.CallOption) (*ZltxRechargeInfoRes, error) {
out := new(ZltxRechargeInfoRes)
err := c.cc.Invoke(ctx, Transfer_ZltxRechargeInfo_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *transferClient) ZltxRechargeProduct(ctx context.Context, in *DefaultReq, opts ...grpc.CallOption) (*ZltxRechargeProductRes, error) {
out := new(ZltxRechargeProductRes)
err := c.cc.Invoke(ctx, Transfer_ZltxRechargeProduct_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *transferClient) ZltxRsMiXue(ctx context.Context, in *RsCouponGrantReq, opts ...grpc.CallOption) (*RsCouponGrantRes, error) {
out := new(RsCouponGrantRes)
err := c.cc.Invoke(ctx, Transfer_ZltxRsMiXue_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *transferClient) MarketKeySend(ctx context.Context, in *MarketKeySendReq, opts ...grpc.CallOption) (*MarketKeySendRes, error) {
out := new(MarketKeySendRes)
err := c.cc.Invoke(ctx, Transfer_MarketKeySend_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *transferClient) MarketKeyDiscard(ctx context.Context, in *MarketKeyDiscardReq, opts ...grpc.CallOption) (*MarketKeyDiscardRes, error) {
out := new(MarketKeyDiscardRes)
err := c.cc.Invoke(ctx, Transfer_MarketKeyDiscard_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *transferClient) MarketQuery(ctx context.Context, in *MarketQueryReq, opts ...grpc.CallOption) (*MarketQueryRes, error) {
out := new(MarketQueryRes)
err := c.cc.Invoke(ctx, Transfer_MarketQuery_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *transferClient) RsCouponGrant(ctx context.Context, in *RsCouponGrantReq, opts ...grpc.CallOption) (*RsCouponGrantRes, error) {
out := new(RsCouponGrantRes)
err := c.cc.Invoke(ctx, Transfer_RsCouponGrant_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// TransferServer is the server API for Transfer service.
// All implementations must embed UnimplementedTransferServer
// for forward compatibility
type TransferServer interface {
ZltxOrderRecharge(context.Context, *ZltxOrderRechargeReq) (*DefaultRes, error)
ZltxOrderRechargeQuery(context.Context, *ZltxOrderRechargeQueryReq) (*ZltxOrderRechargeQueryRes, error)
ZltxOrderCard(context.Context, *ZltxOrderCardReq) (*DefaultRes, error)
ZltxOrderCardQuery(context.Context, *ZltxOrderCardQueryReq) (*ZltxOrderCardQueryRes, error)
ZltxOrderSms(context.Context, *ZltxOrderSmsReq) (*ZltxOrderSmsRes, error)
ZltxRechargeInfo(context.Context, *DefaultReq) (*ZltxRechargeInfoRes, error)
ZltxRechargeProduct(context.Context, *DefaultReq) (*ZltxRechargeProductRes, error)
ZltxRsMiXue(context.Context, *RsCouponGrantReq) (*RsCouponGrantRes, error)
MarketKeySend(context.Context, *MarketKeySendReq) (*MarketKeySendRes, error)
MarketKeyDiscard(context.Context, *MarketKeyDiscardReq) (*MarketKeyDiscardRes, error)
MarketQuery(context.Context, *MarketQueryReq) (*MarketQueryRes, error)
RsCouponGrant(context.Context, *RsCouponGrantReq) (*RsCouponGrantRes, error)
mustEmbedUnimplementedTransferServer()
}
// UnimplementedTransferServer must be embedded to have forward compatible implementations.
type UnimplementedTransferServer struct {
}
func (UnimplementedTransferServer) ZltxOrderRecharge(context.Context, *ZltxOrderRechargeReq) (*DefaultRes, error) {
return nil, status.Errorf(codes.Unimplemented, "method ZltxOrderRecharge not implemented")
}
func (UnimplementedTransferServer) ZltxOrderRechargeQuery(context.Context, *ZltxOrderRechargeQueryReq) (*ZltxOrderRechargeQueryRes, error) {
return nil, status.Errorf(codes.Unimplemented, "method ZltxOrderRechargeQuery not implemented")
}
func (UnimplementedTransferServer) ZltxOrderCard(context.Context, *ZltxOrderCardReq) (*DefaultRes, error) {
return nil, status.Errorf(codes.Unimplemented, "method ZltxOrderCard not implemented")
}
func (UnimplementedTransferServer) ZltxOrderCardQuery(context.Context, *ZltxOrderCardQueryReq) (*ZltxOrderCardQueryRes, error) {
return nil, status.Errorf(codes.Unimplemented, "method ZltxOrderCardQuery not implemented")
}
func (UnimplementedTransferServer) ZltxOrderSms(context.Context, *ZltxOrderSmsReq) (*ZltxOrderSmsRes, error) {
return nil, status.Errorf(codes.Unimplemented, "method ZltxOrderSms not implemented")
}
func (UnimplementedTransferServer) ZltxRechargeInfo(context.Context, *DefaultReq) (*ZltxRechargeInfoRes, error) {
return nil, status.Errorf(codes.Unimplemented, "method ZltxRechargeInfo not implemented")
}
func (UnimplementedTransferServer) ZltxRechargeProduct(context.Context, *DefaultReq) (*ZltxRechargeProductRes, error) {
return nil, status.Errorf(codes.Unimplemented, "method ZltxRechargeProduct not implemented")
}
func (UnimplementedTransferServer) ZltxRsMiXue(context.Context, *RsCouponGrantReq) (*RsCouponGrantRes, error) {
return nil, status.Errorf(codes.Unimplemented, "method ZltxRsMiXue not implemented")
}
func (UnimplementedTransferServer) MarketKeySend(context.Context, *MarketKeySendReq) (*MarketKeySendRes, error) {
return nil, status.Errorf(codes.Unimplemented, "method MarketKeySend not implemented")
}
func (UnimplementedTransferServer) MarketKeyDiscard(context.Context, *MarketKeyDiscardReq) (*MarketKeyDiscardRes, error) {
return nil, status.Errorf(codes.Unimplemented, "method MarketKeyDiscard not implemented")
}
func (UnimplementedTransferServer) MarketQuery(context.Context, *MarketQueryReq) (*MarketQueryRes, error) {
return nil, status.Errorf(codes.Unimplemented, "method MarketQuery not implemented")
}
func (UnimplementedTransferServer) RsCouponGrant(context.Context, *RsCouponGrantReq) (*RsCouponGrantRes, error) {
return nil, status.Errorf(codes.Unimplemented, "method RsCouponGrant not implemented")
}
func (UnimplementedTransferServer) mustEmbedUnimplementedTransferServer() {}
// UnsafeTransferServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to TransferServer will
// result in compilation errors.
type UnsafeTransferServer interface {
mustEmbedUnimplementedTransferServer()
}
func RegisterTransferServer(s grpc.ServiceRegistrar, srv TransferServer) {
s.RegisterService(&Transfer_ServiceDesc, srv)
}
func _Transfer_ZltxOrderRecharge_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ZltxOrderRechargeReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(TransferServer).ZltxOrderRecharge(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: Transfer_ZltxOrderRecharge_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(TransferServer).ZltxOrderRecharge(ctx, req.(*ZltxOrderRechargeReq))
}
return interceptor(ctx, in, info, handler)
}
func _Transfer_ZltxOrderRechargeQuery_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ZltxOrderRechargeQueryReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(TransferServer).ZltxOrderRechargeQuery(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: Transfer_ZltxOrderRechargeQuery_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(TransferServer).ZltxOrderRechargeQuery(ctx, req.(*ZltxOrderRechargeQueryReq))
}
return interceptor(ctx, in, info, handler)
}
func _Transfer_ZltxOrderCard_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ZltxOrderCardReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(TransferServer).ZltxOrderCard(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: Transfer_ZltxOrderCard_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(TransferServer).ZltxOrderCard(ctx, req.(*ZltxOrderCardReq))
}
return interceptor(ctx, in, info, handler)
}
func _Transfer_ZltxOrderCardQuery_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ZltxOrderCardQueryReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(TransferServer).ZltxOrderCardQuery(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: Transfer_ZltxOrderCardQuery_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(TransferServer).ZltxOrderCardQuery(ctx, req.(*ZltxOrderCardQueryReq))
}
return interceptor(ctx, in, info, handler)
}
func _Transfer_ZltxOrderSms_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ZltxOrderSmsReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(TransferServer).ZltxOrderSms(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: Transfer_ZltxOrderSms_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(TransferServer).ZltxOrderSms(ctx, req.(*ZltxOrderSmsReq))
}
return interceptor(ctx, in, info, handler)
}
func _Transfer_ZltxRechargeInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(DefaultReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(TransferServer).ZltxRechargeInfo(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: Transfer_ZltxRechargeInfo_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(TransferServer).ZltxRechargeInfo(ctx, req.(*DefaultReq))
}
return interceptor(ctx, in, info, handler)
}
func _Transfer_ZltxRechargeProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(DefaultReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(TransferServer).ZltxRechargeProduct(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: Transfer_ZltxRechargeProduct_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(TransferServer).ZltxRechargeProduct(ctx, req.(*DefaultReq))
}
return interceptor(ctx, in, info, handler)
}
func _Transfer_ZltxRsMiXue_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(RsCouponGrantReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(TransferServer).ZltxRsMiXue(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: Transfer_ZltxRsMiXue_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(TransferServer).ZltxRsMiXue(ctx, req.(*RsCouponGrantReq))
}
return interceptor(ctx, in, info, handler)
}
func _Transfer_MarketKeySend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(MarketKeySendReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(TransferServer).MarketKeySend(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: Transfer_MarketKeySend_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(TransferServer).MarketKeySend(ctx, req.(*MarketKeySendReq))
}
return interceptor(ctx, in, info, handler)
}
func _Transfer_MarketKeyDiscard_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(MarketKeyDiscardReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(TransferServer).MarketKeyDiscard(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: Transfer_MarketKeyDiscard_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(TransferServer).MarketKeyDiscard(ctx, req.(*MarketKeyDiscardReq))
}
return interceptor(ctx, in, info, handler)
}
func _Transfer_MarketQuery_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(MarketQueryReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(TransferServer).MarketQuery(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: Transfer_MarketQuery_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(TransferServer).MarketQuery(ctx, req.(*MarketQueryReq))
}
return interceptor(ctx, in, info, handler)
}
func _Transfer_RsCouponGrant_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(RsCouponGrantReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(TransferServer).RsCouponGrant(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: Transfer_RsCouponGrant_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(TransferServer).RsCouponGrant(ctx, req.(*RsCouponGrantReq))
}
return interceptor(ctx, in, info, handler)
}
// Transfer_ServiceDesc is the grpc.ServiceDesc for Transfer service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var Transfer_ServiceDesc = grpc.ServiceDesc{
ServiceName: "transfer.Transfer",
HandlerType: (*TransferServer)(nil),
Methods: []grpc.MethodDesc{
{
MethodName: "zltxOrderRecharge",
Handler: _Transfer_ZltxOrderRecharge_Handler,
},
{
MethodName: "zltxOrderRechargeQuery",
Handler: _Transfer_ZltxOrderRechargeQuery_Handler,
},
{
MethodName: "zltxOrderCard",
Handler: _Transfer_ZltxOrderCard_Handler,
},
{
MethodName: "zltxOrderCardQuery",
Handler: _Transfer_ZltxOrderCardQuery_Handler,
},
{
MethodName: "zltxOrderSms",
Handler: _Transfer_ZltxOrderSms_Handler,
},
{
MethodName: "zltxRechargeInfo",
Handler: _Transfer_ZltxRechargeInfo_Handler,
},
{
MethodName: "zltxRechargeProduct",
Handler: _Transfer_ZltxRechargeProduct_Handler,
},
{
MethodName: "zltxRsMiXue",
Handler: _Transfer_ZltxRsMiXue_Handler,
},
{
MethodName: "marketKeySend",
Handler: _Transfer_MarketKeySend_Handler,
},
{
MethodName: "marketKeyDiscard",
Handler: _Transfer_MarketKeyDiscard_Handler,
},
{
MethodName: "marketQuery",
Handler: _Transfer_MarketQuery_Handler,
},
{
MethodName: "rsCouponGrant",
Handler: _Transfer_RsCouponGrant_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "transfer.proto",
}

130
rpc/transferClient/transfer.go Executable file
View File

@ -0,0 +1,130 @@
// Code generated by goctl. DO NOT EDIT.
// Source: transfer.proto
package transferClient
import (
"context"
"rs/rpc/transfer"
"github.com/zeromicro/go-zero/zrpc"
"google.golang.org/grpc"
)
type (
DefaultReq = transfer.DefaultReq
DefaultRes = transfer.DefaultRes
GetResellerByAppIdReq = transfer.GetResellerByAppIdReq
GetResellerByAppIdRes = transfer.GetResellerByAppIdRes
MarketKeyDiscardReq = transfer.MarketKeyDiscardReq
MarketKeyDiscardRes = transfer.MarketKeyDiscardRes
MarketKeyDiscardRes_Data = transfer.MarketKeyDiscardRes_Data
MarketKeySendReq = transfer.MarketKeySendReq
MarketKeySendRes = transfer.MarketKeySendRes
MarketKeySendRes_Data = transfer.MarketKeySendRes_Data
MarketQueryReq = transfer.MarketQueryReq
MarketQueryRes = transfer.MarketQueryRes
MarketQueryRes_Data = transfer.MarketQueryRes_Data
RsCouponGrantReq = transfer.RsCouponGrantReq
RsCouponGrantReq_Data = transfer.RsCouponGrantReq_Data
RsCouponGrantRes = transfer.RsCouponGrantRes
RsCouponGrantRes_Data = transfer.RsCouponGrantRes_Data
RsCouponGrantRes_Data_VoucherInfo = transfer.RsCouponGrantRes_Data_VoucherInfo
ZltxOrderCardQueryReq = transfer.ZltxOrderCardQueryReq
ZltxOrderCardQueryRes = transfer.ZltxOrderCardQueryRes
ZltxOrderCardReq = transfer.ZltxOrderCardReq
ZltxOrderRechargeQueryReq = transfer.ZltxOrderRechargeQueryReq
ZltxOrderRechargeQueryRes = transfer.ZltxOrderRechargeQueryRes
ZltxOrderRechargeReq = transfer.ZltxOrderRechargeReq
ZltxOrderSmsReq = transfer.ZltxOrderSmsReq
ZltxOrderSmsRes = transfer.ZltxOrderSmsRes
ZltxRechargeInfoRes = transfer.ZltxRechargeInfoRes
ZltxRechargeProductRes = transfer.ZltxRechargeProductRes
ZltxRechargeProductRes_Product = transfer.ZltxRechargeProductRes_Product
Transfer interface {
ZltxOrderRecharge(ctx context.Context, in *ZltxOrderRechargeReq, opts ...grpc.CallOption) (*DefaultRes, error)
ZltxOrderRechargeQuery(ctx context.Context, in *ZltxOrderRechargeQueryReq, opts ...grpc.CallOption) (*ZltxOrderRechargeQueryRes, error)
ZltxOrderCard(ctx context.Context, in *ZltxOrderCardReq, opts ...grpc.CallOption) (*DefaultRes, error)
ZltxOrderCardQuery(ctx context.Context, in *ZltxOrderCardQueryReq, opts ...grpc.CallOption) (*ZltxOrderCardQueryRes, error)
ZltxOrderSms(ctx context.Context, in *ZltxOrderSmsReq, opts ...grpc.CallOption) (*ZltxOrderSmsRes, error)
ZltxRechargeInfo(ctx context.Context, in *DefaultReq, opts ...grpc.CallOption) (*ZltxRechargeInfoRes, error)
ZltxRechargeProduct(ctx context.Context, in *DefaultReq, opts ...grpc.CallOption) (*ZltxRechargeProductRes, error)
ZltxRsMiXue(ctx context.Context, in *RsCouponGrantReq, opts ...grpc.CallOption) (*RsCouponGrantRes, error)
MarketKeySend(ctx context.Context, in *MarketKeySendReq, opts ...grpc.CallOption) (*MarketKeySendRes, error)
MarketKeyDiscard(ctx context.Context, in *MarketKeyDiscardReq, opts ...grpc.CallOption) (*MarketKeyDiscardRes, error)
MarketQuery(ctx context.Context, in *MarketQueryReq, opts ...grpc.CallOption) (*MarketQueryRes, error)
RsCouponGrant(ctx context.Context, in *RsCouponGrantReq, opts ...grpc.CallOption) (*RsCouponGrantRes, error)
}
defaultTransfer struct {
cli zrpc.Client
}
)
func NewTransfer(cli zrpc.Client) Transfer {
return &defaultTransfer{
cli: cli,
}
}
func (m *defaultTransfer) ZltxOrderRecharge(ctx context.Context, in *ZltxOrderRechargeReq, opts ...grpc.CallOption) (*DefaultRes, error) {
client := transfer.NewTransferClient(m.cli.Conn())
return client.ZltxOrderRecharge(ctx, in, opts...)
}
func (m *defaultTransfer) ZltxOrderRechargeQuery(ctx context.Context, in *ZltxOrderRechargeQueryReq, opts ...grpc.CallOption) (*ZltxOrderRechargeQueryRes, error) {
client := transfer.NewTransferClient(m.cli.Conn())
return client.ZltxOrderRechargeQuery(ctx, in, opts...)
}
func (m *defaultTransfer) ZltxOrderCard(ctx context.Context, in *ZltxOrderCardReq, opts ...grpc.CallOption) (*DefaultRes, error) {
client := transfer.NewTransferClient(m.cli.Conn())
return client.ZltxOrderCard(ctx, in, opts...)
}
func (m *defaultTransfer) ZltxOrderCardQuery(ctx context.Context, in *ZltxOrderCardQueryReq, opts ...grpc.CallOption) (*ZltxOrderCardQueryRes, error) {
client := transfer.NewTransferClient(m.cli.Conn())
return client.ZltxOrderCardQuery(ctx, in, opts...)
}
func (m *defaultTransfer) ZltxOrderSms(ctx context.Context, in *ZltxOrderSmsReq, opts ...grpc.CallOption) (*ZltxOrderSmsRes, error) {
client := transfer.NewTransferClient(m.cli.Conn())
return client.ZltxOrderSms(ctx, in, opts...)
}
func (m *defaultTransfer) ZltxRechargeInfo(ctx context.Context, in *DefaultReq, opts ...grpc.CallOption) (*ZltxRechargeInfoRes, error) {
client := transfer.NewTransferClient(m.cli.Conn())
return client.ZltxRechargeInfo(ctx, in, opts...)
}
func (m *defaultTransfer) ZltxRechargeProduct(ctx context.Context, in *DefaultReq, opts ...grpc.CallOption) (*ZltxRechargeProductRes, error) {
client := transfer.NewTransferClient(m.cli.Conn())
return client.ZltxRechargeProduct(ctx, in, opts...)
}
func (m *defaultTransfer) ZltxRsMiXue(ctx context.Context, in *RsCouponGrantReq, opts ...grpc.CallOption) (*RsCouponGrantRes, error) {
client := transfer.NewTransferClient(m.cli.Conn())
return client.ZltxRsMiXue(ctx, in, opts...)
}
func (m *defaultTransfer) MarketKeySend(ctx context.Context, in *MarketKeySendReq, opts ...grpc.CallOption) (*MarketKeySendRes, error) {
client := transfer.NewTransferClient(m.cli.Conn())
return client.MarketKeySend(ctx, in, opts...)
}
func (m *defaultTransfer) MarketKeyDiscard(ctx context.Context, in *MarketKeyDiscardReq, opts ...grpc.CallOption) (*MarketKeyDiscardRes, error) {
client := transfer.NewTransferClient(m.cli.Conn())
return client.MarketKeyDiscard(ctx, in, opts...)
}
func (m *defaultTransfer) MarketQuery(ctx context.Context, in *MarketQueryReq, opts ...grpc.CallOption) (*MarketQueryRes, error) {
client := transfer.NewTransferClient(m.cli.Conn())
return client.MarketQuery(ctx, in, opts...)
}
func (m *defaultTransfer) RsCouponGrant(ctx context.Context, in *RsCouponGrantReq, opts ...grpc.CallOption) (*RsCouponGrantRes, error) {
client := transfer.NewTransferClient(m.cli.Conn())
return client.RsCouponGrant(ctx, in, opts...)
}

14
sh/create.sh Normal file
View File

@ -0,0 +1,14 @@
#!/bin/bash
IMAGE="transfer_rs:v1"
CONTAINER="transfer_rs"
API_PORT="10101"
V_REFLECT=""
docker build -t "${IMAGE}" . --no-cache
docker stop "${CONTAINER}"
docker rm "${CONTAINER}"
docker run -it -p -p "${API_PORT}:${API_PORT}" --name "CONTAINER" "${IMAGE}"

9
sh/startup.sh Normal file
View File

@ -0,0 +1,9 @@
#!/bin/bash
# supervisord
supervisord -c /etc/supervisord.conf

29
sh/supervisord.conf Normal file
View File

@ -0,0 +1,29 @@
; supervisor config file
[unix_http_server]
file=/var/run/supervisor.sock ; (the path to the socket file)
chmod=0700 ; sockef file mode (default 0700)
[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor ; ('AUTO' child log dir, default $TEMP)
; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket
; The [include] section can just contain the "files" setting. This
; setting can list multiple files (separated by whitespace or
; newlines). It can also contain wildcards. The filenames are
; interpreted as relative to this file. Included files *cannot*
; include files themselves.
[include]
files = /msgc/sh/supervisord_include/*.conf

View File

@ -0,0 +1,19 @@
[program:api]
directory=/src/cmd/api
# 执行的命令
command=/src/cmd/api/transfer
#在 supervisord 启动的时候也自动启动
autorstart=false
#程序异常退出后自动重启
autorestart=true
#启动 5 秒后没有异常退出,就当作已经正常启动了
startsecs=5
#启动失败自动重试次数,默认是 3
startretries=3
#把 stderr 重定向到 stdout默认 false
redirect_stderr=false
#stdout 日志文件大小,默认 50MB
stdout_logfile_maxbytes = 20MB
#stdout 日志文件备份数
stdout_logfile_backups = 20