diff --git a/goctl_template/api/main.tpl b/goctl_template/api/main.tpl index 057d55c7..4183b6fb 100644 --- a/goctl_template/api/main.tpl +++ b/goctl_template/api/main.tpl @@ -17,9 +17,8 @@ var configFile = flag.String("f", "etc/{{.serviceName}}.yaml", "the config file" func main() { flag.Parse() - cfgContent := fsconfig.StartNacosConfig(configFile,nil) var c config.Config - conf.LoadConfigFromYamlBytes([]byte(cfgContent),&c) + fsconfig.StartNacosConfig(*configFile, &c, nil) c.Timeout = int64(time.Second * 15) server := rest.MustNewServer(c.RestConf, rest.WithCustomCors(auth.FsCors, func(w http.ResponseWriter) { diff --git a/goctl_template/rpc/main.tpl b/goctl_template/rpc/main.tpl index 13fbae92..5b5df9ab 100644 --- a/goctl_template/rpc/main.tpl +++ b/goctl_template/rpc/main.tpl @@ -18,9 +18,8 @@ var configFile = flag.String("f", "etc/{{.serviceName}}.yaml", "the config file" func main() { flag.Parse() - cfgContent := fsconfig.StartNacosConfig(configFile,nil) var c config.Config - conf.LoadConfigFromYamlBytes([]byte(cfgContent),&c) + fsconfig.StartNacosConfig(*configFile, &c, nil) c.Timeout = int64(time.Second * 15) ctx := svc.NewServiceContext(c) diff --git a/goctl_template_backend/api/config.tpl b/goctl_template_backend/api/config.tpl deleted file mode 100644 index dff7003f..00000000 --- a/goctl_template_backend/api/config.tpl +++ /dev/null @@ -1,11 +0,0 @@ -package config - -import {{.authImport}} - -type Config struct { - rest.RestConf - SourceMysql string - Auth types.Auth - {{.auth}} - {{.jwtTrans}} -} diff --git a/goctl_template_backend/api/context.tpl b/goctl_template_backend/api/context.tpl deleted file mode 100644 index 543ba1ae..00000000 --- a/goctl_template_backend/api/context.tpl +++ /dev/null @@ -1,59 +0,0 @@ -package svc - -import ( - {{.configImport}} - "errors" - "fmt" - "net/http" - - "fusenapi/initalize" - "fusenapi/model/gmodel" - - "gorm.io/gorm" - "github.com/golang-jwt/jwt" -) - -type ServiceContext struct { - Config {{.config}} - {{.middleware}} - MysqlConn *gorm.DB - AllModels *gmodel.AllModelsGen -} - -func NewServiceContext(c {{.config}}) *ServiceContext { - - return &ServiceContext{ - Config: c, - MysqlConn: initalize.InitMysql(c.SourceMysql), - AllModels: gmodel.NewAllModels(initalize.InitMysql(c.SourceMysql)), - {{.middlewareAssignment}} - } -} - - -func (svcCtx *ServiceContext) ParseJwtToken(r *http.Request) (jwt.MapClaims, error) { - AuthKey := r.Header.Get("Authorization") - - if len(AuthKey) <= 50 { - return nil, errors.New(fmt.Sprint("Error parsing token, len:", len(AuthKey))) - } - - token, err := jwt.Parse(AuthKey, func(token *jwt.Token) (interface{}, error) { - // 检查签名方法是否为 HS256 - if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok { - return nil, fmt.Errorf("unexpected signing method: %v", token.Header["alg"]) - } - // 返回用于验证签名的密钥 - return []byte(svcCtx.Config.Auth.AccessSecret), nil - }) - if err != nil { - return nil, errors.New(fmt.Sprint("Error parsing token:", err)) - } - - // 验证成功返回 - if claims, ok := token.Claims.(jwt.MapClaims); ok && token.Valid { - return claims, nil - } - - return nil, errors.New(fmt.Sprint("Invalid token", err)) -} \ No newline at end of file diff --git a/goctl_template_backend/api/etc.tpl b/goctl_template_backend/api/etc.tpl deleted file mode 100644 index ae13e77f..00000000 --- a/goctl_template_backend/api/etc.tpl +++ /dev/null @@ -1,8 +0,0 @@ -Name: {{.serviceName}} -Host: {{.host}} -Port: {{.port}} -SourceMysql: fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen -Auth: - AccessSecret: fusen2023 - AccessExpire: 2592000 - RefreshAfter: 1592000 \ No newline at end of file diff --git a/goctl_template_backend/api/handler.tpl b/goctl_template_backend/api/handler.tpl deleted file mode 100644 index f836b128..00000000 --- a/goctl_template_backend/api/handler.tpl +++ /dev/null @@ -1,32 +0,0 @@ -package {{.PkgName}} - -import ( - "net/http" - "reflect" - - "fusenapi/utils/basic" - - {{.ImportPackages}} -) - -func {{.HandlerName}}(svcCtx *svc.ServiceContext) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - {{if .HasRequest}}var req types.{{.RequestType}} - userinfo, err := basic.RequestParseBackend(w, r, svcCtx, &req) - if err != nil { - return - } - - // 创建一个业务逻辑层实例 - {{end}}l := {{.LogicName}}.New{{.LogicType}}(r.Context(), svcCtx) - - rl := reflect.ValueOf(l) - basic.BeforeLogic(w, r, rl) - - {{if .HasResp}}resp{{end}} := l.{{.Call}}({{if .HasRequest}}&req, {{end}}userinfo) - - if !basic.AfterLogic(w, r, rl, resp) { - basic.NormalAfterLogic(w, r, resp) - } - } -} diff --git a/goctl_template_backend/api/logic.tpl b/goctl_template_backend/api/logic.tpl deleted file mode 100644 index d32190f1..00000000 --- a/goctl_template_backend/api/logic.tpl +++ /dev/null @@ -1,39 +0,0 @@ -package {{.pkgName}} - -import ( - "fusenapi/utils/auth" - "fusenapi/utils/basic" - - {{.imports}} -) - -type {{.logic}} struct { - logx.Logger - ctx context.Context - svcCtx *svc.ServiceContext -} - -func New{{.logic}}(ctx context.Context, svcCtx *svc.ServiceContext) *{{.logic}} { - return &{{.logic}}{ - Logger: logx.WithContext(ctx), - ctx: ctx, - svcCtx: svcCtx, - } -} - -// 处理进入前逻辑w,r -// func (l *{{.logic}}) BeforeLogic(w http.ResponseWriter, r *http.Request) { -// } - -// 处理逻辑后 w,r 如:重定向, resp 必须重新处理 -// func (l *{{.logic}}) AfterLogic(w http.ResponseWriter, r *http.Request, resp *basic.Response) { -// // httpx.OkJsonCtx(r.Context(), w, resp) -// } - - -func (l *{{.logic}}) {{.function}}({{.request}}, userinfo *auth.UserInfo) (resp *basic.Response) { - // 返回值必须调用Set重新返回, resp可以空指针调用 resp.SetStatus(basic.CodeOK, data) - // userinfo 传入值时, 一定不为null - - {{.returnString}} resp.SetStatus(basic.CodeOK) -} diff --git a/goctl_template_backend/api/main.tpl b/goctl_template_backend/api/main.tpl deleted file mode 100644 index 6cc7a21c..00000000 --- a/goctl_template_backend/api/main.tpl +++ /dev/null @@ -1,56 +0,0 @@ -package main - -import ( - "flag" - "fmt" - "net/http" - "time" - - "fusenapi/utils/auth" - "fusenapi/utils/fsconfig" - - {{.importPackages}} -) - -var configFile = flag.String("f", "etc/{{.serviceName}}.yaml", "the config file") - -func main() { - flag.Parse() - - cfgContent := fsconfig.StartNacosConfig(configFile,nil) - var c config.Config - conf.LoadConfigFromYamlBytes([]byte(cfgContent),&c) - - c.Timeout = int64(time.Second * 15) - - server := rest.MustNewServer(c.RestConf, rest.WithCustomCors(auth.FsCors, func(w http.ResponseWriter) { - })) - - 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() -} - - - -// var testConfigFile = flag.String("f", "../etc/{{.serviceName}}.yaml", "the config file") -// var cnf config.Config - -// func GetTestServer() *rest.Server { -// flag.Parse() - -// conf.MustLoad(*testConfigFile, &cnf) - -// server := rest.MustNewServer(cnf.RestConf) -// defer server.Stop() - -// ctx := svc.NewServiceContext(cnf) -// handler.RegisterHandlers(server, ctx) - -// fmt.Printf("Starting server at %s:%d...\n", cnf.Host, cnf.Port) -// return server -// } \ No newline at end of file diff --git a/goctl_template_backend/api/middleware.tpl b/goctl_template_backend/api/middleware.tpl deleted file mode 100644 index 3a9f8e91..00000000 --- a/goctl_template_backend/api/middleware.tpl +++ /dev/null @@ -1,19 +0,0 @@ -package middleware - -import "net/http" - -type {{.name}} struct { -} - -func New{{.name}}() *{{.name}} { - return &{{.name}}{} -} - -func (m *{{.name}})Handle(next http.HandlerFunc) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - // TODO generate middleware implement function, delete after code implementation - - // Passthrough to next handler if need - next(w, r) - } -} diff --git a/goctl_template_backend/api/route-addition.tpl b/goctl_template_backend/api/route-addition.tpl deleted file mode 100644 index bb8a5dfe..00000000 --- a/goctl_template_backend/api/route-addition.tpl +++ /dev/null @@ -1,4 +0,0 @@ - - server.AddRoutes( - {{.routes}} {{.jwt}}{{.signature}} {{.prefix}} {{.timeout}} {{.maxBytes}} - ) diff --git a/goctl_template_backend/api/routes.tpl b/goctl_template_backend/api/routes.tpl deleted file mode 100644 index f13fb111..00000000 --- a/goctl_template_backend/api/routes.tpl +++ /dev/null @@ -1,13 +0,0 @@ -// Code generated by goctl. DO NOT EDIT. -package handler - -import ( - "net/http"{{if .hasTimeout}} - "time"{{end}} - - {{.importPackages}} -) - -func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { - {{.routesAdditions}} -} diff --git a/goctl_template_backend/api/template.tpl b/goctl_template_backend/api/template.tpl deleted file mode 100644 index 2176441c..00000000 --- a/goctl_template_backend/api/template.tpl +++ /dev/null @@ -1,24 +0,0 @@ -syntax = "v1" - -info ( - title: // TODO: add title - desc: // TODO: add description - author: "{{.gitUser}}" - email: "{{.gitEmail}}" -) - -type request { - // TODO: add members here and delete this comment -} - -type response { - // TODO: add members here and delete this comment -} - -service {{.serviceName}} { - @handler GetUser // TODO: set handler name and delete this comment - get /users/id/:userId(request) returns(response) - - @handler CreateUser // TODO: set handler name and delete this comment - post /users/create(request) -} diff --git a/goctl_template_backend/api/types.tpl b/goctl_template_backend/api/types.tpl deleted file mode 100644 index b1734d42..00000000 --- a/goctl_template_backend/api/types.tpl +++ /dev/null @@ -1,50 +0,0 @@ -// Code generated by goctl. DO NOT EDIT. -package types -import ( - {{if .containsTime}}"time"{{end}} - - "fusenapi/utils/basic" -) -{{.types}} - - -// Set 设置Response的Code和Message值 -func (resp *Response) Set(Code int, Message string) *Response { - return &Response{ - Code: Code, - Message: Message, - } -} - -// Set 设置整个Response -func (resp *Response) SetWithData(Code int, Message string, Data interface{}) *Response { - return &Response{ - Code: Code, - Message: Message, - Data: Data, - } -} - -// SetStatus 设置默认StatusResponse(内部自定义) 默认msg, 可以带data, data只使用一个参数 -func (resp *Response) SetStatus(sr *basic.StatusResponse, data ...interface{}) *Response { - newResp := &Response{ - Code: sr.Code, - } - if len(data) == 1 { - newResp.Data = data[0] - } - return newResp -} - -// SetStatusWithMessage 设置默认StatusResponse(内部自定义) 非默认msg, 可以带data, data只使用一个参数 -func (resp *Response) SetStatusWithMessage(sr *basic.StatusResponse, msg string, data ...interface{}) *Response { - newResp := &Response{ - Code: sr.Code, - Message: msg, - } - if len(data) == 1 { - newResp.Data = data[0] - } - return newResp -} - \ No newline at end of file diff --git a/goctl_template_backend/docker/docker.tpl b/goctl_template_backend/docker/docker.tpl deleted file mode 100644 index d1b5ff44..00000000 --- a/goctl_template_backend/docker/docker.tpl +++ /dev/null @@ -1,33 +0,0 @@ -FROM golang:{{.Version}}alpine AS builder - -LABEL stage=gobuilder - -ENV CGO_ENABLED 0 -{{if .Chinese}}ENV GOPROXY https://goproxy.cn,direct -RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories -{{end}}{{if .HasTimezone}} -RUN apk update --no-cache && apk add --no-cache tzdata -{{end}} -WORKDIR /build - -ADD go.mod . -ADD go.sum . -RUN go mod download -COPY . . -{{if .Argument}}COPY {{.GoRelPath}}/etc /app/etc -{{end}}RUN go build -ldflags="-s -w" -o /app/{{.ExeFile}} {{.GoMainFrom}} - - -FROM {{.BaseImage}} - -COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt -{{if .HasTimezone}}COPY --from=builder /usr/share/zoneinfo/{{.Timezone}} /usr/share/zoneinfo/{{.Timezone}} -ENV TZ {{.Timezone}} -{{end}} -WORKDIR /app -COPY --from=builder /app/{{.ExeFile}} /app/{{.ExeFile}}{{if .Argument}} -COPY --from=builder /app/etc /app/etc{{end}} -{{if .HasPort}} -EXPOSE {{.Port}} -{{end}} -CMD ["./{{.ExeFile}}"{{.Argument}}] diff --git a/goctl_template_backend/gateway/etc.tpl b/goctl_template_backend/gateway/etc.tpl deleted file mode 100644 index 0a70f1ac..00000000 --- a/goctl_template_backend/gateway/etc.tpl +++ /dev/null @@ -1,18 +0,0 @@ -Name: gateway-example # gateway name -Host: localhost # gateway host -Port: 8888 # gateway port -Upstreams: # upstreams - - Grpc: # grpc upstream - Target: 0.0.0.0:8080 # grpc target,the direct grpc server address,for only one node -# Endpoints: [0.0.0.0:8080,192.168.120.1:8080] # grpc endpoints, the grpc server address list, for multiple nodes -# Etcd: # etcd config, if you want to use etcd to discover the grpc server address -# Hosts: [127.0.0.1:2378,127.0.0.1:2379] # etcd hosts -# Key: greet.grpc # the discovery key - # protoset mode - ProtoSets: - - hello.pb - # Mappings can also be written in proto options -# Mappings: # routes mapping -# - Method: get -# Path: /ping -# RpcPath: hello.Hello/Ping diff --git a/goctl_template_backend/gateway/main.tpl b/goctl_template_backend/gateway/main.tpl deleted file mode 100644 index 33c303b8..00000000 --- a/goctl_template_backend/gateway/main.tpl +++ /dev/null @@ -1,21 +0,0 @@ -package main - -import ( - "flag" - - "github.com/zeromicro/go-zero/core/conf" - "github.com/zeromicro/go-zero/gateway" -) - -var configFile = flag.String("f", "etc/gateway.yaml", "config file") - -func main() { - flag.Parse() - - var c gateway.GatewayConf - - c.Timeout = int64(time.Second * 15) - gw := gateway.MustNewServer(c) - defer gw.Stop() - gw.Start() -} diff --git a/goctl_template_backend/kube/deployment.tpl b/goctl_template_backend/kube/deployment.tpl deleted file mode 100644 index 14145df2..00000000 --- a/goctl_template_backend/kube/deployment.tpl +++ /dev/null @@ -1,117 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{.Name}} - namespace: {{.Namespace}} - labels: - app: {{.Name}} -spec: - replicas: {{.Replicas}} - revisionHistoryLimit: {{.Revisions}} - selector: - matchLabels: - app: {{.Name}} - template: - metadata: - labels: - app: {{.Name}} - spec:{{if .ServiceAccount}} - serviceAccountName: {{.ServiceAccount}}{{end}} - containers: - - name: {{.Name}} - image: {{.Image}} - {{if .ImagePullPolicy}}imagePullPolicy: {{.ImagePullPolicy}} - {{end}}ports: - - containerPort: {{.Port}} - readinessProbe: - tcpSocket: - port: {{.Port}} - initialDelaySeconds: 5 - periodSeconds: 10 - livenessProbe: - tcpSocket: - port: {{.Port}} - initialDelaySeconds: 15 - periodSeconds: 20 - resources: - requests: - cpu: {{.RequestCpu}}m - memory: {{.RequestMem}}Mi - limits: - cpu: {{.LimitCpu}}m - memory: {{.LimitMem}}Mi - volumeMounts: - - name: timezone - mountPath: /etc/localtime - {{if .Secret}}imagePullSecrets: - - name: {{.Secret}} - {{end}}volumes: - - name: timezone - hostPath: - path: /usr/share/zoneinfo/Asia/Shanghai - ---- - -apiVersion: v1 -kind: Service -metadata: - name: {{.Name}}-svc - namespace: {{.Namespace}} -spec: - ports: - {{if .UseNodePort}}- nodePort: {{.NodePort}} - port: {{.Port}} - protocol: TCP - targetPort: {{.TargetPort}} - type: NodePort{{else}}- port: {{.Port}} - targetPort: {{.TargetPort}}{{end}} - selector: - app: {{.Name}} - ---- - -apiVersion: autoscaling/v2beta2 -kind: HorizontalPodAutoscaler -metadata: - name: {{.Name}}-hpa-c - namespace: {{.Namespace}} - labels: - app: {{.Name}}-hpa-c -spec: - scaleTargetRef: - apiVersion: apps/v1 - kind: Deployment - name: {{.Name}} - minReplicas: {{.MinReplicas}} - maxReplicas: {{.MaxReplicas}} - metrics: - - type: Resource - resource: - name: cpu - target: - type: Utilization - averageUtilization: 80 - ---- - -apiVersion: autoscaling/v2beta2 -kind: HorizontalPodAutoscaler -metadata: - name: {{.Name}}-hpa-m - namespace: {{.Namespace}} - labels: - app: {{.Name}}-hpa-m -spec: - scaleTargetRef: - apiVersion: apps/v1 - kind: Deployment - name: {{.Name}} - minReplicas: {{.MinReplicas}} - maxReplicas: {{.MaxReplicas}} - metrics: - - type: Resource - resource: - name: memory - target: - type: Utilization - averageUtilization: 80 diff --git a/goctl_template_backend/kube/job.tpl b/goctl_template_backend/kube/job.tpl deleted file mode 100644 index 0da72ede..00000000 --- a/goctl_template_backend/kube/job.tpl +++ /dev/null @@ -1,37 +0,0 @@ -apiVersion: batch/v1 -kind: CronJob -metadata: - name: {{.Name}} - namespace: {{.Namespace}} -spec: - successfulJobsHistoryLimit: {{.SuccessfulJobsHistoryLimit}} - schedule: "{{.Schedule}}" - jobTemplate: - spec: - template: - spec:{{if .ServiceAccount}} - serviceAccountName: {{.ServiceAccount}}{{end}} - {{end}}containers: - - name: {{.Name}} - image: # todo image url - resources: - requests: - cpu: {{.RequestCpu}}m - memory: {{.RequestMem}}Mi - limits: - cpu: {{.LimitCpu}}m - memory: {{.LimitMem}}Mi - command: - - ./{{.ServiceName}} - - -f - - ./{{.Name}}.yaml - volumeMounts: - - name: timezone - mountPath: /etc/localtime - imagePullSecrets: - - name: # registry secret, if no, remove this - restartPolicy: OnFailure - volumes: - - name: timezone - hostPath: - path: /usr/share/zoneinfo/Asia/Shanghai diff --git a/goctl_template_backend/model/delete.tpl b/goctl_template_backend/model/delete.tpl deleted file mode 100644 index fb995c26..00000000 --- a/goctl_template_backend/model/delete.tpl +++ /dev/null @@ -1,14 +0,0 @@ -func (m *default{{.upperStartCamelObject}}Model) Delete(ctx context.Context, {{.lowerStartCamelPrimaryKey}} {{.dataType}}) error { - {{if .withCache}}{{if .containsIndexCache}}data, err:=m.FindOne(ctx, {{.lowerStartCamelPrimaryKey}}) - if err!=nil{ - return err - } - -{{end}} {{.keys}} - _, err {{if .containsIndexCache}}={{else}}:={{end}} m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) { - query := fmt.Sprintf("delete from %s where {{.originalPrimaryKey}} = {{if .postgreSql}}$1{{else}}?{{end}}", m.table) - return conn.ExecCtx(ctx, query, {{.lowerStartCamelPrimaryKey}}) - }, {{.keyValues}}){{else}}query := fmt.Sprintf("delete from %s where {{.originalPrimaryKey}} = {{if .postgreSql}}$1{{else}}?{{end}}", m.table) - _,err:=m.conn.ExecCtx(ctx, query, {{.lowerStartCamelPrimaryKey}}){{end}} - return err -} diff --git a/goctl_template_backend/model/err.tpl b/goctl_template_backend/model/err.tpl deleted file mode 100644 index dc5eac4a..00000000 --- a/goctl_template_backend/model/err.tpl +++ /dev/null @@ -1,5 +0,0 @@ -package {{.pkg}} - -import "github.com/zeromicro/go-zero/core/stores/sqlx" - -var ErrNotFound = sqlx.ErrNotFound diff --git a/goctl_template_backend/model/field.tpl b/goctl_template_backend/model/field.tpl deleted file mode 100644 index 6b4ed387..00000000 --- a/goctl_template_backend/model/field.tpl +++ /dev/null @@ -1 +0,0 @@ -{{.name}} {{.type}} {{.tag}} {{if .hasComment}}// {{.comment}}{{end}} \ No newline at end of file diff --git a/goctl_template_backend/model/find-one-by-field-extra-method.tpl b/goctl_template_backend/model/find-one-by-field-extra-method.tpl deleted file mode 100644 index 7e1df69d..00000000 --- a/goctl_template_backend/model/find-one-by-field-extra-method.tpl +++ /dev/null @@ -1,8 +0,0 @@ -func (m *default{{.upperStartCamelObject}}Model) formatPrimary(primary any) string { - return fmt.Sprintf("%s%v", {{.primaryKeyLeft}}, primary) -} - -func (m *default{{.upperStartCamelObject}}Model) queryPrimary(ctx context.Context, conn sqlx.SqlConn, v, primary any) error { - query := fmt.Sprintf("select %s from %s where {{.originalPrimaryField}} = {{if .postgreSql}}$1{{else}}?{{end}} limit 1", {{.lowerStartCamelObject}}Rows, m.table ) - return conn.QueryRowCtx(ctx, v, query, primary) -} diff --git a/goctl_template_backend/model/find-one-by-field.tpl b/goctl_template_backend/model/find-one-by-field.tpl deleted file mode 100644 index 390fb01c..00000000 --- a/goctl_template_backend/model/find-one-by-field.tpl +++ /dev/null @@ -1,30 +0,0 @@ -func (m *default{{.upperStartCamelObject}}Model) FindOneBy{{.upperField}}(ctx context.Context, {{.in}}) (*{{.upperStartCamelObject}}, error) { - {{if .withCache}}{{.cacheKey}} - var resp {{.upperStartCamelObject}} - err := m.QueryRowIndexCtx(ctx, &resp, {{.cacheKeyVariable}}, m.formatPrimary, func(ctx context.Context, conn sqlx.SqlConn, v any) (i any, e error) { - query := fmt.Sprintf("select %s from %s where {{.originalField}} limit 1", {{.lowerStartCamelObject}}Rows, m.table) - if err := conn.QueryRowCtx(ctx, &resp, query, {{.lowerStartCamelField}}); err != nil { - return nil, err - } - return resp.{{.upperStartCamelPrimaryKey}}, nil - }, m.queryPrimary) - switch err { - case nil: - return &resp, nil - case sqlc.ErrNotFound: - return nil, ErrNotFound - default: - return nil, err - } -}{{else}}var resp {{.upperStartCamelObject}} - query := fmt.Sprintf("select %s from %s where {{.originalField}} limit 1", {{.lowerStartCamelObject}}Rows, m.table ) - err := m.conn.QueryRowCtx(ctx, &resp, query, {{.lowerStartCamelField}}) - switch err { - case nil: - return &resp, nil - case sqlc.ErrNotFound: - return nil, ErrNotFound - default: - return nil, err - } -}{{end}} diff --git a/goctl_template_backend/model/find-one.tpl b/goctl_template_backend/model/find-one.tpl deleted file mode 100644 index a8085580..00000000 --- a/goctl_template_backend/model/find-one.tpl +++ /dev/null @@ -1,26 +0,0 @@ -func (m *default{{.upperStartCamelObject}}Model) FindOne(ctx context.Context, {{.lowerStartCamelPrimaryKey}} {{.dataType}}) (*{{.upperStartCamelObject}}, error) { - {{if .withCache}}{{.cacheKey}} - var resp {{.upperStartCamelObject}} - err := m.QueryRowCtx(ctx, &resp, {{.cacheKeyVariable}}, func(ctx context.Context, conn sqlx.SqlConn, v any) error { - query := fmt.Sprintf("select %s from %s where {{.originalPrimaryKey}} = {{if .postgreSql}}$1{{else}}?{{end}} limit 1", {{.lowerStartCamelObject}}Rows, m.table) - return conn.QueryRowCtx(ctx, v, query, {{.lowerStartCamelPrimaryKey}}) - }) - switch err { - case nil: - return &resp, nil - case sqlc.ErrNotFound: - return nil, ErrNotFound - default: - return nil, err - }{{else}}query := fmt.Sprintf("select %s from %s where {{.originalPrimaryKey}} = {{if .postgreSql}}$1{{else}}?{{end}} limit 1", {{.lowerStartCamelObject}}Rows, m.table) - var resp {{.upperStartCamelObject}} - err := m.conn.QueryRowCtx(ctx, &resp, query, {{.lowerStartCamelPrimaryKey}}) - switch err { - case nil: - return &resp, nil - case sqlc.ErrNotFound: - return nil, ErrNotFound - default: - return nil, err - }{{end}} -} diff --git a/goctl_template_backend/model/import-no-cache.tpl b/goctl_template_backend/model/import-no-cache.tpl deleted file mode 100644 index d99564e1..00000000 --- a/goctl_template_backend/model/import-no-cache.tpl +++ /dev/null @@ -1,13 +0,0 @@ -import ( - "context" - "database/sql" - "fmt" - "strings" - {{if .time}}"time"{{end}} - - {{if .containsPQ}}"github.com/lib/pq"{{end}} - "github.com/zeromicro/go-zero/core/stores/builder" - "github.com/zeromicro/go-zero/core/stores/sqlc" - "github.com/zeromicro/go-zero/core/stores/sqlx" - "github.com/zeromicro/go-zero/core/stringx" -) diff --git a/goctl_template_backend/model/import.tpl b/goctl_template_backend/model/import.tpl deleted file mode 100644 index 7e0c40f5..00000000 --- a/goctl_template_backend/model/import.tpl +++ /dev/null @@ -1,14 +0,0 @@ -import ( - "context" - "database/sql" - "fmt" - "strings" - {{if .time}}"time"{{end}} - - {{if .containsPQ}}"github.com/lib/pq"{{end}} - "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" -) diff --git a/goctl_template_backend/model/insert.tpl b/goctl_template_backend/model/insert.tpl deleted file mode 100644 index 08e02bce..00000000 --- a/goctl_template_backend/model/insert.tpl +++ /dev/null @@ -1,9 +0,0 @@ -func (m *default{{.upperStartCamelObject}}Model) Insert(ctx context.Context, data *{{.upperStartCamelObject}}) (sql.Result,error) { - {{if .withCache}}{{.keys}} - 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 ({{.expression}})", m.table, {{.lowerStartCamelObject}}RowsExpectAutoSet) - return conn.ExecCtx(ctx, query, {{.expressionValues}}) - }, {{.keyValues}}){{else}}query := fmt.Sprintf("insert into %s (%s) values ({{.expression}})", m.table, {{.lowerStartCamelObject}}RowsExpectAutoSet) - ret,err:=m.conn.ExecCtx(ctx, query, {{.expressionValues}}){{end}} - return ret,err -} diff --git a/goctl_template_backend/model/interface-delete.tpl b/goctl_template_backend/model/interface-delete.tpl deleted file mode 100644 index d10978b9..00000000 --- a/goctl_template_backend/model/interface-delete.tpl +++ /dev/null @@ -1 +0,0 @@ -Delete(ctx context.Context, {{.lowerStartCamelPrimaryKey}} {{.dataType}}) error \ No newline at end of file diff --git a/goctl_template_backend/model/interface-find-one-by-field.tpl b/goctl_template_backend/model/interface-find-one-by-field.tpl deleted file mode 100644 index e18ded7a..00000000 --- a/goctl_template_backend/model/interface-find-one-by-field.tpl +++ /dev/null @@ -1 +0,0 @@ -FindOneBy{{.upperField}}(ctx context.Context, {{.in}}) (*{{.upperStartCamelObject}}, error) \ No newline at end of file diff --git a/goctl_template_backend/model/interface-find-one.tpl b/goctl_template_backend/model/interface-find-one.tpl deleted file mode 100644 index a7a54401..00000000 --- a/goctl_template_backend/model/interface-find-one.tpl +++ /dev/null @@ -1 +0,0 @@ -FindOne(ctx context.Context, {{.lowerStartCamelPrimaryKey}} {{.dataType}}) (*{{.upperStartCamelObject}}, error) \ No newline at end of file diff --git a/goctl_template_backend/model/interface-insert.tpl b/goctl_template_backend/model/interface-insert.tpl deleted file mode 100644 index 28724037..00000000 --- a/goctl_template_backend/model/interface-insert.tpl +++ /dev/null @@ -1 +0,0 @@ -Insert(ctx context.Context, data *{{.upperStartCamelObject}}) (sql.Result,error) \ No newline at end of file diff --git a/goctl_template_backend/model/interface-update.tpl b/goctl_template_backend/model/interface-update.tpl deleted file mode 100644 index 1920425d..00000000 --- a/goctl_template_backend/model/interface-update.tpl +++ /dev/null @@ -1 +0,0 @@ -Update(ctx context.Context, {{if .containsIndexCache}}newData{{else}}data{{end}} *{{.upperStartCamelObject}}) error \ No newline at end of file diff --git a/goctl_template_backend/model/model-gen.tpl b/goctl_template_backend/model/model-gen.tpl deleted file mode 100644 index cc3b5954..00000000 --- a/goctl_template_backend/model/model-gen.tpl +++ /dev/null @@ -1,13 +0,0 @@ -// Code generated by goctl. DO NOT EDIT. - -package {{.pkg}} -{{.imports}} -{{.vars}} -{{.types}} -{{.new}} -{{.delete}} -{{.find}} -{{.insert}} -{{.update}} -{{.extraMethod}} -{{.tableName}} diff --git a/goctl_template_backend/model/model-new.tpl b/goctl_template_backend/model/model-new.tpl deleted file mode 100644 index 76598ecd..00000000 --- a/goctl_template_backend/model/model-new.tpl +++ /dev/null @@ -1,6 +0,0 @@ -func new{{.upperStartCamelObject}}Model(conn sqlx.SqlConn{{if .withCache}}, c cache.CacheConf, opts ...cache.Option{{end}}) *default{{.upperStartCamelObject}}Model { - return &default{{.upperStartCamelObject}}Model{ - {{if .withCache}}CachedConn: sqlc.NewConn(conn, c, opts...){{else}}conn:conn{{end}}, - table: {{.table}}, - } -} diff --git a/goctl_template_backend/model/model.tpl b/goctl_template_backend/model/model.tpl deleted file mode 100644 index 3b1b1013..00000000 --- a/goctl_template_backend/model/model.tpl +++ /dev/null @@ -1,30 +0,0 @@ -package {{.pkg}} -{{if .withCache}} -import ( - "github.com/zeromicro/go-zero/core/stores/cache" - "github.com/zeromicro/go-zero/core/stores/sqlx" -) -{{else}} - -import "github.com/zeromicro/go-zero/core/stores/sqlx" -{{end}} -var _ {{.upperStartCamelObject}}Model = (*custom{{.upperStartCamelObject}}Model)(nil) - -type ( - // {{.upperStartCamelObject}}Model is an interface to be customized, add more methods here, - // and implement the added methods in custom{{.upperStartCamelObject}}Model. - {{.upperStartCamelObject}}Model interface { - {{.lowerStartCamelObject}}Model - } - - custom{{.upperStartCamelObject}}Model struct { - *default{{.upperStartCamelObject}}Model - } -) - -// New{{.upperStartCamelObject}}Model returns a model for the database table. -func New{{.upperStartCamelObject}}Model(conn sqlx.SqlConn{{if .withCache}}, c cache.CacheConf, opts ...cache.Option{{end}}) {{.upperStartCamelObject}}Model { - return &custom{{.upperStartCamelObject}}Model{ - default{{.upperStartCamelObject}}Model: new{{.upperStartCamelObject}}Model(conn{{if .withCache}}, c, opts...{{end}}), - } -} diff --git a/goctl_template_backend/model/table-name.tpl b/goctl_template_backend/model/table-name.tpl deleted file mode 100644 index 8b14e33a..00000000 --- a/goctl_template_backend/model/table-name.tpl +++ /dev/null @@ -1,3 +0,0 @@ -func (m *default{{.upperStartCamelObject}}Model) tableName() string { - return m.table -} diff --git a/goctl_template_backend/model/tag.tpl b/goctl_template_backend/model/tag.tpl deleted file mode 100644 index 8e1ddf0d..00000000 --- a/goctl_template_backend/model/tag.tpl +++ /dev/null @@ -1 +0,0 @@ -`db:"{{.field}}"` \ No newline at end of file diff --git a/goctl_template_backend/model/types.tpl b/goctl_template_backend/model/types.tpl deleted file mode 100644 index 960cf2b3..00000000 --- a/goctl_template_backend/model/types.tpl +++ /dev/null @@ -1,14 +0,0 @@ -type ( - {{.lowerStartCamelObject}}Model interface{ - {{.method}} - } - - default{{.upperStartCamelObject}}Model struct { - {{if .withCache}}sqlc.CachedConn{{else}}conn sqlx.SqlConn{{end}} - table string - } - - {{.upperStartCamelObject}} struct { - {{.fields}} - } -) diff --git a/goctl_template_backend/model/update.tpl b/goctl_template_backend/model/update.tpl deleted file mode 100644 index 41b9331c..00000000 --- a/goctl_template_backend/model/update.tpl +++ /dev/null @@ -1,14 +0,0 @@ -func (m *default{{.upperStartCamelObject}}Model) Update(ctx context.Context, {{if .containsIndexCache}}newData{{else}}data{{end}} *{{.upperStartCamelObject}}) error { - {{if .withCache}}{{if .containsIndexCache}}data, err:=m.FindOne(ctx, newData.{{.upperStartCamelPrimaryKey}}) - if err!=nil{ - return err - } - -{{end}} {{.keys}} - _, {{if .containsIndexCache}}err{{else}}err:{{end}}= m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) { - query := fmt.Sprintf("update %s set %s where {{.originalPrimaryKey}} = {{if .postgreSql}}$1{{else}}?{{end}}", m.table, {{.lowerStartCamelObject}}RowsWithPlaceHolder) - return conn.ExecCtx(ctx, query, {{.expressionValues}}) - }, {{.keyValues}}){{else}}query := fmt.Sprintf("update %s set %s where {{.originalPrimaryKey}} = {{if .postgreSql}}$1{{else}}?{{end}}", m.table, {{.lowerStartCamelObject}}RowsWithPlaceHolder) - _,err:=m.conn.ExecCtx(ctx, query, {{.expressionValues}}){{end}} - return err -} diff --git a/goctl_template_backend/model/var.tpl b/goctl_template_backend/model/var.tpl deleted file mode 100644 index c11fe535..00000000 --- a/goctl_template_backend/model/var.tpl +++ /dev/null @@ -1,8 +0,0 @@ -var ( -{{.lowerStartCamelObject}}FieldNames = builder.RawFieldNames(&{{.upperStartCamelObject}}{}{{if .postgreSql}}, true{{end}}) -{{.lowerStartCamelObject}}Rows = strings.Join({{.lowerStartCamelObject}}FieldNames, ",") -{{.lowerStartCamelObject}}RowsExpectAutoSet = {{if .postgreSql}}strings.Join(stringx.Remove({{.lowerStartCamelObject}}FieldNames, {{if .autoIncrement}}"{{.originalPrimaryKey}}", {{end}} {{.ignoreColumns}}), ","){{else}}strings.Join(stringx.Remove({{.lowerStartCamelObject}}FieldNames, {{if .autoIncrement}}"{{.originalPrimaryKey}}", {{end}} {{.ignoreColumns}}), ","){{end}} -{{.lowerStartCamelObject}}RowsWithPlaceHolder = {{if .postgreSql}}builder.PostgreSqlJoin(stringx.Remove({{.lowerStartCamelObject}}FieldNames, "{{.originalPrimaryKey}}", {{.ignoreColumns}})){{else}}strings.Join(stringx.Remove({{.lowerStartCamelObject}}FieldNames, "{{.originalPrimaryKey}}", {{.ignoreColumns}}), "=?,") + "=?"{{end}} - -{{if .withCache}}{{.cacheKeys}}{{end}} -) diff --git a/goctl_template_backend/mongo/err.tpl b/goctl_template_backend/mongo/err.tpl deleted file mode 100644 index 418c875f..00000000 --- a/goctl_template_backend/mongo/err.tpl +++ /dev/null @@ -1,12 +0,0 @@ -package gmodel - -import ( - "errors" - - "github.com/zeromicro/go-zero/core/stores/mon" -) - -var ( - ErrNotFound = mon.ErrNotFound - ErrInvalidObjectId = errors.New("invalid objectId") -) diff --git a/goctl_template_backend/mongo/model.tpl b/goctl_template_backend/mongo/model.tpl deleted file mode 100644 index 9c2d94ce..00000000 --- a/goctl_template_backend/mongo/model.tpl +++ /dev/null @@ -1,78 +0,0 @@ -// Code generated by goctl. DO NOT EDIT. -package gmodel - -import ( - "context" - "time" - - {{if .Cache}}"github.com/zeromicro/go-zero/core/stores/monc"{{else}}"github.com/zeromicro/go-zero/core/stores/mon"{{end}} - "go.mongodb.org/mongo-driver/bson" - "go.mongodb.org/mongo-driver/bson/primitive" - "go.mongodb.org/mongo-driver/mongo" -) - -{{if .Cache}}var prefix{{.Type}}CacheKey = "cache:{{.lowerType}}:"{{end}} - -type {{.lowerType}}Model interface{ - Insert(ctx context.Context,data *{{.Type}}) error - FindOne(ctx context.Context,id string) (*{{.Type}}, error) - Update(ctx context.Context,data *{{.Type}}) (*mongo.UpdateResult, error) - Delete(ctx context.Context,id string) (int64, error) -} - -type default{{.Type}}Model struct { - conn {{if .Cache}}*monc.Model{{else}}*mon.Model{{end}} -} - -func newDefault{{.Type}}Model(conn {{if .Cache}}*monc.Model{{else}}*mon.Model{{end}}) *default{{.Type}}Model { - return &default{{.Type}}Model{conn: conn} -} - - -func (m *default{{.Type}}Model) Insert(ctx context.Context, data *{{.Type}}) error { - if data.ID.IsZero() { - data.ID = primitive.NewObjectID() - data.CreateAt = time.Now() - data.UpdateAt = time.Now() - } - - {{if .Cache}}key := prefix{{.Type}}CacheKey + data.ID.Hex(){{end}} - _, err := m.conn.InsertOne(ctx, {{if .Cache}}key, {{end}} data) - return err -} - -func (m *default{{.Type}}Model) FindOne(ctx context.Context, id string) (*{{.Type}}, error) { - oid, err := primitive.ObjectIDFromHex(id) - if err != nil { - return nil, ErrInvalidObjectId - } - - var data {{.Type}} - {{if .Cache}}key := prefix{{.Type}}CacheKey + id{{end}} - err = m.conn.FindOne(ctx, {{if .Cache}}key, {{end}}&data, bson.M{"_id": oid}) - switch err { - case nil: - return &data, nil - case {{if .Cache}}monc{{else}}mon{{end}}.ErrNotFound: - return nil, ErrNotFound - default: - return nil, err - } -} - -func (m *default{{.Type}}Model) Update(ctx context.Context, data *{{.Type}}) (*mongo.UpdateResult, error) { - data.UpdateAt = time.Now() - {{if .Cache}}key := prefix{{.Type}}CacheKey + data.ID.Hex(){{end}} - res, err := m.conn.UpdateOne(ctx, {{if .Cache}}key, {{end}}bson.M{"_id": data.ID}, bson.M{"$set": data}) - return res, err -} - -func (m *default{{.Type}}Model) Delete(ctx context.Context, id string) (int64, error) { - oid, err := primitive.ObjectIDFromHex(id) - if err != nil { - return 0, ErrInvalidObjectId - } - {{if .Cache}}key := prefix{{.Type}}CacheKey +id{{end}} - res, err := m.conn.DeleteOne(ctx, {{if .Cache}}key, {{end}}bson.M{"_id": oid}) - return res, err -} diff --git a/goctl_template_backend/mongo/model_custom.tpl b/goctl_template_backend/mongo/model_custom.tpl deleted file mode 100644 index c75bdcd9..00000000 --- a/goctl_template_backend/mongo/model_custom.tpl +++ /dev/null @@ -1,38 +0,0 @@ -package gmodel - -{{if .Cache}}import ( - "github.com/zeromicro/go-zero/core/stores/cache" - "github.com/zeromicro/go-zero/core/stores/monc" -){{else}}import "github.com/zeromicro/go-zero/core/stores/mon"{{end}} - -{{if .Easy}} -const {{.Type}}CollectionName = "{{.snakeType}}" -{{end}} - -var _ {{.Type}}Model = (*custom{{.Type}}Model)(nil) - -type ( - // {{.Type}}Model is an interface to be customized, add more methods here, - // and implement the added methods in custom{{.Type}}Model. - {{.Type}}Model interface { - {{.lowerType}}Model - } - - custom{{.Type}}Model struct { - *default{{.Type}}Model - } -) - - -// New{{.Type}}Model returns a model for the mongo. -{{if .Easy}}func New{{.Type}}Model(url, db string{{if .Cache}}, c cache.CacheConf{{end}}) {{.Type}}Model { - conn := {{if .Cache}}monc{{else}}mon{{end}}.MustNewModel(url, db, {{.Type}}CollectionName{{if .Cache}}, c{{end}}) - return &custom{{.Type}}Model{ - default{{.Type}}Model: newDefault{{.Type}}Model(conn), - } -}{{else}}func New{{.Type}}Model(url, db, collection string{{if .Cache}}, c cache.CacheConf{{end}}) {{.Type}}Model { - conn := {{if .Cache}}monc{{else}}mon{{end}}.MustNewModel(url, db, collection{{if .Cache}}, c{{end}}) - return &custom{{.Type}}Model{ - default{{.Type}}Model: newDefault{{.Type}}Model(conn), - } -}{{end}} diff --git a/goctl_template_backend/mongo/model_types.tpl b/goctl_template_backend/mongo/model_types.tpl deleted file mode 100644 index 523de08a..00000000 --- a/goctl_template_backend/mongo/model_types.tpl +++ /dev/null @@ -1,14 +0,0 @@ -package gmodel - -import ( - "time" - - "go.mongodb.org/mongo-driver/bson/primitive" -) - -type {{.Type}} struct { - ID primitive.ObjectID `bson:"_id,omitempty" json:"id,omitempty"` - // TODO: Fill your own fields - UpdateAt time.Time `bson:"updateAt,omitempty" json:"updateAt,omitempty"` - CreateAt time.Time `bson:"createAt,omitempty" json:"createAt,omitempty"` -} diff --git a/goctl_template_backend/newapi/newtemplate.tpl b/goctl_template_backend/newapi/newtemplate.tpl deleted file mode 100644 index 28be5100..00000000 --- a/goctl_template_backend/newapi/newtemplate.tpl +++ /dev/null @@ -1,12 +0,0 @@ -type Request { - Name string `path:"name,options=you|me"` -} - -type Response { - Message string `json:"message"` -} - -service {{.name}}-api { - @handler {{.handler}}Handler - get /from/:name(Request) returns (Response) -} diff --git a/goctl_template_backend/rpc/call.tpl b/goctl_template_backend/rpc/call.tpl deleted file mode 100644 index 27b48796..00000000 --- a/goctl_template_backend/rpc/call.tpl +++ /dev/null @@ -1,33 +0,0 @@ -{{.head}} - -package {{.filePackage}} - -import ( - "context" - - {{.pbPackage}} - {{if ne .pbPackage .protoGoPackage}}{{.protoGoPackage}}{{end}} - - "github.com/zeromicro/go-zero/zrpc" - "google.golang.org/grpc" -) - -type ( - {{.alias}} - - {{.serviceName}} interface { - {{.interface}} - } - - default{{.serviceName}} struct { - cli zrpc.Client - } -) - -func New{{.serviceName}}(cli zrpc.Client) {{.serviceName}} { - return &default{{.serviceName}}{ - cli: cli, - } -} - -{{.functions}} diff --git a/goctl_template_backend/rpc/config.tpl b/goctl_template_backend/rpc/config.tpl deleted file mode 100644 index c1f85b99..00000000 --- a/goctl_template_backend/rpc/config.tpl +++ /dev/null @@ -1,7 +0,0 @@ -package config - -import "github.com/zeromicro/go-zero/zrpc" - -type Config struct { - zrpc.RpcServerConf -} diff --git a/goctl_template_backend/rpc/etc.tpl b/goctl_template_backend/rpc/etc.tpl deleted file mode 100644 index 6cd4bddf..00000000 --- a/goctl_template_backend/rpc/etc.tpl +++ /dev/null @@ -1,6 +0,0 @@ -Name: {{.serviceName}}.rpc -ListenOn: 0.0.0.0:8080 -Etcd: - Hosts: - - 127.0.0.1:2379 - Key: {{.serviceName}}.rpc diff --git a/goctl_template_backend/rpc/logic-func.tpl b/goctl_template_backend/rpc/logic-func.tpl deleted file mode 100644 index e9410d41..00000000 --- a/goctl_template_backend/rpc/logic-func.tpl +++ /dev/null @@ -1,6 +0,0 @@ -{{if .hasComment}}{{.comment}}{{end}} -func (l *{{.logicName}}) {{.method}} ({{if .hasReq}}in {{.request}}{{if .stream}},stream {{.streamBody}}{{end}}{{else}}stream {{.streamBody}}{{end}}) ({{if .hasReply}}{{.response}},{{end}} error) { - // todo: add your logic here and delete this line - - return {{if .hasReply}}&{{.responseType}}{},{{end}} nil -} diff --git a/goctl_template_backend/rpc/logic.tpl b/goctl_template_backend/rpc/logic.tpl deleted file mode 100644 index b8d81f0b..00000000 --- a/goctl_template_backend/rpc/logic.tpl +++ /dev/null @@ -1,24 +0,0 @@ -package {{.packageName}} - -import ( - "context" - - {{.imports}} - - "github.com/zeromicro/go-zero/core/logx" -) - -type {{.logicName}} struct { - ctx context.Context - svcCtx *svc.ServiceContext - logx.Logger -} - -func New{{.logicName}}(ctx context.Context,svcCtx *svc.ServiceContext) *{{.logicName}} { - return &{{.logicName}}{ - ctx: ctx, - svcCtx: svcCtx, - Logger: logx.WithContext(ctx), - } -} -{{.functions}} diff --git a/goctl_template_backend/rpc/main.tpl b/goctl_template_backend/rpc/main.tpl deleted file mode 100644 index 13fbae92..00000000 --- a/goctl_template_backend/rpc/main.tpl +++ /dev/null @@ -1,39 +0,0 @@ -package main - -import ( - "flag" - "fmt" - - {{.imports}} - - "github.com/zeromicro/go-zero/core/conf" - "github.com/zeromicro/go-zero/core/service" - "github.com/zeromicro/go-zero/zrpc" - "google.golang.org/grpc" - "google.golang.org/grpc/reflection" -) - -var configFile = flag.String("f", "etc/{{.serviceName}}.yaml", "the config file") - -func main() { - flag.Parse() - - cfgContent := fsconfig.StartNacosConfig(configFile,nil) - var c config.Config - conf.LoadConfigFromYamlBytes([]byte(cfgContent),&c) - - c.Timeout = int64(time.Second * 15) - ctx := svc.NewServiceContext(c) - - s := zrpc.MustNewServer(c.RpcServerConf, func(grpcServer *grpc.Server) { -{{range .serviceNames}} {{.Pkg}}.Register{{.Service}}Server(grpcServer, {{.ServerPkg}}.New{{.Service}}Server(ctx)) -{{end}} - if c.Mode == service.DevMode || c.Mode == service.TestMode { - reflection.Register(grpcServer) - } - }) - defer s.Stop() - - fmt.Printf("Starting rpc server at %s...\n", c.ListenOn) - s.Start() -} diff --git a/goctl_template_backend/rpc/server-func.tpl b/goctl_template_backend/rpc/server-func.tpl deleted file mode 100644 index d771b438..00000000 --- a/goctl_template_backend/rpc/server-func.tpl +++ /dev/null @@ -1,6 +0,0 @@ - -{{if .hasComment}}{{.comment}}{{end}} -func (s *{{.server}}Server) {{.method}} ({{if .notStream}}ctx context.Context,{{if .hasReq}} in {{.request}}{{end}}{{else}}{{if .hasReq}} in {{.request}},{{end}}stream {{.streamBody}}{{end}}) ({{if .notStream}}{{.response}},{{end}}error) { - l := {{.logicPkg}}.New{{.logicName}}({{if .notStream}}ctx,{{else}}stream.Context(),{{end}}s.svcCtx) - return l.{{.method}}({{if .hasReq}}in{{if .stream}} ,stream{{end}}{{else}}{{if .stream}}stream{{end}}{{end}}) -} diff --git a/goctl_template_backend/rpc/server.tpl b/goctl_template_backend/rpc/server.tpl deleted file mode 100644 index 84a2f9c1..00000000 --- a/goctl_template_backend/rpc/server.tpl +++ /dev/null @@ -1,22 +0,0 @@ -{{.head}} - -package server - -import ( - {{if .notStream}}"context"{{end}} - - {{.imports}} -) - -type {{.server}}Server struct { - svcCtx *svc.ServiceContext - {{.unimplementedServer}} -} - -func New{{.server}}Server(svcCtx *svc.ServiceContext) *{{.server}}Server { - return &{{.server}}Server{ - svcCtx: svcCtx, - } -} - -{{.funcs}} diff --git a/goctl_template_backend/rpc/svc.tpl b/goctl_template_backend/rpc/svc.tpl deleted file mode 100644 index cf2b47af..00000000 --- a/goctl_template_backend/rpc/svc.tpl +++ /dev/null @@ -1,13 +0,0 @@ -package svc - -import {{.imports}} - -type ServiceContext struct { - Config config.Config -} - -func NewServiceContext(c config.Config) *ServiceContext { - return &ServiceContext{ - Config:c, - } -} diff --git a/goctl_template_backend/rpc/template.tpl b/goctl_template_backend/rpc/template.tpl deleted file mode 100644 index 76daa944..00000000 --- a/goctl_template_backend/rpc/template.tpl +++ /dev/null @@ -1,16 +0,0 @@ -syntax = "proto3"; - -package {{.package}}; -option go_package="./{{.package}}"; - -message Request { - string ping = 1; -} - -message Response { - string pong = 1; -} - -service {{.serviceName}} { - rpc Ping(Request) returns(Response); -} diff --git a/run_all_server.sh b/run_all_server.sh index 1cf70b31..12a51382 100755 --- a/run_all_server.sh +++ b/run_all_server.sh @@ -15,8 +15,8 @@ run_server() { # 导航到相应的目录 cd server/$server_name - go build - echo $server_name > .gitignore + go build -race + [ -f .gitignore ] || echo $server_name > .gitignore # 使用 screen 运行 go run .go screen -dmS $server_name -L ./$server_name diff --git a/server/auth/auth.go b/server/auth/auth.go index 1c1278f1..3b5536d9 100644 --- a/server/auth/auth.go +++ b/server/auth/auth.go @@ -12,7 +12,6 @@ import ( "fusenapi/server/auth/internal/handler" "fusenapi/server/auth/internal/svc" - "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/rest" ) @@ -21,9 +20,8 @@ var configFile = flag.String("f", "etc/auth.yaml", "the config file") func main() { flag.Parse() - cfgContent := fsconfig.StartNacosConfig(*configFile, nil) var c config.Config - conf.LoadConfigFromYamlBytes([]byte(cfgContent), &c) + fsconfig.StartNacosConfig(*configFile, &c, nil) server := rest.MustNewServer(c.RestConf, rest.WithCustomCors(auth.FsCors, func(w http.ResponseWriter) { })) diff --git a/server/auth/auth_test.go b/server/auth/auth_test.go index 9f5d2cd8..80820ef2 100644 --- a/server/auth/auth_test.go +++ b/server/auth/auth_test.go @@ -5,6 +5,5 @@ import ( ) func TestMain(t *testing.T) { - main() } diff --git a/server/base/base.go b/server/base/base.go index 7db23d4a..f2c2a3c2 100644 --- a/server/base/base.go +++ b/server/base/base.go @@ -12,7 +12,6 @@ import ( "fusenapi/server/base/internal/handler" "fusenapi/server/base/internal/svc" - "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/rest" ) @@ -21,9 +20,8 @@ var configFile = flag.String("f", "etc/base.yaml", "the config file") func main() { flag.Parse() - cfgContent := fsconfig.StartNacosConfig(*configFile, nil) var c config.Config - conf.LoadConfigFromYamlBytes([]byte(cfgContent), &c) + fsconfig.StartNacosConfig(*configFile, &c, nil) server := rest.MustNewServer(c.RestConf, rest.WithCustomCors(auth.FsCors, func(w http.ResponseWriter) { })) diff --git a/server/canteen/canteen.go b/server/canteen/canteen.go index 2261a4ad..f89cd9cd 100644 --- a/server/canteen/canteen.go +++ b/server/canteen/canteen.go @@ -11,7 +11,6 @@ import ( "fusenapi/utils/auth" "fusenapi/utils/fsconfig" - "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/rest" ) @@ -20,9 +19,8 @@ var configFile = flag.String("f", "etc/canteen.yaml", "the config file") func main() { flag.Parse() - cfgContent := fsconfig.StartNacosConfig(*configFile, nil) var c config.Config - conf.LoadConfigFromYamlBytes([]byte(cfgContent), &c) + fsconfig.StartNacosConfig(*configFile, &c, nil) server := rest.MustNewServer(c.RestConf, rest.WithCustomCors(auth.FsCors, func(w http.ResponseWriter) { diff --git a/server/home-user-auth/home-user-auth.go b/server/home-user-auth/home-user-auth.go index 16c3a315..64ab97d7 100644 --- a/server/home-user-auth/home-user-auth.go +++ b/server/home-user-auth/home-user-auth.go @@ -11,7 +11,6 @@ import ( "fusenapi/utils/auth" "fusenapi/utils/fsconfig" - "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/rest" ) @@ -20,9 +19,8 @@ var configFile = flag.String("f", "etc/home-user-auth.yaml", "the config file") func main() { flag.Parse() - cfgContent := fsconfig.StartNacosConfig(*configFile, nil) var c config.Config - conf.LoadConfigFromYamlBytes([]byte(cfgContent), &c) + fsconfig.StartNacosConfig(*configFile, &c, nil) server := rest.MustNewServer(c.RestConf, rest.WithCustomCors(auth.FsCors, func(w http.ResponseWriter) { diff --git a/server/info/info.go b/server/info/info.go index 613b74a1..141b7d34 100644 --- a/server/info/info.go +++ b/server/info/info.go @@ -13,7 +13,6 @@ import ( "fusenapi/server/info/internal/handler" "fusenapi/server/info/internal/svc" - "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/rest" ) @@ -22,9 +21,8 @@ var configFile = flag.String("f", "etc/info.yaml", "the config file") func main() { flag.Parse() - cfgContent := fsconfig.StartNacosConfig(*configFile, nil) var c config.Config - conf.LoadConfigFromYamlBytes([]byte(cfgContent), &c) + fsconfig.StartNacosConfig(*configFile, &c, nil) c.Timeout = int64(time.Second * 15) server := rest.MustNewServer(c.RestConf, rest.WithCustomCors(auth.FsCors, func(w http.ResponseWriter) { diff --git a/server/map-library/map-library.go b/server/map-library/map-library.go index a7ac3fd3..d7e14337 100644 --- a/server/map-library/map-library.go +++ b/server/map-library/map-library.go @@ -11,7 +11,6 @@ import ( "fusenapi/utils/auth" "fusenapi/utils/fsconfig" - "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/rest" ) @@ -20,9 +19,8 @@ var configFile = flag.String("f", "etc/map-library.yaml", "the config file") func main() { flag.Parse() - cfgContent := fsconfig.StartNacosConfig(*configFile, nil) var c config.Config - conf.LoadConfigFromYamlBytes([]byte(cfgContent), &c) + fsconfig.StartNacosConfig(*configFile, &c, nil) server := rest.MustNewServer(c.RestConf, rest.WithCustomCors(auth.FsCors, func(w http.ResponseWriter) { diff --git a/server/pay/pay.go b/server/pay/pay.go index 5b57352c..0e05a32f 100644 --- a/server/pay/pay.go +++ b/server/pay/pay.go @@ -12,7 +12,6 @@ import ( "fusenapi/server/pay/internal/handler" "fusenapi/server/pay/internal/svc" - "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/rest" ) @@ -21,9 +20,8 @@ var configFile = flag.String("f", "etc/pay.yaml", "the config file") func main() { flag.Parse() - cfgContent := fsconfig.StartNacosConfig(*configFile, nil) var c config.Config - conf.LoadConfigFromYamlBytes([]byte(cfgContent), &c) + fsconfig.StartNacosConfig(*configFile, &c, nil) server := rest.MustNewServer(c.RestConf, rest.WithCustomCors(auth.FsCors, func(w http.ResponseWriter) { })) diff --git a/server/product-model/product-model.go b/server/product-model/product-model.go index 0d71e15a..419fcd54 100644 --- a/server/product-model/product-model.go +++ b/server/product-model/product-model.go @@ -11,7 +11,6 @@ import ( "fusenapi/utils/auth" "fusenapi/utils/fsconfig" - "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/rest" ) @@ -20,9 +19,8 @@ var configFile = flag.String("f", "etc/product-model.yaml", "the config file") func main() { flag.Parse() - cfgContent := fsconfig.StartNacosConfig(*configFile, nil) var c config.Config - conf.LoadConfigFromYamlBytes([]byte(cfgContent), &c) + fsconfig.StartNacosConfig(*configFile, &c, nil) server := rest.MustNewServer(c.RestConf, rest.WithCustomCors(auth.FsCors, func(w http.ResponseWriter) { diff --git a/server/product-template-tag/product-template-tag.go b/server/product-template-tag/product-template-tag.go index fa892576..62807620 100644 --- a/server/product-template-tag/product-template-tag.go +++ b/server/product-template-tag/product-template-tag.go @@ -12,7 +12,6 @@ import ( "fusenapi/server/product-template-tag/internal/handler" "fusenapi/server/product-template-tag/internal/svc" - "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/rest" ) @@ -21,9 +20,8 @@ var configFile = flag.String("f", "etc/product-template-tag.yaml", "the config f func main() { flag.Parse() - cfgContent := fsconfig.StartNacosConfig(*configFile, nil) var c config.Config - conf.LoadConfigFromYamlBytes([]byte(cfgContent), &c) + fsconfig.StartNacosConfig(*configFile, &c, nil) server := rest.MustNewServer(c.RestConf, rest.WithCustomCors(auth.FsCors, func(w http.ResponseWriter) { })) diff --git a/server/product-template/product-template.go b/server/product-template/product-template.go index 260b7c56..35bd5beb 100644 --- a/server/product-template/product-template.go +++ b/server/product-template/product-template.go @@ -11,7 +11,6 @@ import ( "fusenapi/utils/auth" "fusenapi/utils/fsconfig" - "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/rest" ) @@ -20,9 +19,8 @@ var configFile = flag.String("f", "etc/product-template.yaml", "the config file" func main() { flag.Parse() - cfgContent := fsconfig.StartNacosConfig(*configFile, nil) var c config.Config - conf.LoadConfigFromYamlBytes([]byte(cfgContent), &c) + fsconfig.StartNacosConfig(*configFile, &c, nil) server := rest.MustNewServer(c.RestConf, rest.WithCustomCors(auth.FsCors, func(w http.ResponseWriter) { diff --git a/server/product/product.go b/server/product/product.go index adc4c782..98e2df57 100644 --- a/server/product/product.go +++ b/server/product/product.go @@ -11,7 +11,6 @@ import ( "fusenapi/utils/auth" "fusenapi/utils/fsconfig" - "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/rest" ) @@ -20,9 +19,8 @@ var configFile = flag.String("f", "etc/product.yaml", "the config file") func main() { flag.Parse() - cfgContent := fsconfig.StartNacosConfig(*configFile, nil) var c config.Config - conf.LoadConfigFromYamlBytes([]byte(cfgContent), &c) + fsconfig.StartNacosConfig(*configFile, &c, nil) server := rest.MustNewServer(c.RestConf, rest.WithCustomCors(auth.FsCors, func(w http.ResponseWriter) { diff --git a/server/resource/resource.go b/server/resource/resource.go index e40a9db7..f9ad420e 100644 --- a/server/resource/resource.go +++ b/server/resource/resource.go @@ -12,7 +12,6 @@ import ( "fusenapi/server/resource/internal/handler" "fusenapi/server/resource/internal/svc" - "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/rest" ) @@ -21,9 +20,8 @@ var configFile = flag.String("f", "etc/resource.yaml", "the config file") func main() { flag.Parse() - cfgContent := fsconfig.StartNacosConfig(*configFile, nil) var c config.Config - conf.LoadConfigFromYamlBytes([]byte(cfgContent), &c) + fsconfig.StartNacosConfig(*configFile, &c, nil) server := rest.MustNewServer(c.RestConf, rest.WithCustomCors(auth.FsCors, func(w http.ResponseWriter) { })) diff --git a/server/shopping-cart/shopping-cart.go b/server/shopping-cart/shopping-cart.go index bf9dabc1..768c0e59 100644 --- a/server/shopping-cart/shopping-cart.go +++ b/server/shopping-cart/shopping-cart.go @@ -13,7 +13,6 @@ import ( "fusenapi/server/shopping-cart/internal/handler" "fusenapi/server/shopping-cart/internal/svc" - "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/rest" ) @@ -22,9 +21,8 @@ var configFile = flag.String("f", "etc/shopping-cart.yaml", "the config file") func main() { flag.Parse() - cfgContent := fsconfig.StartNacosConfig(*configFile, nil) var c config.Config - conf.LoadConfigFromYamlBytes([]byte(cfgContent), &c) + fsconfig.StartNacosConfig(*configFile, &c, nil) c.Timeout = int64(time.Second * 15) server := rest.MustNewServer(c.RestConf, rest.WithCustomCors(auth.FsCors, func(w http.ResponseWriter) { diff --git a/server/upload/upload.go b/server/upload/upload.go index 42a589d6..265e8ef4 100644 --- a/server/upload/upload.go +++ b/server/upload/upload.go @@ -11,7 +11,6 @@ import ( "fusenapi/utils/auth" "fusenapi/utils/fsconfig" - "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/rest" ) @@ -20,9 +19,8 @@ var configFile = flag.String("f", "etc/upload.yaml", "the config file") func main() { flag.Parse() - cfgContent := fsconfig.StartNacosConfig(*configFile, nil) var c config.Config - conf.LoadConfigFromYamlBytes([]byte(cfgContent), &c) + fsconfig.StartNacosConfig(*configFile, &c, nil) server := rest.MustNewServer(c.RestConf, rest.WithCustomCors(auth.FsCors, func(w http.ResponseWriter) { diff --git a/server/webset/webset.go b/server/webset/webset.go index be0cfcd0..8687766b 100644 --- a/server/webset/webset.go +++ b/server/webset/webset.go @@ -11,7 +11,6 @@ import ( "fusenapi/utils/auth" "fusenapi/utils/fsconfig" - "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/rest" ) @@ -20,9 +19,8 @@ var configFile = flag.String("f", "etc/webset.yaml", "the config file") func main() { flag.Parse() - cfgContent := fsconfig.StartNacosConfig(*configFile, nil) var c config.Config - conf.LoadConfigFromYamlBytes([]byte(cfgContent), &c) + fsconfig.StartNacosConfig(*configFile, &c, nil) server := rest.MustNewServer(c.RestConf, rest.WithCustomCors(auth.FsCors, func(w http.ResponseWriter) { diff --git a/server/websocket/websocket.go b/server/websocket/websocket.go index 6dbc99a2..0744e8de 100644 --- a/server/websocket/websocket.go +++ b/server/websocket/websocket.go @@ -14,7 +14,6 @@ import ( "fusenapi/server/websocket/internal/handler" "fusenapi/server/websocket/internal/svc" - "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/rest" ) @@ -23,9 +22,8 @@ var configFile = flag.String("f", "etc/websocket.yaml", "the config file") func main() { flag.Parse() - cfgContent := fsconfig.StartNacosConfig(*configFile, nil) var c config.Config - conf.LoadConfigFromYamlBytes([]byte(cfgContent), &c) + fsconfig.StartNacosConfig(*configFile, &c, nil) server := rest.MustNewServer(c.RestConf, rest.WithCustomCors(auth.FsCors, func(w http.ResponseWriter) { })) diff --git a/utils/fsconfig/config.go b/utils/fsconfig/config.go index 3c933bb5..1bb0cc0a 100644 --- a/utils/fsconfig/config.go +++ b/utils/fsconfig/config.go @@ -10,6 +10,7 @@ import ( "github.com/nacos-group/nacos-sdk-go/v2/clients" "github.com/nacos-group/nacos-sdk-go/v2/common/constant" "github.com/nacos-group/nacos-sdk-go/v2/vo" + "github.com/zeromicro/go-zero/core/conf" "gopkg.in/yaml.v2" ) @@ -63,7 +64,7 @@ func init() { } -func StartNacosConfig(configFile string, OnChange func(namespace, group, dataId, data string)) string { +func StartNacosConfig(configFile string, cfg any, OnChange func(namespace, group, dataId, data string)) { env := GetEnvCofing() // 创建serverConfig @@ -136,9 +137,40 @@ func StartNacosConfig(configFile string, OnChange func(namespace, group, dataId, log.Fatalf("Failed to get config from Nacos: %v", err) } - log.Println("加载成功:", cfgYaml) + var selfConfig map[string]interface{} = make(map[string]interface{}) + err = yaml.Unmarshal([]byte(content), &selfConfig) + if err != nil { + log.Fatalf("Failed to get config from Nacos: %v", err) + } - return content + content, err = configClient.GetConfig(vo.ConfigParam{ + DataId: "common", + Group: env.Group, + OnChange: nil, + }) + if err != nil { + log.Fatalf("Failed to get config from Nacos: %v", err) + } + var commonConfig map[string]interface{} = make(map[string]interface{}) + err = yaml.Unmarshal([]byte(content), &commonConfig) + if err != nil { + log.Fatalf("Failed to get config from Nacos: %v", err) + } + + for k, v := range commonConfig { + selfConfig[k] = v + } + + data, err := yaml.Marshal(selfConfig) + if err != nil { + log.Fatalf("Failed to get config from Nacos: %v", err) + } + + log.Print("加载成功: ", cfgYaml, "\n环境: ", env.Group, "\n", string(data)) + err = conf.LoadFromYamlBytes(data, cfg) + if err != nil { + log.Fatalf("Failed to get config content from Nacos: %v", err) + } // log.Println(content) } diff --git a/utils/fsconfig/config_test.go b/utils/fsconfig/config_test.go index 8ffaaffb..19c863a5 100644 --- a/utils/fsconfig/config_test.go +++ b/utils/fsconfig/config_test.go @@ -3,8 +3,33 @@ package fsconfig_test import ( "fusenapi/utils/fsconfig" "testing" + + "github.com/zeromicro/go-zero/rest" ) -func TestCase1(t *testing.T) { - fsconfig.StartNacosConfig("auth.yaml", nil) +type Config struct { + rest.RestConf + SourceMysql string + + ReplicaId uint64 + + MainAddress string + WebsocketAddr string + + OAuth struct { + Google struct { + Appid string + Secret string + } + + Facebook struct { + Appid string + Secret string + } + } +} + +func TestCase1(t *testing.T) { + var c Config + fsconfig.StartNacosConfig("auth.yaml", &c, nil) }