generated from pkg/go-template
feat :
parent
61c2b8264d
commit
ab78141e7d
|
@ -0,0 +1,8 @@
|
|||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="Go" enabled="true" />
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/backend.iml" filepath="$PROJECT_DIR$/.idea/backend.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
|
@ -4,11 +4,24 @@ import (
|
|||
"fmt"
|
||||
"git.icechen.cn/monorepo/backend/app/brahma/api/murder/internal/error_process"
|
||||
"git.icechen.cn/monorepo/backend/app/brahma/api/murder/internal/model"
|
||||
"git.icechen.cn/monorepo/backend/app/brahma/api/murder/internal/pkg"
|
||||
"git.icechen.cn/monorepo/backend/app/brahma/api/murder/internal/service"
|
||||
"git.icechen.cn/monorepo/backend/pkg/api"
|
||||
"git.icechen.cn/monorepo/backend/pkg/proto/brahma/murders"
|
||||
"github.com/go-playground/validator/v10"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
ctxLogger "github.com/luizsuper/ctxLoggers"
|
||||
"github.com/pkg/errors"
|
||||
"go.uber.org/zap"
|
||||
"google.golang.org/grpc"
|
||||
"log"
|
||||
"strconv"
|
||||
"time"
|
||||
)
|
||||
|
||||
var (
|
||||
pageIsNotInt = api.WarpFError(errors.New("page 参数错误"))
|
||||
limitIsNotInt = api.WarpFError(errors.New("limit 参数错误"))
|
||||
)
|
||||
|
||||
func GetScriptsH(ctx *fiber.Ctx) error {
|
||||
|
@ -76,23 +89,56 @@ func DeleteScriptsH(ctx *fiber.Ctx) error {
|
|||
return ctx.JSON(success(nil))
|
||||
}
|
||||
|
||||
//func HelloWorld() error {
|
||||
// // Set up a connection to the server.
|
||||
// conn, err := grpc.Dial("localhost:3000", grpc.WithInsecure(), grpc.WithBlock())
|
||||
// if err != nil {
|
||||
// log.Fatalf("did not connect: %v", err)
|
||||
// }
|
||||
// defer conn.Close()
|
||||
// c := murder.NewHelloWorldClient(conn)
|
||||
//
|
||||
// // Contact the server and print out its response.
|
||||
// ctx, cancel := context.WithTimeout(context.Background(), time.Second)
|
||||
// defer cancel()
|
||||
// r, err := c.Login(ctx, &murder.HelloRequest{Code: "lht"})
|
||||
//
|
||||
// if err != nil {
|
||||
// log.Fatalf("could not greet: %v", err)
|
||||
// }
|
||||
// log.Printf("Greeting: %s", r.Token)
|
||||
// return nil
|
||||
//}
|
||||
func GetScriptApi(ctx *fiber.Ctx) error {
|
||||
//todo:调通中间层
|
||||
//todo:换成服务
|
||||
conn, err := grpc.Dial("localhost:3000", grpc.WithInsecure(), grpc.WithBlock())
|
||||
if err != nil {
|
||||
log.Fatalf("did not connect: %v", err)
|
||||
}
|
||||
|
||||
outgoingContext, cancelFunc := pkg.TransFiberCtx2NewOutgoingContext(ctx, 3*time.Second)
|
||||
defer conn.Close()
|
||||
defer cancelFunc()
|
||||
c := murders.NewMurdersClient(conn)
|
||||
|
||||
page := ctx.Query("page", "1")
|
||||
limit := ctx.Query("size", "10")
|
||||
p, err := strconv.Atoi(page)
|
||||
if err != nil {
|
||||
ctxLogger.Error(ctx.UserContext(), pageIsNotInt.Error(), zap.String("page", page))
|
||||
return pageIsNotInt
|
||||
}
|
||||
l, err := strconv.Atoi(limit)
|
||||
if err != nil {
|
||||
ctxLogger.Error(ctx.UserContext(), limitIsNotInt.Error(), zap.String("limit", limit))
|
||||
return pageIsNotInt
|
||||
}
|
||||
|
||||
validate := validator.New()
|
||||
err = validate.Var(p, "gte=0")
|
||||
if err != nil {
|
||||
ctxLogger.Error(ctx.UserContext(), limitIsNotInt.Error(), zap.String("limit", limit))
|
||||
return api.WarpFError(err)
|
||||
}
|
||||
err = validate.Var(l, "gte=-1")
|
||||
if err != nil {
|
||||
ctxLogger.Error(ctx.UserContext(), limitIsNotInt.Error(), zap.String("limit", limit))
|
||||
return api.WarpFError(err)
|
||||
}
|
||||
|
||||
p64 := int64(p)
|
||||
l64 := int64(l)
|
||||
condition := murders.QueryCondition{
|
||||
Page: &p64,
|
||||
Size: &l64,
|
||||
QueryMap: nil,
|
||||
}
|
||||
|
||||
scripts, err := c.GetScripts(outgoingContext, &condition)
|
||||
if err != nil {
|
||||
return api.WarpFError(err)
|
||||
}
|
||||
|
||||
return ctx.JSON(scripts)
|
||||
}
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
package pkg
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"github.com/gofiber/fiber/v2/utils"
|
||||
"google.golang.org/grpc/metadata"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TransFiberCtx2NewOutgoingContext(fCtx *fiber.Ctx, time time.Duration) (context.Context, context.CancelFunc) {
|
||||
ctx := fCtx.UserContext()
|
||||
md := metadata.MD{}
|
||||
if value, ok := ctx.Value(fiber.HeaderXRequestID).(string); ok {
|
||||
md = metadata.Pairs(fiber.HeaderXRequestID, value)
|
||||
} else {
|
||||
md = metadata.Pairs(fiber.HeaderXRequestID, utils.UUIDv4())
|
||||
}
|
||||
//3s 过期超时
|
||||
return context.WithTimeout(metadata.NewOutgoingContext(ctx, md), time)
|
||||
}
|
|
@ -19,7 +19,7 @@ const (
|
|||
tag = "/tag"
|
||||
category = "/category"
|
||||
scripts = "/scripts"
|
||||
hello = "/hello"
|
||||
script = "/script"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -110,6 +110,10 @@ func routerInit() {
|
|||
scriptsGroup.Delete("", func(ctx *fiber.Ctx) error {
|
||||
return handler.DeleteScriptsH(ctx)
|
||||
})
|
||||
scriptGroup := app.Group(script)
|
||||
scriptGroup.Get("", func(ctx *fiber.Ctx) error {
|
||||
return handler.GetScriptApi(ctx)
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,75 @@
|
|||
package main
|
||||
|
||||
import "fmt"
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"go.dedis.ch/protobuf"
|
||||
)
|
||||
|
||||
type QueryCondition struct {
|
||||
Page *int
|
||||
Size *int
|
||||
QueryMap map[string]string
|
||||
}
|
||||
|
||||
type (
|
||||
ints []int
|
||||
strs []string
|
||||
scripts []Script
|
||||
)
|
||||
|
||||
type Script struct {
|
||||
ScriptName string `json:"script_name" gorm:"column:script_name"`
|
||||
ScriptIntro string `json:"script_intro" gorm:"column:script_intro"`
|
||||
ScriptTag ints `json:"script_tag" gorm:"column:script_tag"`
|
||||
ScriptScore float64 `json:"script_score" gorm:"column:script_score"`
|
||||
GroupDuration int `json:"group_duration" gorm:"column:group_duration"`
|
||||
ScriptCoverUrl string `json:"script_cover_url" gorm:"column:script_cover_url"`
|
||||
ScriptTextContext string `json:"script_text_context" gorm:"column:script_text_context"`
|
||||
ScriptPlotScore float64 `json:"script_plot_score" gorm:"column:script_plot_score"`
|
||||
ScriptImageContent strs `json:"script_image_content" gorm:"column:script_image_content"`
|
||||
ScriptMalePlayer int `json:"script_male_player" gorm:"column:script_male_player"`
|
||||
ScriptFemalePlayer int `json:"script_female_player" gorm:"column:script_female_player"`
|
||||
ScriptDifficultDegree string `json:"script_difficult_degree" gorm:"column:script_difficult_degree"`
|
||||
ScriptPlayerLimit int `json:"script_player_limit" gorm:"column:script_player_limit"`
|
||||
Uuid string `json:"uuid" gorm:"column:uuid" valid:"no_empty"`
|
||||
ScriptComplexScore float64 `json:"script_complex_score" gorm:"column:script_complex_score"`
|
||||
Qid string `json:"qid" gorm:"column:qid"`
|
||||
IsDel int `json:"-" gorm:"column:is_del"`
|
||||
}
|
||||
|
||||
type Scripts struct {
|
||||
Scripts scripts `json:"scripts" `
|
||||
}
|
||||
|
||||
type (
|
||||
Tag struct {
|
||||
Value string `json:"value" gorm:"column:value"`
|
||||
Uuid int `json:"uuid" gorm:"primary_key" valid:"no_empty"`
|
||||
IsDel int `json:"-" gorm:"column:is_del" value:"1|0"`
|
||||
Cs []Category `json:"categories,omitempty" gorm:"many2many:c_tag;foreignKey:Uuid;joinForeignKey:TagUid;References:Uuid;JoinReferences:CategoryUid" valid:"no_empty"`
|
||||
}
|
||||
)
|
||||
|
||||
type (
|
||||
Category struct {
|
||||
Value string `json:"value" gorm:"column:value"`
|
||||
Uuid string `json:"uuid" gorm:"primary_key" valid:"no_empty"`
|
||||
IsDel int `json:"-" gorm:"column:is_del"`
|
||||
Tags []Tag `json:"tags,omitempty" gorm:"many2many:c_tag;foreignKey:Uuid;joinForeignKey:CategoryUid;References:Uuid;JoinReferences:TagUid" valid:"no_empty"`
|
||||
}
|
||||
)
|
||||
|
||||
func main() {
|
||||
fmt.Println("我是个示例")
|
||||
w := &bytes.Buffer{}
|
||||
types := []interface{}{
|
||||
Tag{},
|
||||
Category{},
|
||||
}
|
||||
err := protobuf.GenerateProtobufDefinition(w, types, nil, nil)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
fmt.Println(w.String())
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
package model
|
||||
|
||||
import (
|
||||
"database/sql/driver"
|
||||
"encoding/json"
|
||||
)
|
||||
|
||||
type (
|
||||
ints []int
|
||||
strs []string
|
||||
)
|
||||
|
||||
type Scripts struct {
|
||||
ScriptName string `json:"script_name" gorm:"column:script_name"`
|
||||
ScriptIntro string `json:"script_intro" gorm:"column:script_intro"`
|
||||
ScriptTag ints `json:"script_tag" gorm:"column:script_tag"`
|
||||
ScriptScore float64 `json:"script_score" gorm:"column:script_score"`
|
||||
GroupDuration int `json:"group_duration" gorm:"column:group_duration"`
|
||||
ScriptCoverUrl string `json:"script_cover_url" gorm:"column:script_cover_url"`
|
||||
ScriptTextContext string `json:"script_text_context" gorm:"column:script_text_context"`
|
||||
ScriptPlotScore float64 `json:"script_plot_score" gorm:"column:script_plot_score"`
|
||||
ScriptImageContent strs `json:"script_image_content" gorm:"column:script_image_content"`
|
||||
ScriptMalePlayer int `json:"script_male_player" gorm:"column:script_male_player"`
|
||||
ScriptFemalePlayer int `json:"script_female_player" gorm:"column:script_female_player"`
|
||||
ScriptDifficultDegree string `json:"script_difficult_degree" gorm:"column:script_difficult_degree"`
|
||||
ScriptPlayerLimit int `json:"script_player_limit" gorm:"column:script_player_limit"`
|
||||
Uuid string `json:"uuid" gorm:"column:uuid" valid:"no_empty"`
|
||||
ScriptComplexScore float64 `json:"script_complex_score" gorm:"column:script_complex_score"`
|
||||
Qid string `json:"qid" gorm:"column:qid"`
|
||||
IsDel int `json:"-" gorm:"column:is_del"`
|
||||
}
|
||||
|
||||
func (m *Scripts) TableName() string {
|
||||
return "scripts"
|
||||
}
|
||||
|
||||
func (p ints) Value() (driver.Value, error) {
|
||||
return json.Marshal(p)
|
||||
}
|
||||
|
||||
func (p *ints) Scan(input interface{}) error {
|
||||
return json.Unmarshal(input.([]byte), &p)
|
||||
}
|
||||
|
||||
func (p strs) Value() (driver.Value, error) {
|
||||
return json.Marshal(p)
|
||||
}
|
||||
|
||||
func (p *strs) Scan(input interface{}) error {
|
||||
return json.Unmarshal(input.([]byte), &p)
|
||||
}
|
|
@ -0,0 +1,72 @@
|
|||
package pkg
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/pkg/errors"
|
||||
"time"
|
||||
)
|
||||
|
||||
type Finish struct {
|
||||
IsDone bool
|
||||
Err error
|
||||
}
|
||||
|
||||
type Worker interface {
|
||||
Work(ctx context.Context, finishChan chan<- Finish)
|
||||
}
|
||||
|
||||
type WorkerInterFace struct {
|
||||
}
|
||||
|
||||
func (w WorkerInterFace) Work(ctx context.Context, finishChan chan<- Finish) {
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func Run(timeout time.Duration, ctx context.Context, workers ...Worker) error {
|
||||
cancel, cancelFunc := context.WithTimeout(ctx, timeout)
|
||||
finishSignal := make(chan Finish)
|
||||
errs := make([]error, 0)
|
||||
defer cancelFunc()
|
||||
for _, worker := range workers {
|
||||
go worker.Work(cancel, finishSignal)
|
||||
}
|
||||
for i := 0; i < len(workers); i++ {
|
||||
if f := <-finishSignal; !f.IsDone {
|
||||
errs = append(errs, f.Err)
|
||||
if len(errs) == 1 {
|
||||
cancelFunc()
|
||||
}
|
||||
}
|
||||
}
|
||||
close(finishSignal)
|
||||
if len(errs) != 0 {
|
||||
return errs[0]
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func SafeSend(ch chan<- Finish, value Finish) {
|
||||
defer func() {
|
||||
if recover() != nil {
|
||||
|
||||
}
|
||||
}()
|
||||
ch <- value // panic if ch is closed
|
||||
}
|
||||
|
||||
func Watcher(ctx context.Context, ch chan<- Finish) {
|
||||
go func() {
|
||||
loop:
|
||||
for {
|
||||
select {
|
||||
//无论主动还是被动推出。总会
|
||||
case <-ctx.Done():
|
||||
SafeSend(ch, Finish{
|
||||
IsDone: false,
|
||||
Err: errors.New(""),
|
||||
})
|
||||
break loop
|
||||
}
|
||||
}
|
||||
}()
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
package pkg
|
|
@ -1,31 +0,0 @@
|
|||
package servesr
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"git.icechen.cn/monorepo/backend/pkg/proto/brahma/murder"
|
||||
"google.golang.org/grpc"
|
||||
"log"
|
||||
"net"
|
||||
)
|
||||
|
||||
type helloRequet struct {
|
||||
murder.UnimplementedHelloWorldServer
|
||||
}
|
||||
|
||||
func (helloRequet) Login(ctx context.Context, name *murder.HelloRequest) (*murder.HelloResponse, error) {
|
||||
return &murder.HelloResponse{Token: name.Code}, nil
|
||||
}
|
||||
|
||||
func RpcServer() {
|
||||
lis, err := net.Listen("tcp", ":3000")
|
||||
if err != nil {
|
||||
log.Fatalf("failed to listen: %v", err)
|
||||
}
|
||||
s := grpc.NewServer()
|
||||
murder.RegisterHelloWorldServer(s, &helloRequet{})
|
||||
fmt.Println("lark server run in :3000")
|
||||
if err := s.Serve(lis); err != nil {
|
||||
log.Fatalf("failed to serve: %v", err)
|
||||
}
|
||||
}
|
|
@ -0,0 +1,53 @@
|
|||
package servesr
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"git.icechen.cn/monorepo/backend/app/brahma/service/token/internal/model"
|
||||
"git.icechen.cn/monorepo/backend/app/brahma/service/token/internal/pkg"
|
||||
"git.icechen.cn/monorepo/backend/pkg/orm"
|
||||
"git.icechen.cn/monorepo/backend/pkg/proto/brahma/murders"
|
||||
"git.icechen.cn/monorepo/backend/pkg/proto/brahma/murders/script"
|
||||
"time"
|
||||
)
|
||||
|
||||
type Script struct {
|
||||
murders.UnimplementedMurdersServer
|
||||
pkg.WorkerInterFace
|
||||
queryMap *murders.QueryCondition
|
||||
scriptModel *[]model.Scripts
|
||||
}
|
||||
|
||||
func (s *Script) GetScripts(ctx context.Context, queryMap *murders.QueryCondition) (*script.Scripts, error) {
|
||||
s.queryMap = queryMap
|
||||
err := pkg.Run(1*time.Second, ctx, s)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
|
||||
func (s *Script) Work(ctx context.Context, finishChan chan<- pkg.Finish) {
|
||||
go pkg.Watcher(ctx, finishChan)
|
||||
db, err := orm.GetContextDB(ctx, orm.DB)
|
||||
if err != nil {
|
||||
pkg.SafeSend(finishChan, pkg.Finish{
|
||||
IsDone: false,
|
||||
Err: err,
|
||||
})
|
||||
}
|
||||
|
||||
i := new([]model.Scripts)
|
||||
if num := db.Find(i).RowsAffected; num < 0 {
|
||||
pkg.SafeSend(finishChan, pkg.Finish{
|
||||
IsDone: false,
|
||||
Err: errors.New("RowsAffected < 0"),
|
||||
})
|
||||
}
|
||||
|
||||
s.scriptModel = i
|
||||
pkg.SafeSend(finishChan, pkg.Finish{
|
||||
IsDone: true,
|
||||
Err: nil,
|
||||
})
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
package servesr
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"git.icechen.cn/monorepo/backend/pkg/proto/brahma/murders"
|
||||
"git.icechen.cn/monorepo/backend/pkg/rpc"
|
||||
ctxLogger "github.com/luizsuper/ctxLoggers"
|
||||
"go.uber.org/zap"
|
||||
"google.golang.org/grpc"
|
||||
"net"
|
||||
)
|
||||
|
||||
func RpcServer() {
|
||||
lis, err := net.Listen("tcp", ":3000")
|
||||
if err != nil {
|
||||
ctxLogger.Info(nil, "brahma server start up error", zap.String("error", err.Error()))
|
||||
}
|
||||
s := grpc.NewServer(grpc.UnaryInterceptor(rpc.Interceptor))
|
||||
murders.RegisterMurdersServer(s, &Script{})
|
||||
fmt.Println("lark server run in :3000")
|
||||
if err := s.Serve(lis); err != nil {
|
||||
ctxLogger.Info(nil, "brahma server start up error", zap.String("error", err.Error()))
|
||||
}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
package servesr
|
|
@ -1,9 +1,8 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
servesr "git.icechen.cn/monorepo/backend/app/brahma/service/token/internal/server"
|
||||
)
|
||||
import servesr "git.icechen.cn/monorepo/backend/app/brahma/service/token/internal/server"
|
||||
|
||||
func main() {
|
||||
servesr.RpcServer()
|
||||
|
||||
}
|
||||
|
|
2
go.mod
2
go.mod
|
@ -8,7 +8,7 @@ require (
|
|||
github.com/google/uuid v1.1.2
|
||||
github.com/jinzhu/copier v0.3.4
|
||||
github.com/larksuite/oapi-sdk-go v1.1.43
|
||||
github.com/luizsuper/ctxLoggers v1.0.3
|
||||
github.com/luizsuper/ctxLoggers v1.0.4
|
||||
github.com/pkg/errors v0.9.1
|
||||
github.com/spf13/cast v1.4.1
|
||||
go.etcd.io/etcd/client/v3 v3.5.1
|
||||
|
|
45
go.sum
45
go.sum
|
@ -28,7 +28,6 @@ github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmf
|
|||
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
|
||||
github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI=
|
||||
github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
|
||||
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
|
@ -57,16 +56,13 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V
|
|||
github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
|
||||
github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A=
|
||||
github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
|
||||
github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q=
|
||||
github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8=
|
||||
github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU=
|
||||
github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs=
|
||||
github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no=
|
||||
github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA=
|
||||
github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho=
|
||||
github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA=
|
||||
github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI=
|
||||
github.com/go-playground/validator/v10 v10.4.1 h1:pH2c5ADXtd66mxoE0Zm9SUhxE20r7aM3F26W0hOn+GE=
|
||||
github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4=
|
||||
github.com/go-playground/validator/v10 v10.10.0 h1:I7mrTYv78z8k8VXa/qJlOlEXn/nBh+BF8dHX5nt/dr0=
|
||||
github.com/go-playground/validator/v10 v10.10.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos=
|
||||
github.com/go-redis/redis/v8 v8.2.2/go.mod h1:ysgGY09J/QeDYbu3HikWEIPCwaeOkuNoTgKayTEaEOw=
|
||||
github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE=
|
||||
github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
|
||||
|
@ -136,14 +132,11 @@ github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47e
|
|||
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
|
||||
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
|
||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||
github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
|
||||
github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
|
||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||
github.com/larksuite/oapi-sdk-go v1.1.43 h1:DVUAbiYOfE+1yPyTKYofxcEpB027nhq9Lfk2DaLX960=
|
||||
github.com/larksuite/oapi-sdk-go v1.1.43/go.mod h1:7ybKAbVdKBjXuX0YrMTfnWUyCaIe/zeI1wqjNfN9XOk=
|
||||
github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII=
|
||||
|
@ -155,8 +148,8 @@ github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible h1:Y6sqxHMyB1D2YSzWkL
|
|||
github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible/go.mod h1:ZQnN8lSECaebrkQytbHj4xNgtg8CR7RYXnPok8e0EHA=
|
||||
github.com/lestrrat-go/strftime v1.0.5 h1:A7H3tT8DhTz8u65w+JRpiBxM4dINQhUXAZnhBa2xeOE=
|
||||
github.com/lestrrat-go/strftime v1.0.5/go.mod h1:E1nN3pCbtMSu1yjSVeyuRFVm/U0xoR76fd03sz+Qz4g=
|
||||
github.com/luizsuper/ctxLoggers v1.0.3 h1:u7YGzxhXb2uHm2sJxoO70xfpHz97PC7wIsmsX43Auzc=
|
||||
github.com/luizsuper/ctxLoggers v1.0.3/go.mod h1:wjnYowzWZwBJ7eWVwtcZN9Vbb4DdW8VHKSXzCvsdjIo=
|
||||
github.com/luizsuper/ctxLoggers v1.0.4 h1:0RQiu7/yBgwA3okueOb4C4ltxbbhZHcrBXewwHjUCDA=
|
||||
github.com/luizsuper/ctxLoggers v1.0.4/go.mod h1:wjnYowzWZwBJ7eWVwtcZN9Vbb4DdW8VHKSXzCvsdjIo=
|
||||
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
|
||||
github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y=
|
||||
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
|
||||
|
@ -177,7 +170,6 @@ github.com/onsi/ginkgo v1.14.1/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9k
|
|||
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
|
||||
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
|
||||
github.com/onsi/gomega v1.10.2/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
|
||||
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
|
||||
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||
|
@ -200,9 +192,6 @@ github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsT
|
|||
github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
|
||||
github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
|
||||
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
|
||||
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
|
||||
github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8=
|
||||
github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
|
||||
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
||||
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
||||
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
||||
|
@ -234,6 +223,15 @@ github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7Fw
|
|||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||
go.dedis.ch/fixbuf v1.0.3 h1:hGcV9Cd/znUxlusJ64eAlExS+5cJDIyTyEG+otu5wQs=
|
||||
go.dedis.ch/fixbuf v1.0.3/go.mod h1:yzJMt34Wa5xD37V5RTdmp38cz3QhMagdGoem9anUalw=
|
||||
go.dedis.ch/kyber/v3 v3.0.4/go.mod h1:OzvaEnPvKlyrWyp3kGXlFdp7ap1VC6RkZDTaPikqhsQ=
|
||||
go.dedis.ch/kyber/v3 v3.0.9 h1:i0ZbOQocHUjfFasBiUql5zVeC7u/vahFd96DFA8UOWk=
|
||||
go.dedis.ch/kyber/v3 v3.0.9/go.mod h1:rhNjUUg6ahf8HEg5HUvVBYoWY4boAafX8tYxX+PS+qg=
|
||||
go.dedis.ch/protobuf v1.0.5/go.mod h1:eIV4wicvi6JK0q/QnfIEGeSFNG0ZeB24kzut5+HaRLo=
|
||||
go.dedis.ch/protobuf v1.0.7/go.mod h1:pv5ysfkDX/EawiPqcW3ikOxsL5t+BqnV6xHSmE79KI4=
|
||||
go.dedis.ch/protobuf v1.0.11 h1:FTYVIEzY/bfl37lu3pR4lIj+F9Vp1jE8oh91VmxKgLo=
|
||||
go.dedis.ch/protobuf v1.0.11/go.mod h1:97QR256dnkimeNdfmURz0wAMNVbd1VmLXhG1CrTYrJ4=
|
||||
go.etcd.io/etcd/api/v3 v3.5.1 h1:v28cktvBq+7vGyJXF8G+rWJmj+1XUmMtqcLnH8hDocM=
|
||||
go.etcd.io/etcd/api/v3 v3.5.1/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs=
|
||||
go.etcd.io/etcd/client/pkg/v3 v3.5.1 h1:XIQcHCFSG53bJETYeRJtIxdLv2EWRGxcfzR8lSnTH4E=
|
||||
|
@ -256,11 +254,11 @@ go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI=
|
|||
go.uber.org/zap v1.20.0 h1:N4oPlghZwYG55MlU6LXk/Zp00FVNE9X9wrYO8CEs4lc=
|
||||
go.uber.org/zap v1.20.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw=
|
||||
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||
golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8=
|
||||
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3 h1:0es+/5331RGQPcXlMfP+WrnIIS6dNnNRe0WB02W0F4M=
|
||||
golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
|
@ -308,6 +306,7 @@ golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5h
|
|||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
|
@ -332,7 +331,6 @@ golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBc
|
|||
golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220111092808-5a964db01320 h1:0jf+tOCoZ3LyutmCOWpVni1chK4VfFLhRsDK7MhqGRY=
|
||||
golang.org/x/sys v0.0.0-20220111092808-5a964db01320/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
|
@ -386,16 +384,13 @@ google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2
|
|||
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
|
||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
||||
google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk=
|
||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||
google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ=
|
||||
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
|
||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
||||
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
|
||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
|
||||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
|
|
|
@ -65,7 +65,8 @@ func GetFibberRecoverConfig() recover.Config {
|
|||
|
||||
// FibberUserCtxWithTraceHandler 把fibberCtx的traceId 置入UserCtx中
|
||||
func FibberUserCtxWithTraceHandler(c *fiber.Ctx) error {
|
||||
c.SetUserContext(context.WithValue(context.Background(), fiber.HeaderXRequestID, c.Response().Header.Peek(fiber.HeaderXRequestID)))
|
||||
peek := c.Response().Header.Peek(fiber.HeaderXRequestID)
|
||||
c.SetUserContext(context.WithValue(context.Background(), fiber.HeaderXRequestID, string(peek)))
|
||||
return c.Next()
|
||||
}
|
||||
|
||||
|
|
|
@ -11,8 +11,9 @@ import (
|
|||
)
|
||||
|
||||
var (
|
||||
EndPoints = "ENDPOINTS"
|
||||
EndAddress = "etcd." + env.Namespace + ":2379"
|
||||
EndPoints = "ENDPOINTS"
|
||||
//EndAddress = "etcd." + env.Namespace + ":2379"
|
||||
EndAddress = "127.0.0.1:2379"
|
||||
)
|
||||
|
||||
var (
|
||||
|
|
|
@ -0,0 +1,94 @@
|
|||
package orm
|
||||
|
||||
import (
|
||||
"context"
|
||||
times "git.icechen.cn/monorepo/backend/pkg/time"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
ctxLogger "github.com/luizsuper/ctxLoggers"
|
||||
"github.com/spf13/cast"
|
||||
"go.uber.org/zap"
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/utils"
|
||||
"time"
|
||||
)
|
||||
|
||||
func GetContextDB(ctx context.Context, db *gorm.DB) (*gorm.DB, error) {
|
||||
if err := db.Use(&TracePlugin{}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return db.WithContext(ctx), nil
|
||||
}
|
||||
|
||||
type SQL struct {
|
||||
Timestamp string `json:"timestamp"` // 时间,格式:2006-01-02 15:04:05
|
||||
Stack string `json:"stack"` // 文件地址和行号
|
||||
SQL string `json:"sql"` // SQL 语句
|
||||
Rows int64 `json:"rows_affected"` // 影响行数
|
||||
CostSeconds float64 `json:"cost_seconds"` // 执行时长(单位秒)
|
||||
}
|
||||
|
||||
const (
|
||||
callBackBeforeName = "core:before"
|
||||
callBackAfterName = "core:after"
|
||||
startTime = "_start_time"
|
||||
)
|
||||
|
||||
type TracePlugin struct{}
|
||||
|
||||
func (op *TracePlugin) Name() string {
|
||||
return "tracePlugin"
|
||||
}
|
||||
|
||||
func (op *TracePlugin) Initialize(db *gorm.DB) (err error) {
|
||||
// 开始前
|
||||
_ = db.Callback().Create().Before("gorm:before_create").Register(callBackBeforeName, before)
|
||||
_ = db.Callback().Query().Before("gorm:query").Register(callBackBeforeName, before)
|
||||
_ = db.Callback().Delete().Before("gorm:before_delete").Register(callBackBeforeName, before)
|
||||
_ = db.Callback().Update().Before("gorm:setup_reflect_value").Register(callBackBeforeName, before)
|
||||
_ = db.Callback().Row().Before("gorm:row").Register(callBackBeforeName, before)
|
||||
_ = db.Callback().Raw().Before("gorm:raw").Register(callBackBeforeName, before)
|
||||
|
||||
// 结束后
|
||||
_ = db.Callback().Create().After("gorm:after_create").Register(callBackAfterName, after)
|
||||
_ = db.Callback().Query().After("gorm:after_query").Register(callBackAfterName, after)
|
||||
_ = db.Callback().Delete().After("gorm:after_delete").Register(callBackAfterName, after)
|
||||
_ = db.Callback().Update().After("gorm:after_update").Register(callBackAfterName, after)
|
||||
_ = db.Callback().Row().After("gorm:row").Register(callBackAfterName, after)
|
||||
_ = db.Callback().Raw().After("gorm:raw").Register(callBackAfterName, after)
|
||||
return
|
||||
}
|
||||
|
||||
//记录db开始时间
|
||||
func before(db *gorm.DB) {
|
||||
db.InstanceSet(startTime, time.Now())
|
||||
return
|
||||
}
|
||||
|
||||
func after(db *gorm.DB) {
|
||||
_ctx := db.Statement.Context
|
||||
ctx, ok := _ctx.(context.Context)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
defer ctx.Done()
|
||||
_ts, isExist := db.InstanceGet(startTime)
|
||||
if !isExist {
|
||||
return
|
||||
}
|
||||
ts, ok := _ts.(time.Time)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
sql := db.Dialector.Explain(db.Statement.SQL.String(), db.Statement.Vars...)
|
||||
sqlInfo := new(SQL)
|
||||
sqlInfo.Timestamp = times.CSTLayoutString()
|
||||
sqlInfo.SQL = sql
|
||||
sqlInfo.Stack = utils.FileWithLineNum()
|
||||
sqlInfo.Rows = db.Statement.RowsAffected
|
||||
sqlInfo.CostSeconds = time.Since(ts).Seconds()
|
||||
|
||||
ctxLogger.FInfo(nil, "sql", zap.Any("info", sqlInfo), zap.String("trace_id", cast.ToString(ctx.Value(fiber.HeaderXRequestID))))
|
||||
|
||||
return
|
||||
}
|
|
@ -2,7 +2,7 @@
|
|||
// versions:
|
||||
// protoc-gen-go v1.27.1
|
||||
// protoc v3.19.3
|
||||
// source: murder/hello.proto
|
||||
// source: hello.proto
|
||||
|
||||
package murder
|
||||
|
||||
|
@ -20,53 +20,6 @@ const (
|
|||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
type HelloRequest struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"`
|
||||
}
|
||||
|
||||
func (x *HelloRequest) Reset() {
|
||||
*x = HelloRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_murder_hello_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *HelloRequest) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*HelloRequest) ProtoMessage() {}
|
||||
|
||||
func (x *HelloRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_murder_hello_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use HelloRequest.ProtoReflect.Descriptor instead.
|
||||
func (*HelloRequest) Descriptor() ([]byte, []int) {
|
||||
return file_murder_hello_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
func (x *HelloRequest) GetCode() string {
|
||||
if x != nil {
|
||||
return x.Code
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type HelloResponse struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
|
@ -78,7 +31,7 @@ type HelloResponse struct {
|
|||
func (x *HelloResponse) Reset() {
|
||||
*x = HelloResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_murder_hello_proto_msgTypes[1]
|
||||
mi := &file_hello_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
@ -91,7 +44,7 @@ func (x *HelloResponse) String() string {
|
|||
func (*HelloResponse) ProtoMessage() {}
|
||||
|
||||
func (x *HelloResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_murder_hello_proto_msgTypes[1]
|
||||
mi := &file_hello_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
|
@ -104,7 +57,7 @@ func (x *HelloResponse) ProtoReflect() protoreflect.Message {
|
|||
|
||||
// Deprecated: Use HelloResponse.ProtoReflect.Descriptor instead.
|
||||
func (*HelloResponse) Descriptor() ([]byte, []int) {
|
||||
return file_murder_hello_proto_rawDescGZIP(), []int{1}
|
||||
return file_hello_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
func (x *HelloResponse) GetToken() string {
|
||||
|
@ -114,74 +67,148 @@ func (x *HelloResponse) GetToken() string {
|
|||
return ""
|
||||
}
|
||||
|
||||
var File_murder_hello_proto protoreflect.FileDescriptor
|
||||
type QueryCondition struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
var file_murder_hello_proto_rawDesc = []byte{
|
||||
0x0a, 0x12, 0x6d, 0x75, 0x72, 0x64, 0x65, 0x72, 0x2f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x2e, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x73, 0x65,
|
||||
0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0x22, 0x0a, 0x0c, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x25, 0x0a, 0x0d, 0x48, 0x65, 0x6c,
|
||||
0x6c, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f,
|
||||
0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
|
||||
0x32, 0x56, 0x0a, 0x0a, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x12, 0x48,
|
||||
0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1d, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c,
|
||||
0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65,
|
||||
0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x39, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x2e,
|
||||
0x69, 0x63, 0x65, 0x63, 0x68, 0x65, 0x6e, 0x2e, 0x63, 0x6e, 0x2f, 0x6d, 0x6f, 0x6e, 0x6f, 0x72,
|
||||
0x65, 0x70, 0x6f, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x70, 0x6b, 0x67, 0x2f,
|
||||
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x62, 0x72, 0x61, 0x68, 0x6d, 0x61, 0x2f, 0x6d, 0x75, 0x72,
|
||||
0x64, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
Page *int64 `protobuf:"zigzag64,1,opt,name=page,proto3,oneof" json:"page,omitempty"`
|
||||
Size *int64 `protobuf:"zigzag64,2,opt,name=size,proto3,oneof" json:"size,omitempty"`
|
||||
QueryMap map[string]string `protobuf:"bytes,3,rep,name=query_map,json=queryMap,proto3" json:"query_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
|
||||
}
|
||||
|
||||
func (x *QueryCondition) Reset() {
|
||||
*x = QueryCondition{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_hello_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *QueryCondition) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*QueryCondition) ProtoMessage() {}
|
||||
|
||||
func (x *QueryCondition) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_hello_proto_msgTypes[1]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use QueryCondition.ProtoReflect.Descriptor instead.
|
||||
func (*QueryCondition) Descriptor() ([]byte, []int) {
|
||||
return file_hello_proto_rawDescGZIP(), []int{1}
|
||||
}
|
||||
|
||||
func (x *QueryCondition) GetPage() int64 {
|
||||
if x != nil && x.Page != nil {
|
||||
return *x.Page
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *QueryCondition) GetSize() int64 {
|
||||
if x != nil && x.Size != nil {
|
||||
return *x.Size
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *QueryCondition) GetQueryMap() map[string]string {
|
||||
if x != nil {
|
||||
return x.QueryMap
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
var File_hello_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_hello_proto_rawDesc = []byte{
|
||||
0x0a, 0x0b, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x65,
|
||||
0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x1a, 0x0a,
|
||||
0x6e, 0x61, 0x6d, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x25, 0x0a, 0x0d, 0x48, 0x65,
|
||||
0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74,
|
||||
0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65,
|
||||
0x6e, 0x22, 0xdd, 0x01, 0x0a, 0x0e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x64, 0x69,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x12, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a,
|
||||
0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x48, 0x01, 0x52, 0x04, 0x73,
|
||||
0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f,
|
||||
0x6d, 0x61, 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x65, 0x78, 0x61, 0x6d,
|
||||
0x70, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72,
|
||||
0x79, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79,
|
||||
0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x71, 0x75, 0x65, 0x72, 0x79, 0x4d,
|
||||
0x61, 0x70, 0x1a, 0x3b, 0x0a, 0x0d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x70, 0x45, 0x6e,
|
||||
0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42,
|
||||
0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x69, 0x7a,
|
||||
0x65, 0x32, 0xa7, 0x01, 0x0a, 0x0a, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x57, 0x6f, 0x72, 0x6c, 0x64,
|
||||
0x12, 0x48, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1d, 0x2e, 0x65, 0x78, 0x61, 0x6d,
|
||||
0x70, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x48, 0x65, 0x6c, 0x6c,
|
||||
0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70,
|
||||
0x6c, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f,
|
||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0a, 0x47, 0x65,
|
||||
0x74, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x12, 0x1f, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70,
|
||||
0x6c, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79,
|
||||
0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x1e, 0x2e, 0x65, 0x78, 0x61, 0x6d,
|
||||
0x70, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x48, 0x65, 0x6c, 0x6c,
|
||||
0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x39, 0x5a, 0x37, 0x67,
|
||||
0x69, 0x74, 0x2e, 0x69, 0x63, 0x65, 0x63, 0x68, 0x65, 0x6e, 0x2e, 0x63, 0x6e, 0x2f, 0x6d, 0x6f,
|
||||
0x6e, 0x6f, 0x72, 0x65, 0x70, 0x6f, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x70,
|
||||
0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x62, 0x72, 0x61, 0x68, 0x6d, 0x61, 0x2f,
|
||||
0x6d, 0x75, 0x72, 0x64, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
file_murder_hello_proto_rawDescOnce sync.Once
|
||||
file_murder_hello_proto_rawDescData = file_murder_hello_proto_rawDesc
|
||||
file_hello_proto_rawDescOnce sync.Once
|
||||
file_hello_proto_rawDescData = file_hello_proto_rawDesc
|
||||
)
|
||||
|
||||
func file_murder_hello_proto_rawDescGZIP() []byte {
|
||||
file_murder_hello_proto_rawDescOnce.Do(func() {
|
||||
file_murder_hello_proto_rawDescData = protoimpl.X.CompressGZIP(file_murder_hello_proto_rawDescData)
|
||||
func file_hello_proto_rawDescGZIP() []byte {
|
||||
file_hello_proto_rawDescOnce.Do(func() {
|
||||
file_hello_proto_rawDescData = protoimpl.X.CompressGZIP(file_hello_proto_rawDescData)
|
||||
})
|
||||
return file_murder_hello_proto_rawDescData
|
||||
return file_hello_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_murder_hello_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
|
||||
var file_murder_hello_proto_goTypes = []interface{}{
|
||||
(*HelloRequest)(nil), // 0: example_service.HelloRequest
|
||||
(*HelloResponse)(nil), // 1: example_service.HelloResponse
|
||||
var file_hello_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
|
||||
var file_hello_proto_goTypes = []interface{}{
|
||||
(*HelloResponse)(nil), // 0: example_service.HelloResponse
|
||||
(*QueryCondition)(nil), // 1: example_service.QueryCondition
|
||||
nil, // 2: example_service.QueryCondition.QueryMapEntry
|
||||
(*HelloRequest)(nil), // 3: example_service.HelloRequest
|
||||
}
|
||||
var file_murder_hello_proto_depIdxs = []int32{
|
||||
0, // 0: example_service.HelloWorld.Login:input_type -> example_service.HelloRequest
|
||||
1, // 1: example_service.HelloWorld.Login:output_type -> example_service.HelloResponse
|
||||
1, // [1:2] is the sub-list for method output_type
|
||||
0, // [0:1] is the sub-list for method input_type
|
||||
0, // [0:0] is the sub-list for extension type_name
|
||||
0, // [0:0] is the sub-list for extension extendee
|
||||
0, // [0:0] is the sub-list for field type_name
|
||||
var file_hello_proto_depIdxs = []int32{
|
||||
2, // 0: example_service.QueryCondition.query_map:type_name -> example_service.QueryCondition.QueryMapEntry
|
||||
3, // 1: example_service.HelloWorld.Login:input_type -> example_service.HelloRequest
|
||||
1, // 2: example_service.HelloWorld.GetScripts:input_type -> example_service.QueryCondition
|
||||
0, // 3: example_service.HelloWorld.Login:output_type -> example_service.HelloResponse
|
||||
0, // 4: example_service.HelloWorld.GetScripts:output_type -> example_service.HelloResponse
|
||||
3, // [3:5] is the sub-list for method output_type
|
||||
1, // [1:3] is the sub-list for method input_type
|
||||
1, // [1:1] is the sub-list for extension type_name
|
||||
1, // [1:1] is the sub-list for extension extendee
|
||||
0, // [0:1] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_murder_hello_proto_init() }
|
||||
func file_murder_hello_proto_init() {
|
||||
if File_murder_hello_proto != nil {
|
||||
func init() { file_hello_proto_init() }
|
||||
func file_hello_proto_init() {
|
||||
if File_hello_proto != nil {
|
||||
return
|
||||
}
|
||||
file_name_proto_init()
|
||||
if !protoimpl.UnsafeEnabled {
|
||||
file_murder_hello_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*HelloRequest); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_murder_hello_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
|
||||
file_hello_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*HelloResponse); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
|
@ -193,23 +220,36 @@ func file_murder_hello_proto_init() {
|
|||
return nil
|
||||
}
|
||||
}
|
||||
file_hello_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*QueryCondition); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
file_hello_proto_msgTypes[1].OneofWrappers = []interface{}{}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_murder_hello_proto_rawDesc,
|
||||
RawDescriptor: file_hello_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 2,
|
||||
NumMessages: 3,
|
||||
NumExtensions: 0,
|
||||
NumServices: 1,
|
||||
},
|
||||
GoTypes: file_murder_hello_proto_goTypes,
|
||||
DependencyIndexes: file_murder_hello_proto_depIdxs,
|
||||
MessageInfos: file_murder_hello_proto_msgTypes,
|
||||
GoTypes: file_hello_proto_goTypes,
|
||||
DependencyIndexes: file_hello_proto_depIdxs,
|
||||
MessageInfos: file_hello_proto_msgTypes,
|
||||
}.Build()
|
||||
File_murder_hello_proto = out.File
|
||||
file_murder_hello_proto_rawDesc = nil
|
||||
file_murder_hello_proto_goTypes = nil
|
||||
file_murder_hello_proto_depIdxs = nil
|
||||
File_hello_proto = out.File
|
||||
file_hello_proto_rawDesc = nil
|
||||
file_hello_proto_goTypes = nil
|
||||
file_hello_proto_depIdxs = nil
|
||||
}
|
||||
|
|
|
@ -1,17 +1,19 @@
|
|||
syntax = "proto3";
|
||||
|
||||
import "name.proto";
|
||||
option go_package = "git.icechen.cn/monorepo/backend/pkg/proto/brahma/murder";
|
||||
package murder;
|
||||
|
||||
package example_service;
|
||||
|
||||
service HelloWorld {
|
||||
rpc Login (HelloRequest) returns (HelloResponse) {}
|
||||
}
|
||||
|
||||
message HelloRequest {
|
||||
string code = 1;
|
||||
service murder {
|
||||
rpc Login (murder.HelloRequest) returns (HelloResponse) {}
|
||||
rpc GetScripts(QueryCondition) returns(HelloResponse){}
|
||||
}
|
||||
|
||||
message HelloResponse {
|
||||
string token = 1;
|
||||
}
|
||||
}
|
||||
|
||||
message QueryCondition {
|
||||
optional sint64 page = 1;
|
||||
optional sint64 size = 2;
|
||||
map<string, string> query_map = 3;
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// versions:
|
||||
// - protoc-gen-go-grpc v1.2.0
|
||||
// - protoc v3.19.3
|
||||
// source: murder/hello.proto
|
||||
// source: hello.proto
|
||||
|
||||
package murder
|
||||
|
||||
|
@ -23,6 +23,7 @@ const _ = grpc.SupportPackageIsVersion7
|
|||
// 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 HelloWorldClient interface {
|
||||
Login(ctx context.Context, in *HelloRequest, opts ...grpc.CallOption) (*HelloResponse, error)
|
||||
GetScripts(ctx context.Context, in *QueryCondition, opts ...grpc.CallOption) (*HelloResponse, error)
|
||||
}
|
||||
|
||||
type helloWorldClient struct {
|
||||
|
@ -42,11 +43,21 @@ func (c *helloWorldClient) Login(ctx context.Context, in *HelloRequest, opts ...
|
|||
return out, nil
|
||||
}
|
||||
|
||||
func (c *helloWorldClient) GetScripts(ctx context.Context, in *QueryCondition, opts ...grpc.CallOption) (*HelloResponse, error) {
|
||||
out := new(HelloResponse)
|
||||
err := c.cc.Invoke(ctx, "/example_service.HelloWorld/GetScripts", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// HelloWorldServer is the server API for HelloWorld service.
|
||||
// All implementations must embed UnimplementedHelloWorldServer
|
||||
// for forward compatibility
|
||||
type HelloWorldServer interface {
|
||||
Login(context.Context, *HelloRequest) (*HelloResponse, error)
|
||||
GetScripts(context.Context, *QueryCondition) (*HelloResponse, error)
|
||||
mustEmbedUnimplementedHelloWorldServer()
|
||||
}
|
||||
|
||||
|
@ -57,6 +68,9 @@ type UnimplementedHelloWorldServer struct {
|
|||
func (UnimplementedHelloWorldServer) Login(context.Context, *HelloRequest) (*HelloResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Login not implemented")
|
||||
}
|
||||
func (UnimplementedHelloWorldServer) GetScripts(context.Context, *QueryCondition) (*HelloResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method GetScripts not implemented")
|
||||
}
|
||||
func (UnimplementedHelloWorldServer) mustEmbedUnimplementedHelloWorldServer() {}
|
||||
|
||||
// UnsafeHelloWorldServer may be embedded to opt out of forward compatibility for this service.
|
||||
|
@ -88,6 +102,24 @@ func _HelloWorld_Login_Handler(srv interface{}, ctx context.Context, dec func(in
|
|||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _HelloWorld_GetScripts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QueryCondition)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(HelloWorldServer).GetScripts(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/example_service.HelloWorld/GetScripts",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(HelloWorldServer).GetScripts(ctx, req.(*QueryCondition))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
// HelloWorld_ServiceDesc is the grpc.ServiceDesc for HelloWorld service.
|
||||
// It's only intended for direct use with grpc.RegisterService,
|
||||
// and not to be introspected or modified (even as a copy)
|
||||
|
@ -99,7 +131,11 @@ var HelloWorld_ServiceDesc = grpc.ServiceDesc{
|
|||
MethodName: "Login",
|
||||
Handler: _HelloWorld_Login_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "GetScripts",
|
||||
Handler: _HelloWorld_GetScripts_Handler,
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "murder/hello.proto",
|
||||
Metadata: "hello.proto",
|
||||
}
|
||||
|
|
|
@ -0,0 +1,145 @@
|
|||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.27.1
|
||||
// protoc v3.19.3
|
||||
// source: name.proto
|
||||
|
||||
package murder
|
||||
|
||||
import (
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
reflect "reflect"
|
||||
sync "sync"
|
||||
)
|
||||
|
||||
const (
|
||||
// Verify that this generated code is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
type HelloRequest struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"`
|
||||
}
|
||||
|
||||
func (x *HelloRequest) Reset() {
|
||||
*x = HelloRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_name_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *HelloRequest) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*HelloRequest) ProtoMessage() {}
|
||||
|
||||
func (x *HelloRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_name_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use HelloRequest.ProtoReflect.Descriptor instead.
|
||||
func (*HelloRequest) Descriptor() ([]byte, []int) {
|
||||
return file_name_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
func (x *HelloRequest) GetCode() string {
|
||||
if x != nil {
|
||||
return x.Code
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
var File_name_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_name_proto_rawDesc = []byte{
|
||||
0x0a, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x65, 0x78,
|
||||
0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0x22, 0x0a,
|
||||
0x0c, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a,
|
||||
0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64,
|
||||
0x65, 0x42, 0x39, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x2e, 0x69, 0x63, 0x65, 0x63, 0x68, 0x65, 0x6e,
|
||||
0x2e, 0x63, 0x6e, 0x2f, 0x6d, 0x6f, 0x6e, 0x6f, 0x72, 0x65, 0x70, 0x6f, 0x2f, 0x62, 0x61, 0x63,
|
||||
0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x62,
|
||||
0x72, 0x61, 0x68, 0x6d, 0x61, 0x2f, 0x6d, 0x75, 0x72, 0x64, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
file_name_proto_rawDescOnce sync.Once
|
||||
file_name_proto_rawDescData = file_name_proto_rawDesc
|
||||
)
|
||||
|
||||
func file_name_proto_rawDescGZIP() []byte {
|
||||
file_name_proto_rawDescOnce.Do(func() {
|
||||
file_name_proto_rawDescData = protoimpl.X.CompressGZIP(file_name_proto_rawDescData)
|
||||
})
|
||||
return file_name_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_name_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_name_proto_goTypes = []interface{}{
|
||||
(*HelloRequest)(nil), // 0: example_service.HelloRequest
|
||||
}
|
||||
var file_name_proto_depIdxs = []int32{
|
||||
0, // [0:0] is the sub-list for method output_type
|
||||
0, // [0:0] is the sub-list for method input_type
|
||||
0, // [0:0] is the sub-list for extension type_name
|
||||
0, // [0:0] is the sub-list for extension extendee
|
||||
0, // [0:0] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_name_proto_init() }
|
||||
func file_name_proto_init() {
|
||||
if File_name_proto != nil {
|
||||
return
|
||||
}
|
||||
if !protoimpl.UnsafeEnabled {
|
||||
file_name_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*HelloRequest); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_name_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 1,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
GoTypes: file_name_proto_goTypes,
|
||||
DependencyIndexes: file_name_proto_depIdxs,
|
||||
MessageInfos: file_name_proto_msgTypes,
|
||||
}.Build()
|
||||
File_name_proto = out.File
|
||||
file_name_proto_rawDesc = nil
|
||||
file_name_proto_goTypes = nil
|
||||
file_name_proto_depIdxs = nil
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
syntax = "proto3";
|
||||
|
||||
option go_package = "git.icechen.cn/monorepo/backend/pkg/proto/brahma/murder";
|
||||
package murder;
|
||||
|
||||
message HelloRequest {
|
||||
string code = 1;
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
syntax = "proto3";
|
||||
import "name.proto";
|
||||
option go_package = "git.icechen.cn/monorepo/backend/pkg/proto/brahma/murder";
|
||||
package murder;
|
||||
|
||||
message HelloResponse {
|
||||
string token = 1;
|
||||
}
|
||||
|
||||
message QueryCondition {
|
||||
optional sint64 page = 1;
|
||||
optional sint64 size = 2;
|
||||
map<string, string> query_map = 3;
|
||||
}
|
|
@ -0,0 +1,377 @@
|
|||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.27.1
|
||||
// protoc v3.19.3
|
||||
// source: script.proto
|
||||
|
||||
package script
|
||||
|
||||
import (
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
reflect "reflect"
|
||||
sync "sync"
|
||||
)
|
||||
|
||||
const (
|
||||
// Verify that this generated code is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
type Script struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
ScriptName string `protobuf:"bytes,1,opt,name=script_name,json=scriptName,proto3" json:"script_name,omitempty"`
|
||||
ScriptIntro string `protobuf:"bytes,2,opt,name=script_intro,json=scriptIntro,proto3" json:"script_intro,omitempty"`
|
||||
ScriptTag []string `protobuf:"bytes,3,rep,name=script_tag,json=scriptTag,proto3" json:"script_tag,omitempty"`
|
||||
ScriptScore float64 `protobuf:"fixed64,4,opt,name=script_score,json=scriptScore,proto3" json:"script_score,omitempty"`
|
||||
GroupDuration int64 `protobuf:"zigzag64,5,opt,name=group_duration,json=groupDuration,proto3" json:"group_duration,omitempty"`
|
||||
ScriptCoverUrl string `protobuf:"bytes,6,opt,name=script_cover_url,json=scriptCoverUrl,proto3" json:"script_cover_url,omitempty"`
|
||||
ScriptTextContext string `protobuf:"bytes,7,opt,name=script_text_context,json=scriptTextContext,proto3" json:"script_text_context,omitempty"`
|
||||
ScriptPlotScore float64 `protobuf:"fixed64,8,opt,name=script_plot_score,json=scriptPlotScore,proto3" json:"script_plot_score,omitempty"`
|
||||
ScriptImageContent []string `protobuf:"bytes,9,rep,name=script_image_content,json=scriptImageContent,proto3" json:"script_image_content,omitempty"`
|
||||
ScriptMalePlayer int64 `protobuf:"zigzag64,10,opt,name=script_male_player,json=scriptMalePlayer,proto3" json:"script_male_player,omitempty"`
|
||||
ScriptFemalePlayer int64 `protobuf:"zigzag64,11,opt,name=script_female_player,json=scriptFemalePlayer,proto3" json:"script_female_player,omitempty"`
|
||||
ScriptDifficultDegree string `protobuf:"bytes,12,opt,name=script_difficult_degree,json=scriptDifficultDegree,proto3" json:"script_difficult_degree,omitempty"`
|
||||
ScriptPlayerLimit int64 `protobuf:"zigzag64,13,opt,name=script_player_limit,json=scriptPlayerLimit,proto3" json:"script_player_limit,omitempty"`
|
||||
Uuid string `protobuf:"bytes,14,opt,name=uuid,proto3" json:"uuid,omitempty"`
|
||||
ScriptComplexScore float64 `protobuf:"fixed64,15,opt,name=script_complex_score,json=scriptComplexScore,proto3" json:"script_complex_score,omitempty"`
|
||||
Qid string `protobuf:"bytes,16,opt,name=qid,proto3" json:"qid,omitempty"`
|
||||
IsDel int64 `protobuf:"zigzag64,17,opt,name=is_del,json=isDel,proto3" json:"is_del,omitempty"`
|
||||
}
|
||||
|
||||
func (x *Script) Reset() {
|
||||
*x = Script{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_script_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *Script) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Script) ProtoMessage() {}
|
||||
|
||||
func (x *Script) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_script_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use Script.ProtoReflect.Descriptor instead.
|
||||
func (*Script) Descriptor() ([]byte, []int) {
|
||||
return file_script_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
func (x *Script) GetScriptName() string {
|
||||
if x != nil {
|
||||
return x.ScriptName
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *Script) GetScriptIntro() string {
|
||||
if x != nil {
|
||||
return x.ScriptIntro
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *Script) GetScriptTag() []string {
|
||||
if x != nil {
|
||||
return x.ScriptTag
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *Script) GetScriptScore() float64 {
|
||||
if x != nil {
|
||||
return x.ScriptScore
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *Script) GetGroupDuration() int64 {
|
||||
if x != nil {
|
||||
return x.GroupDuration
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *Script) GetScriptCoverUrl() string {
|
||||
if x != nil {
|
||||
return x.ScriptCoverUrl
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *Script) GetScriptTextContext() string {
|
||||
if x != nil {
|
||||
return x.ScriptTextContext
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *Script) GetScriptPlotScore() float64 {
|
||||
if x != nil {
|
||||
return x.ScriptPlotScore
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *Script) GetScriptImageContent() []string {
|
||||
if x != nil {
|
||||
return x.ScriptImageContent
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *Script) GetScriptMalePlayer() int64 {
|
||||
if x != nil {
|
||||
return x.ScriptMalePlayer
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *Script) GetScriptFemalePlayer() int64 {
|
||||
if x != nil {
|
||||
return x.ScriptFemalePlayer
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *Script) GetScriptDifficultDegree() string {
|
||||
if x != nil {
|
||||
return x.ScriptDifficultDegree
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *Script) GetScriptPlayerLimit() int64 {
|
||||
if x != nil {
|
||||
return x.ScriptPlayerLimit
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *Script) GetUuid() string {
|
||||
if x != nil {
|
||||
return x.Uuid
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *Script) GetScriptComplexScore() float64 {
|
||||
if x != nil {
|
||||
return x.ScriptComplexScore
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *Script) GetQid() string {
|
||||
if x != nil {
|
||||
return x.Qid
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *Script) GetIsDel() int64 {
|
||||
if x != nil {
|
||||
return x.IsDel
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
type Scripts struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Scripts []*Script `protobuf:"bytes,1,rep,name=scripts,proto3" json:"scripts,omitempty"`
|
||||
}
|
||||
|
||||
func (x *Scripts) Reset() {
|
||||
*x = Scripts{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_script_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *Scripts) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Scripts) ProtoMessage() {}
|
||||
|
||||
func (x *Scripts) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_script_proto_msgTypes[1]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use Scripts.ProtoReflect.Descriptor instead.
|
||||
func (*Scripts) Descriptor() ([]byte, []int) {
|
||||
return file_script_proto_rawDescGZIP(), []int{1}
|
||||
}
|
||||
|
||||
func (x *Scripts) GetScripts() []*Script {
|
||||
if x != nil {
|
||||
return x.Scripts
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
var File_script_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_script_proto_rawDesc = []byte{
|
||||
0x0a, 0x0c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06,
|
||||
0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x22, 0xa4, 0x05, 0x0a, 0x06, 0x53, 0x63, 0x72, 0x69, 0x70,
|
||||
0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x4e, 0x61,
|
||||
0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, 0x6e, 0x74,
|
||||
0x72, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
|
||||
0x49, 0x6e, 0x74, 0x72, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f,
|
||||
0x74, 0x61, 0x67, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x73, 0x63, 0x72, 0x69, 0x70,
|
||||
0x74, 0x54, 0x61, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x73,
|
||||
0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x73, 0x63, 0x72, 0x69,
|
||||
0x70, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x70,
|
||||
0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52,
|
||||
0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28,
|
||||
0x0a, 0x10, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x75,
|
||||
0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
|
||||
0x43, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x63, 0x72, 0x69,
|
||||
0x70, 0x74, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18,
|
||||
0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x54, 0x65, 0x78,
|
||||
0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x63, 0x72, 0x69,
|
||||
0x70, 0x74, 0x5f, 0x70, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x08, 0x20,
|
||||
0x01, 0x28, 0x01, 0x52, 0x0f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x50, 0x6c, 0x6f, 0x74, 0x53,
|
||||
0x63, 0x6f, 0x72, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69,
|
||||
0x6d, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x03,
|
||||
0x28, 0x09, 0x52, 0x12, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43,
|
||||
0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
|
||||
0x5f, 0x6d, 0x61, 0x6c, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01,
|
||||
0x28, 0x12, 0x52, 0x10, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x4d, 0x61, 0x6c, 0x65, 0x50, 0x6c,
|
||||
0x61, 0x79, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x66,
|
||||
0x65, 0x6d, 0x61, 0x6c, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01,
|
||||
0x28, 0x12, 0x52, 0x12, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x46, 0x65, 0x6d, 0x61, 0x6c, 0x65,
|
||||
0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x17, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
|
||||
0x5f, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x5f, 0x64, 0x65, 0x67, 0x72, 0x65,
|
||||
0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x44,
|
||||
0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x44, 0x65, 0x67, 0x72, 0x65, 0x65, 0x12, 0x2e,
|
||||
0x0a, 0x13, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f,
|
||||
0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x11, 0x73, 0x63, 0x72,
|
||||
0x69, 0x70, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12,
|
||||
0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75,
|
||||
0x69, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x63, 0x6f, 0x6d,
|
||||
0x70, 0x6c, 0x65, 0x78, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x01,
|
||||
0x52, 0x12, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x53,
|
||||
0x63, 0x6f, 0x72, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x71, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x03, 0x71, 0x69, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x6c,
|
||||
0x18, 0x11, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x69, 0x73, 0x44, 0x65, 0x6c, 0x22, 0x33, 0x0a,
|
||||
0x07, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x07, 0x73, 0x63, 0x72, 0x69,
|
||||
0x70, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x63, 0x72, 0x69,
|
||||
0x70, 0x74, 0x2e, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x07, 0x73, 0x63, 0x72, 0x69, 0x70,
|
||||
0x74, 0x73, 0x42, 0x41, 0x5a, 0x3f, 0x67, 0x69, 0x74, 0x2e, 0x69, 0x63, 0x65, 0x63, 0x68, 0x65,
|
||||
0x6e, 0x2e, 0x63, 0x6e, 0x2f, 0x6d, 0x6f, 0x6e, 0x6f, 0x72, 0x65, 0x70, 0x6f, 0x2f, 0x62, 0x61,
|
||||
0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f,
|
||||
0x62, 0x72, 0x61, 0x68, 0x6d, 0x61, 0x2f, 0x6d, 0x75, 0x72, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x73,
|
||||
0x63, 0x72, 0x69, 0x70, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
file_script_proto_rawDescOnce sync.Once
|
||||
file_script_proto_rawDescData = file_script_proto_rawDesc
|
||||
)
|
||||
|
||||
func file_script_proto_rawDescGZIP() []byte {
|
||||
file_script_proto_rawDescOnce.Do(func() {
|
||||
file_script_proto_rawDescData = protoimpl.X.CompressGZIP(file_script_proto_rawDescData)
|
||||
})
|
||||
return file_script_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_script_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
|
||||
var file_script_proto_goTypes = []interface{}{
|
||||
(*Script)(nil), // 0: script.Script
|
||||
(*Scripts)(nil), // 1: script.Scripts
|
||||
}
|
||||
var file_script_proto_depIdxs = []int32{
|
||||
0, // 0: script.Scripts.scripts:type_name -> script.Script
|
||||
1, // [1:1] is the sub-list for method output_type
|
||||
1, // [1:1] is the sub-list for method input_type
|
||||
1, // [1:1] is the sub-list for extension type_name
|
||||
1, // [1:1] is the sub-list for extension extendee
|
||||
0, // [0:1] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_script_proto_init() }
|
||||
func file_script_proto_init() {
|
||||
if File_script_proto != nil {
|
||||
return
|
||||
}
|
||||
if !protoimpl.UnsafeEnabled {
|
||||
file_script_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Script); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_script_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Scripts); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_script_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 2,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
GoTypes: file_script_proto_goTypes,
|
||||
DependencyIndexes: file_script_proto_depIdxs,
|
||||
MessageInfos: file_script_proto_msgTypes,
|
||||
}.Build()
|
||||
File_script_proto = out.File
|
||||
file_script_proto_rawDesc = nil
|
||||
file_script_proto_goTypes = nil
|
||||
file_script_proto_depIdxs = nil
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
syntax = "proto3";
|
||||
option go_package = "git.icechen.cn/monorepo/backend/pkg/proto/brahma/murders/script";
|
||||
package script;
|
||||
|
||||
message Script {
|
||||
string script_name = 1;
|
||||
string script_intro = 2;
|
||||
repeated string script_tag = 3;
|
||||
double script_score = 4;
|
||||
sint64 group_duration = 5;
|
||||
string script_cover_url = 6;
|
||||
string script_text_context = 7;
|
||||
double script_plot_score = 8;
|
||||
repeated string script_image_content = 9;
|
||||
sint64 script_male_player = 10;
|
||||
sint64 script_female_player = 11;
|
||||
string script_difficult_degree = 12;
|
||||
sint64 script_player_limit = 13;
|
||||
string uuid = 14;
|
||||
double script_complex_score = 15;
|
||||
string qid = 16;
|
||||
sint64 is_del = 17;
|
||||
}
|
||||
|
||||
message Scripts {
|
||||
repeated Script scripts = 1;
|
||||
}
|
|
@ -0,0 +1,184 @@
|
|||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.27.1
|
||||
// protoc v3.19.3
|
||||
// source: service.proto
|
||||
|
||||
package murders
|
||||
|
||||
import (
|
||||
script "git.icechen.cn/monorepo/backend/pkg/proto/brahma/murders/script"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
reflect "reflect"
|
||||
sync "sync"
|
||||
)
|
||||
|
||||
const (
|
||||
// Verify that this generated code is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
type QueryCondition struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Page *int64 `protobuf:"zigzag64,1,opt,name=page,proto3,oneof" json:"page,omitempty"`
|
||||
Size *int64 `protobuf:"zigzag64,2,opt,name=size,proto3,oneof" json:"size,omitempty"`
|
||||
QueryMap map[string]string `protobuf:"bytes,3,rep,name=query_map,json=queryMap,proto3" json:"query_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
|
||||
}
|
||||
|
||||
func (x *QueryCondition) Reset() {
|
||||
*x = QueryCondition{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_service_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *QueryCondition) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*QueryCondition) ProtoMessage() {}
|
||||
|
||||
func (x *QueryCondition) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_service_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use QueryCondition.ProtoReflect.Descriptor instead.
|
||||
func (*QueryCondition) Descriptor() ([]byte, []int) {
|
||||
return file_service_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
func (x *QueryCondition) GetPage() int64 {
|
||||
if x != nil && x.Page != nil {
|
||||
return *x.Page
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *QueryCondition) GetSize() int64 {
|
||||
if x != nil && x.Size != nil {
|
||||
return *x.Size
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *QueryCondition) GetQueryMap() map[string]string {
|
||||
if x != nil {
|
||||
return x.QueryMap
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
var File_service_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_service_proto_rawDesc = []byte{
|
||||
0x0a, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
|
||||
0x06, 0x6d, 0x75, 0x72, 0x64, 0x65, 0x72, 0x1a, 0x13, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2f,
|
||||
0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd4, 0x01, 0x0a,
|
||||
0x0e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12,
|
||||
0x17, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x48, 0x00, 0x52,
|
||||
0x04, 0x70, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x48, 0x01, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x88, 0x01,
|
||||
0x01, 0x12, 0x41, 0x0a, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x03,
|
||||
0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x75, 0x72, 0x64, 0x65, 0x72, 0x2e, 0x51, 0x75,
|
||||
0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x51, 0x75, 0x65,
|
||||
0x72, 0x79, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x71, 0x75, 0x65, 0x72,
|
||||
0x79, 0x4d, 0x61, 0x70, 0x1a, 0x3b, 0x0a, 0x0d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x70,
|
||||
0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
|
||||
0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73,
|
||||
0x69, 0x7a, 0x65, 0x32, 0x42, 0x0a, 0x07, 0x6d, 0x75, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x37,
|
||||
0x0a, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x12, 0x16, 0x2e, 0x6d,
|
||||
0x75, 0x72, 0x64, 0x65, 0x72, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x64, 0x69,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x0f, 0x2e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2e, 0x53, 0x63,
|
||||
0x72, 0x69, 0x70, 0x74, 0x73, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x2e, 0x69,
|
||||
0x63, 0x65, 0x63, 0x68, 0x65, 0x6e, 0x2e, 0x63, 0x6e, 0x2f, 0x6d, 0x6f, 0x6e, 0x6f, 0x72, 0x65,
|
||||
0x70, 0x6f, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x62, 0x72, 0x61, 0x68, 0x6d, 0x61, 0x2f, 0x6d, 0x75, 0x72, 0x64,
|
||||
0x65, 0x72, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
file_service_proto_rawDescOnce sync.Once
|
||||
file_service_proto_rawDescData = file_service_proto_rawDesc
|
||||
)
|
||||
|
||||
func file_service_proto_rawDescGZIP() []byte {
|
||||
file_service_proto_rawDescOnce.Do(func() {
|
||||
file_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_service_proto_rawDescData)
|
||||
})
|
||||
return file_service_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_service_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
|
||||
var file_service_proto_goTypes = []interface{}{
|
||||
(*QueryCondition)(nil), // 0: murder.QueryCondition
|
||||
nil, // 1: murder.QueryCondition.QueryMapEntry
|
||||
(*script.Scripts)(nil), // 2: script.Scripts
|
||||
}
|
||||
var file_service_proto_depIdxs = []int32{
|
||||
1, // 0: murder.QueryCondition.query_map:type_name -> murder.QueryCondition.QueryMapEntry
|
||||
0, // 1: murder.murders.GetScripts:input_type -> murder.QueryCondition
|
||||
2, // 2: murder.murders.GetScripts:output_type -> script.Scripts
|
||||
2, // [2:3] is the sub-list for method output_type
|
||||
1, // [1:2] is the sub-list for method input_type
|
||||
1, // [1:1] is the sub-list for extension type_name
|
||||
1, // [1:1] is the sub-list for extension extendee
|
||||
0, // [0:1] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_service_proto_init() }
|
||||
func file_service_proto_init() {
|
||||
if File_service_proto != nil {
|
||||
return
|
||||
}
|
||||
if !protoimpl.UnsafeEnabled {
|
||||
file_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*QueryCondition); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
file_service_proto_msgTypes[0].OneofWrappers = []interface{}{}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_service_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 2,
|
||||
NumExtensions: 0,
|
||||
NumServices: 1,
|
||||
},
|
||||
GoTypes: file_service_proto_goTypes,
|
||||
DependencyIndexes: file_service_proto_depIdxs,
|
||||
MessageInfos: file_service_proto_msgTypes,
|
||||
}.Build()
|
||||
File_service_proto = out.File
|
||||
file_service_proto_rawDesc = nil
|
||||
file_service_proto_goTypes = nil
|
||||
file_service_proto_depIdxs = nil
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
syntax = "proto3";
|
||||
import "script/script.proto";
|
||||
option go_package = "git.icechen.cn/monorepo/backend/pkg/proto/brahma/murders";
|
||||
package murder;
|
||||
|
||||
service murders{
|
||||
rpc GetScripts(QueryCondition) returns(script.Scripts){}
|
||||
}
|
||||
|
||||
message QueryCondition {
|
||||
optional sint64 page = 1;
|
||||
optional sint64 size = 2;
|
||||
map<string, string> query_map = 3;
|
||||
}
|
|
@ -0,0 +1,106 @@
|
|||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.2.0
|
||||
// - protoc v3.19.3
|
||||
// source: service.proto
|
||||
|
||||
package murders
|
||||
|
||||
import (
|
||||
context "context"
|
||||
script "git.icechen.cn/monorepo/backend/pkg/proto/brahma/murders/script"
|
||||
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
|
||||
|
||||
// MurdersClient is the client API for Murders 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 MurdersClient interface {
|
||||
GetScripts(ctx context.Context, in *QueryCondition, opts ...grpc.CallOption) (*script.Scripts, error)
|
||||
}
|
||||
|
||||
type murdersClient struct {
|
||||
cc grpc.ClientConnInterface
|
||||
}
|
||||
|
||||
func NewMurdersClient(cc grpc.ClientConnInterface) MurdersClient {
|
||||
return &murdersClient{cc}
|
||||
}
|
||||
|
||||
func (c *murdersClient) GetScripts(ctx context.Context, in *QueryCondition, opts ...grpc.CallOption) (*script.Scripts, error) {
|
||||
out := new(script.Scripts)
|
||||
err := c.cc.Invoke(ctx, "/murder.murders/GetScripts", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// MurdersServer is the server API for Murders service.
|
||||
// All implementations must embed UnimplementedMurdersServer
|
||||
// for forward compatibility
|
||||
type MurdersServer interface {
|
||||
GetScripts(context.Context, *QueryCondition) (*script.Scripts, error)
|
||||
mustEmbedUnimplementedMurdersServer()
|
||||
}
|
||||
|
||||
// UnimplementedMurdersServer must be embedded to have forward compatible implementations.
|
||||
type UnimplementedMurdersServer struct {
|
||||
}
|
||||
|
||||
func (UnimplementedMurdersServer) GetScripts(context.Context, *QueryCondition) (*script.Scripts, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method GetScripts not implemented")
|
||||
}
|
||||
func (UnimplementedMurdersServer) mustEmbedUnimplementedMurdersServer() {}
|
||||
|
||||
// UnsafeMurdersServer may be embedded to opt out of forward compatibility for this service.
|
||||
// Use of this interface is not recommended, as added methods to MurdersServer will
|
||||
// result in compilation errors.
|
||||
type UnsafeMurdersServer interface {
|
||||
mustEmbedUnimplementedMurdersServer()
|
||||
}
|
||||
|
||||
func RegisterMurdersServer(s grpc.ServiceRegistrar, srv MurdersServer) {
|
||||
s.RegisterService(&Murders_ServiceDesc, srv)
|
||||
}
|
||||
|
||||
func _Murders_GetScripts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QueryCondition)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(MurdersServer).GetScripts(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/murder.murders/GetScripts",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(MurdersServer).GetScripts(ctx, req.(*QueryCondition))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
// Murders_ServiceDesc is the grpc.ServiceDesc for Murders service.
|
||||
// It's only intended for direct use with grpc.RegisterService,
|
||||
// and not to be introspected or modified (even as a copy)
|
||||
var Murders_ServiceDesc = grpc.ServiceDesc{
|
||||
ServiceName: "murder.murders",
|
||||
HandlerType: (*MurdersServer)(nil),
|
||||
Methods: []grpc.MethodDesc{
|
||||
{
|
||||
MethodName: "GetScripts",
|
||||
Handler: _Murders_GetScripts_Handler,
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "service.proto",
|
||||
}
|
|
@ -0,0 +1,265 @@
|
|||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.27.1
|
||||
// protoc v3.19.3
|
||||
// source: tag.proto
|
||||
|
||||
package tag
|
||||
|
||||
import (
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
reflect "reflect"
|
||||
sync "sync"
|
||||
)
|
||||
|
||||
const (
|
||||
// Verify that this generated code is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
type Category struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
|
||||
Uuid string `protobuf:"bytes,2,opt,name=uuid,proto3" json:"uuid,omitempty"`
|
||||
IsDel int64 `protobuf:"zigzag64,3,opt,name=is_del,json=isDel,proto3" json:"is_del,omitempty"`
|
||||
Tags []*Tag `protobuf:"bytes,4,rep,name=tags,proto3" json:"tags,omitempty"`
|
||||
}
|
||||
|
||||
func (x *Category) Reset() {
|
||||
*x = Category{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_tag_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *Category) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Category) ProtoMessage() {}
|
||||
|
||||
func (x *Category) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_tag_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use Category.ProtoReflect.Descriptor instead.
|
||||
func (*Category) Descriptor() ([]byte, []int) {
|
||||
return file_tag_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
func (x *Category) GetValue() string {
|
||||
if x != nil {
|
||||
return x.Value
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *Category) GetUuid() string {
|
||||
if x != nil {
|
||||
return x.Uuid
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *Category) GetIsDel() int64 {
|
||||
if x != nil {
|
||||
return x.IsDel
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *Category) GetTags() []*Tag {
|
||||
if x != nil {
|
||||
return x.Tags
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type Tag struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
|
||||
Uuid int64 `protobuf:"zigzag64,2,opt,name=uuid,proto3" json:"uuid,omitempty"`
|
||||
IsDel int64 `protobuf:"zigzag64,3,opt,name=is_del,json=isDel,proto3" json:"is_del,omitempty"`
|
||||
Cs *Category `protobuf:"bytes,4,opt,name=cs,proto3" json:"cs,omitempty"`
|
||||
}
|
||||
|
||||
func (x *Tag) Reset() {
|
||||
*x = Tag{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_tag_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *Tag) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Tag) ProtoMessage() {}
|
||||
|
||||
func (x *Tag) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_tag_proto_msgTypes[1]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use Tag.ProtoReflect.Descriptor instead.
|
||||
func (*Tag) Descriptor() ([]byte, []int) {
|
||||
return file_tag_proto_rawDescGZIP(), []int{1}
|
||||
}
|
||||
|
||||
func (x *Tag) GetValue() string {
|
||||
if x != nil {
|
||||
return x.Value
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *Tag) GetUuid() int64 {
|
||||
if x != nil {
|
||||
return x.Uuid
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *Tag) GetIsDel() int64 {
|
||||
if x != nil {
|
||||
return x.IsDel
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *Tag) GetCs() *Category {
|
||||
if x != nil {
|
||||
return x.Cs
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
var File_tag_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_tag_proto_rawDesc = []byte{
|
||||
0x0a, 0x09, 0x74, 0x61, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x03, 0x74, 0x61, 0x67,
|
||||
0x22, 0x69, 0x0a, 0x08, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05,
|
||||
0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,
|
||||
0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x6c,
|
||||
0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x69, 0x73, 0x44, 0x65, 0x6c, 0x12, 0x1c, 0x0a,
|
||||
0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x74, 0x61,
|
||||
0x67, 0x2e, 0x54, 0x61, 0x67, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0x65, 0x0a, 0x03, 0x54,
|
||||
0x61, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x15, 0x0a, 0x06,
|
||||
0x69, 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x69, 0x73,
|
||||
0x44, 0x65, 0x6c, 0x12, 0x1d, 0x0a, 0x02, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||
0x0d, 0x2e, 0x74, 0x61, 0x67, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x02,
|
||||
0x63, 0x73, 0x42, 0x3e, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x2e, 0x69, 0x63, 0x65, 0x63, 0x68, 0x65,
|
||||
0x6e, 0x2e, 0x63, 0x6e, 0x2f, 0x6d, 0x6f, 0x6e, 0x6f, 0x72, 0x65, 0x70, 0x6f, 0x2f, 0x62, 0x61,
|
||||
0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f,
|
||||
0x62, 0x72, 0x61, 0x68, 0x6d, 0x61, 0x2f, 0x6d, 0x75, 0x72, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x74,
|
||||
0x61, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
file_tag_proto_rawDescOnce sync.Once
|
||||
file_tag_proto_rawDescData = file_tag_proto_rawDesc
|
||||
)
|
||||
|
||||
func file_tag_proto_rawDescGZIP() []byte {
|
||||
file_tag_proto_rawDescOnce.Do(func() {
|
||||
file_tag_proto_rawDescData = protoimpl.X.CompressGZIP(file_tag_proto_rawDescData)
|
||||
})
|
||||
return file_tag_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_tag_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
|
||||
var file_tag_proto_goTypes = []interface{}{
|
||||
(*Category)(nil), // 0: tag.Category
|
||||
(*Tag)(nil), // 1: tag.Tag
|
||||
}
|
||||
var file_tag_proto_depIdxs = []int32{
|
||||
1, // 0: tag.Category.tags:type_name -> tag.Tag
|
||||
0, // 1: tag.Tag.cs:type_name -> tag.Category
|
||||
2, // [2:2] is the sub-list for method output_type
|
||||
2, // [2:2] is the sub-list for method input_type
|
||||
2, // [2:2] is the sub-list for extension type_name
|
||||
2, // [2:2] is the sub-list for extension extendee
|
||||
0, // [0:2] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_tag_proto_init() }
|
||||
func file_tag_proto_init() {
|
||||
if File_tag_proto != nil {
|
||||
return
|
||||
}
|
||||
if !protoimpl.UnsafeEnabled {
|
||||
file_tag_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Category); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_tag_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Tag); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_tag_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 2,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
GoTypes: file_tag_proto_goTypes,
|
||||
DependencyIndexes: file_tag_proto_depIdxs,
|
||||
MessageInfos: file_tag_proto_msgTypes,
|
||||
}.Build()
|
||||
File_tag_proto = out.File
|
||||
file_tag_proto_rawDesc = nil
|
||||
file_tag_proto_goTypes = nil
|
||||
file_tag_proto_depIdxs = nil
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
syntax = "proto3";
|
||||
option go_package = "git.icechen.cn/monorepo/backend/pkg/proto/brahma/murders/tag";
|
||||
package tag;
|
||||
|
||||
message Category {
|
||||
string value = 1;
|
||||
string uuid = 2;
|
||||
sint64 is_del = 3;
|
||||
repeated Tag tags = 4;
|
||||
}
|
||||
|
||||
message Tag {
|
||||
string value = 1;
|
||||
sint64 uuid = 2;
|
||||
sint64 is_del = 3;
|
||||
Category cs = 4;
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
package rpc
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"git.icechen.cn/monorepo/backend/pkg/env"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
ctxLogger "github.com/luizsuper/ctxLoggers"
|
||||
"go.uber.org/zap"
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/metadata"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
// Interceptor 将requestId 存入ctx,记录出入参数,记录时间
|
||||
func Interceptor(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo,
|
||||
handler grpc.UnaryHandler) (interface{}, error) {
|
||||
serverName := env.Namespace + "-" + env.AppName + "-" + "service"
|
||||
startTime := time.Now()
|
||||
md, ok := metadata.FromIncomingContext(ctx)
|
||||
if !ok {
|
||||
fmt.Printf("get metadata error")
|
||||
}
|
||||
if t, ok := md[strings.ToLower(fiber.HeaderXRequestID)]; ok {
|
||||
ctx = context.WithValue(ctx, fiber.HeaderXRequestID, t[0])
|
||||
}
|
||||
ctxLogger.Debug(ctx, serverName, zap.String("gRPC method", fmt.Sprintf(" %s", info.FullMethod)), zap.Any("req", req))
|
||||
resp, err := handler(ctx, req)
|
||||
costSeconds := time.Since(startTime).Seconds()
|
||||
if err != nil {
|
||||
ctxLogger.Debug(ctx, serverName, zap.String("gRPC method", fmt.Sprintf(" %s", info.FullMethod)), zap.Float64("cost_time", costSeconds), zap.String("errorReason", err.Error()))
|
||||
} else {
|
||||
ctxLogger.Debug(ctx, serverName, zap.String("gRPC method", fmt.Sprintf(" %s, %v", info.FullMethod, resp)), zap.Float64("cost_time", costSeconds), zap.Any("resp", resp))
|
||||
}
|
||||
return resp, err
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package times
|
||||
|
||||
import "time"
|
||||
|
||||
var (
|
||||
cst *time.Location
|
||||
)
|
||||
|
||||
func init() {
|
||||
var err error
|
||||
if cst, err = time.LoadLocation("Asia/Shanghai"); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
// 默认设置为中国时区
|
||||
time.Local = cst
|
||||
}
|
||||
|
||||
// CSTLayout China Standard Time Layout
|
||||
const CSTLayout = "2006-01-02 15:04:05"
|
||||
|
||||
func CSTLayoutString() string {
|
||||
ts := time.Now()
|
||||
return ts.In(cst).Format(CSTLayout)
|
||||
}
|
Loading…
Reference in New Issue