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"
|
"fmt"
|
||||||
"git.icechen.cn/monorepo/backend/app/brahma/api/murder/internal/error_process"
|
"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/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/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"
|
"github.com/gofiber/fiber/v2"
|
||||||
ctxLogger "github.com/luizsuper/ctxLoggers"
|
ctxLogger "github.com/luizsuper/ctxLoggers"
|
||||||
|
"github.com/pkg/errors"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
|
"google.golang.org/grpc"
|
||||||
|
"log"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
pageIsNotInt = api.WarpFError(errors.New("page 参数错误"))
|
||||||
|
limitIsNotInt = api.WarpFError(errors.New("limit 参数错误"))
|
||||||
)
|
)
|
||||||
|
|
||||||
func GetScriptsH(ctx *fiber.Ctx) error {
|
func GetScriptsH(ctx *fiber.Ctx) error {
|
||||||
|
@ -76,23 +89,56 @@ func DeleteScriptsH(ctx *fiber.Ctx) error {
|
||||||
return ctx.JSON(success(nil))
|
return ctx.JSON(success(nil))
|
||||||
}
|
}
|
||||||
|
|
||||||
//func HelloWorld() error {
|
func GetScriptApi(ctx *fiber.Ctx) error {
|
||||||
// // Set up a connection to the server.
|
//todo:调通中间层
|
||||||
// conn, err := grpc.Dial("localhost:3000", grpc.WithInsecure(), grpc.WithBlock())
|
//todo:换成服务
|
||||||
// if err != nil {
|
conn, err := grpc.Dial("localhost:3000", grpc.WithInsecure(), grpc.WithBlock())
|
||||||
// log.Fatalf("did not connect: %v", err)
|
if err != nil {
|
||||||
// }
|
log.Fatalf("did not connect: %v", err)
|
||||||
// defer conn.Close()
|
}
|
||||||
// c := murder.NewHelloWorldClient(conn)
|
|
||||||
//
|
outgoingContext, cancelFunc := pkg.TransFiberCtx2NewOutgoingContext(ctx, 3*time.Second)
|
||||||
// // Contact the server and print out its response.
|
defer conn.Close()
|
||||||
// ctx, cancel := context.WithTimeout(context.Background(), time.Second)
|
defer cancelFunc()
|
||||||
// defer cancel()
|
c := murders.NewMurdersClient(conn)
|
||||||
// r, err := c.Login(ctx, &murder.HelloRequest{Code: "lht"})
|
|
||||||
//
|
page := ctx.Query("page", "1")
|
||||||
// if err != nil {
|
limit := ctx.Query("size", "10")
|
||||||
// log.Fatalf("could not greet: %v", err)
|
p, err := strconv.Atoi(page)
|
||||||
// }
|
if err != nil {
|
||||||
// log.Printf("Greeting: %s", r.Token)
|
ctxLogger.Error(ctx.UserContext(), pageIsNotInt.Error(), zap.String("page", page))
|
||||||
// return nil
|
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"
|
tag = "/tag"
|
||||||
category = "/category"
|
category = "/category"
|
||||||
scripts = "/scripts"
|
scripts = "/scripts"
|
||||||
hello = "/hello"
|
script = "/script"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -110,6 +110,10 @@ func routerInit() {
|
||||||
scriptsGroup.Delete("", func(ctx *fiber.Ctx) error {
|
scriptsGroup.Delete("", func(ctx *fiber.Ctx) error {
|
||||||
return handler.DeleteScriptsH(ctx)
|
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
|
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() {
|
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
|
package main
|
||||||
|
|
||||||
import (
|
import servesr "git.icechen.cn/monorepo/backend/app/brahma/service/token/internal/server"
|
||||||
servesr "git.icechen.cn/monorepo/backend/app/brahma/service/token/internal/server"
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
servesr.RpcServer()
|
servesr.RpcServer()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
2
go.mod
2
go.mod
|
@ -8,7 +8,7 @@ require (
|
||||||
github.com/google/uuid v1.1.2
|
github.com/google/uuid v1.1.2
|
||||||
github.com/jinzhu/copier v0.3.4
|
github.com/jinzhu/copier v0.3.4
|
||||||
github.com/larksuite/oapi-sdk-go v1.1.43
|
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/pkg/errors v0.9.1
|
||||||
github.com/spf13/cast v1.4.1
|
github.com/spf13/cast v1.4.1
|
||||||
go.etcd.io/etcd/client/v3 v3.5.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-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 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI=
|
||||||
github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
|
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.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 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
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-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 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A=
|
||||||
github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
|
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.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8=
|
||||||
github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU=
|
github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no=
|
||||||
github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs=
|
|
||||||
github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA=
|
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.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.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-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 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE=
|
||||||
github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
|
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.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/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/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.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/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.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 h1:DVUAbiYOfE+1yPyTKYofxcEpB027nhq9Lfk2DaLX960=
|
||||||
github.com/larksuite/oapi-sdk-go v1.1.43/go.mod h1:7ybKAbVdKBjXuX0YrMTfnWUyCaIe/zeI1wqjNfN9XOk=
|
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=
|
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/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 h1:A7H3tT8DhTz8u65w+JRpiBxM4dINQhUXAZnhBa2xeOE=
|
||||||
github.com/lestrrat-go/strftime v1.0.5/go.mod h1:E1nN3pCbtMSu1yjSVeyuRFVm/U0xoR76fd03sz+Qz4g=
|
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.4 h1:0RQiu7/yBgwA3okueOb4C4ltxbbhZHcrBXewwHjUCDA=
|
||||||
github.com/luizsuper/ctxLoggers v1.0.3/go.mod h1:wjnYowzWZwBJ7eWVwtcZN9Vbb4DdW8VHKSXzCvsdjIo=
|
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.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 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y=
|
||||||
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
|
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.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.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
|
||||||
github.com/onsi/gomega v1.10.2/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.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pkg/errors v0.8.1/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=
|
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.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
|
||||||
github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
|
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/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.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
||||||
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
||||||
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
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.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
github.com/yuin/goldmark v1.2.1/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=
|
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 h1:v28cktvBq+7vGyJXF8G+rWJmj+1XUmMtqcLnH8hDocM=
|
||||||
go.etcd.io/etcd/api/v3 v3.5.1/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs=
|
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=
|
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 h1:N4oPlghZwYG55MlU6LXk/Zp00FVNE9X9wrYO8CEs4lc=
|
||||||
go.uber.org/zap v1.20.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw=
|
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-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-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-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-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-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 h1:0es+/5331RGQPcXlMfP+WrnIIS6dNnNRe0WB02W0F4M=
|
||||||
golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
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=
|
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-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-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-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-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-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/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-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-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-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 h1:0jf+tOCoZ3LyutmCOWpVni1chK4VfFLhRsDK7MhqGRY=
|
||||||
golang.org/x/sys v0.0.0-20220111092808-5a964db01320/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
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=
|
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.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.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-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.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/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 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-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-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/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/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=
|
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中
|
// FibberUserCtxWithTraceHandler 把fibberCtx的traceId 置入UserCtx中
|
||||||
func FibberUserCtxWithTraceHandler(c *fiber.Ctx) error {
|
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()
|
return c.Next()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,8 @@ import (
|
||||||
|
|
||||||
var (
|
var (
|
||||||
EndPoints = "ENDPOINTS"
|
EndPoints = "ENDPOINTS"
|
||||||
EndAddress = "etcd." + env.Namespace + ":2379"
|
//EndAddress = "etcd." + env.Namespace + ":2379"
|
||||||
|
EndAddress = "127.0.0.1:2379"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
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:
|
// versions:
|
||||||
// protoc-gen-go v1.27.1
|
// protoc-gen-go v1.27.1
|
||||||
// protoc v3.19.3
|
// protoc v3.19.3
|
||||||
// source: murder/hello.proto
|
// source: hello.proto
|
||||||
|
|
||||||
package murder
|
package murder
|
||||||
|
|
||||||
|
@ -20,53 +20,6 @@ const (
|
||||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
_ = 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 {
|
type HelloResponse struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
|
@ -78,7 +31,7 @@ type HelloResponse struct {
|
||||||
func (x *HelloResponse) Reset() {
|
func (x *HelloResponse) Reset() {
|
||||||
*x = HelloResponse{}
|
*x = HelloResponse{}
|
||||||
if protoimpl.UnsafeEnabled {
|
if protoimpl.UnsafeEnabled {
|
||||||
mi := &file_murder_hello_proto_msgTypes[1]
|
mi := &file_hello_proto_msgTypes[0]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
|
@ -91,7 +44,7 @@ func (x *HelloResponse) String() string {
|
||||||
func (*HelloResponse) ProtoMessage() {}
|
func (*HelloResponse) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *HelloResponse) ProtoReflect() protoreflect.Message {
|
func (x *HelloResponse) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_murder_hello_proto_msgTypes[1]
|
mi := &file_hello_proto_msgTypes[0]
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
@ -104,7 +57,7 @@ func (x *HelloResponse) ProtoReflect() protoreflect.Message {
|
||||||
|
|
||||||
// Deprecated: Use HelloResponse.ProtoReflect.Descriptor instead.
|
// Deprecated: Use HelloResponse.ProtoReflect.Descriptor instead.
|
||||||
func (*HelloResponse) Descriptor() ([]byte, []int) {
|
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 {
|
func (x *HelloResponse) GetToken() string {
|
||||||
|
@ -114,74 +67,148 @@ func (x *HelloResponse) GetToken() string {
|
||||||
return ""
|
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{
|
Page *int64 `protobuf:"zigzag64,1,opt,name=page,proto3,oneof" json:"page,omitempty"`
|
||||||
0x0a, 0x12, 0x6d, 0x75, 0x72, 0x64, 0x65, 0x72, 0x2f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x2e, 0x70,
|
Size *int64 `protobuf:"zigzag64,2,opt,name=size,proto3,oneof" json:"size,omitempty"`
|
||||||
0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x73, 0x65,
|
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"`
|
||||||
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,
|
func (x *QueryCondition) Reset() {
|
||||||
0x6c, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f,
|
*x = QueryCondition{}
|
||||||
0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
|
if protoimpl.UnsafeEnabled {
|
||||||
0x32, 0x56, 0x0a, 0x0a, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x12, 0x48,
|
mi := &file_hello_proto_msgTypes[1]
|
||||||
0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1d, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c,
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52,
|
ms.StoreMessageInfo(mi)
|
||||||
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,
|
func (x *QueryCondition) String() string {
|
||||||
0x65, 0x70, 0x6f, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x70, 0x6b, 0x67, 0x2f,
|
return protoimpl.X.MessageStringOf(x)
|
||||||
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,
|
|
||||||
|
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 (
|
var (
|
||||||
file_murder_hello_proto_rawDescOnce sync.Once
|
file_hello_proto_rawDescOnce sync.Once
|
||||||
file_murder_hello_proto_rawDescData = file_murder_hello_proto_rawDesc
|
file_hello_proto_rawDescData = file_hello_proto_rawDesc
|
||||||
)
|
)
|
||||||
|
|
||||||
func file_murder_hello_proto_rawDescGZIP() []byte {
|
func file_hello_proto_rawDescGZIP() []byte {
|
||||||
file_murder_hello_proto_rawDescOnce.Do(func() {
|
file_hello_proto_rawDescOnce.Do(func() {
|
||||||
file_murder_hello_proto_rawDescData = protoimpl.X.CompressGZIP(file_murder_hello_proto_rawDescData)
|
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_hello_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
|
||||||
var file_murder_hello_proto_goTypes = []interface{}{
|
var file_hello_proto_goTypes = []interface{}{
|
||||||
(*HelloRequest)(nil), // 0: example_service.HelloRequest
|
(*HelloResponse)(nil), // 0: example_service.HelloResponse
|
||||||
(*HelloResponse)(nil), // 1: 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{
|
var file_hello_proto_depIdxs = []int32{
|
||||||
0, // 0: example_service.HelloWorld.Login:input_type -> example_service.HelloRequest
|
2, // 0: example_service.QueryCondition.query_map:type_name -> example_service.QueryCondition.QueryMapEntry
|
||||||
1, // 1: example_service.HelloWorld.Login:output_type -> example_service.HelloResponse
|
3, // 1: example_service.HelloWorld.Login:input_type -> example_service.HelloRequest
|
||||||
1, // [1:2] is the sub-list for method output_type
|
1, // 2: example_service.HelloWorld.GetScripts:input_type -> example_service.QueryCondition
|
||||||
0, // [0:1] is the sub-list for method input_type
|
0, // 3: example_service.HelloWorld.Login:output_type -> example_service.HelloResponse
|
||||||
0, // [0:0] is the sub-list for extension type_name
|
0, // 4: example_service.HelloWorld.GetScripts:output_type -> example_service.HelloResponse
|
||||||
0, // [0:0] is the sub-list for extension extendee
|
3, // [3:5] is the sub-list for method output_type
|
||||||
0, // [0:0] is the sub-list for field type_name
|
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 init() { file_hello_proto_init() }
|
||||||
func file_murder_hello_proto_init() {
|
func file_hello_proto_init() {
|
||||||
if File_murder_hello_proto != nil {
|
if File_hello_proto != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
file_name_proto_init()
|
||||||
if !protoimpl.UnsafeEnabled {
|
if !protoimpl.UnsafeEnabled {
|
||||||
file_murder_hello_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
file_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{} {
|
|
||||||
switch v := v.(*HelloResponse); i {
|
switch v := v.(*HelloResponse); i {
|
||||||
case 0:
|
case 0:
|
||||||
return &v.state
|
return &v.state
|
||||||
|
@ -193,23 +220,36 @@ func file_murder_hello_proto_init() {
|
||||||
return nil
|
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{}
|
type x struct{}
|
||||||
out := protoimpl.TypeBuilder{
|
out := protoimpl.TypeBuilder{
|
||||||
File: protoimpl.DescBuilder{
|
File: protoimpl.DescBuilder{
|
||||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
RawDescriptor: file_murder_hello_proto_rawDesc,
|
RawDescriptor: file_hello_proto_rawDesc,
|
||||||
NumEnums: 0,
|
NumEnums: 0,
|
||||||
NumMessages: 2,
|
NumMessages: 3,
|
||||||
NumExtensions: 0,
|
NumExtensions: 0,
|
||||||
NumServices: 1,
|
NumServices: 1,
|
||||||
},
|
},
|
||||||
GoTypes: file_murder_hello_proto_goTypes,
|
GoTypes: file_hello_proto_goTypes,
|
||||||
DependencyIndexes: file_murder_hello_proto_depIdxs,
|
DependencyIndexes: file_hello_proto_depIdxs,
|
||||||
MessageInfos: file_murder_hello_proto_msgTypes,
|
MessageInfos: file_hello_proto_msgTypes,
|
||||||
}.Build()
|
}.Build()
|
||||||
File_murder_hello_proto = out.File
|
File_hello_proto = out.File
|
||||||
file_murder_hello_proto_rawDesc = nil
|
file_hello_proto_rawDesc = nil
|
||||||
file_murder_hello_proto_goTypes = nil
|
file_hello_proto_goTypes = nil
|
||||||
file_murder_hello_proto_depIdxs = nil
|
file_hello_proto_depIdxs = nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +1,19 @@
|
||||||
syntax = "proto3";
|
syntax = "proto3";
|
||||||
|
import "name.proto";
|
||||||
option go_package = "git.icechen.cn/monorepo/backend/pkg/proto/brahma/murder";
|
option go_package = "git.icechen.cn/monorepo/backend/pkg/proto/brahma/murder";
|
||||||
|
package murder;
|
||||||
|
|
||||||
package example_service;
|
service murder {
|
||||||
|
rpc Login (murder.HelloRequest) returns (HelloResponse) {}
|
||||||
service HelloWorld {
|
rpc GetScripts(QueryCondition) returns(HelloResponse){}
|
||||||
rpc Login (HelloRequest) returns (HelloResponse) {}
|
|
||||||
}
|
|
||||||
|
|
||||||
message HelloRequest {
|
|
||||||
string code = 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
message HelloResponse {
|
message HelloResponse {
|
||||||
string token = 1;
|
string token = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message QueryCondition {
|
||||||
|
optional sint64 page = 1;
|
||||||
|
optional sint64 size = 2;
|
||||||
|
map<string, string> query_map = 3;
|
||||||
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
// versions:
|
// versions:
|
||||||
// - protoc-gen-go-grpc v1.2.0
|
// - protoc-gen-go-grpc v1.2.0
|
||||||
// - protoc v3.19.3
|
// - protoc v3.19.3
|
||||||
// source: murder/hello.proto
|
// source: hello.proto
|
||||||
|
|
||||||
package murder
|
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.
|
// 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 {
|
type HelloWorldClient interface {
|
||||||
Login(ctx context.Context, in *HelloRequest, opts ...grpc.CallOption) (*HelloResponse, error)
|
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 {
|
type helloWorldClient struct {
|
||||||
|
@ -42,11 +43,21 @@ func (c *helloWorldClient) Login(ctx context.Context, in *HelloRequest, opts ...
|
||||||
return out, nil
|
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.
|
// HelloWorldServer is the server API for HelloWorld service.
|
||||||
// All implementations must embed UnimplementedHelloWorldServer
|
// All implementations must embed UnimplementedHelloWorldServer
|
||||||
// for forward compatibility
|
// for forward compatibility
|
||||||
type HelloWorldServer interface {
|
type HelloWorldServer interface {
|
||||||
Login(context.Context, *HelloRequest) (*HelloResponse, error)
|
Login(context.Context, *HelloRequest) (*HelloResponse, error)
|
||||||
|
GetScripts(context.Context, *QueryCondition) (*HelloResponse, error)
|
||||||
mustEmbedUnimplementedHelloWorldServer()
|
mustEmbedUnimplementedHelloWorldServer()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,6 +68,9 @@ type UnimplementedHelloWorldServer struct {
|
||||||
func (UnimplementedHelloWorldServer) Login(context.Context, *HelloRequest) (*HelloResponse, error) {
|
func (UnimplementedHelloWorldServer) Login(context.Context, *HelloRequest) (*HelloResponse, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method Login not implemented")
|
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() {}
|
func (UnimplementedHelloWorldServer) mustEmbedUnimplementedHelloWorldServer() {}
|
||||||
|
|
||||||
// UnsafeHelloWorldServer may be embedded to opt out of forward compatibility for this service.
|
// 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)
|
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.
|
// HelloWorld_ServiceDesc is the grpc.ServiceDesc for HelloWorld service.
|
||||||
// It's only intended for direct use with grpc.RegisterService,
|
// It's only intended for direct use with grpc.RegisterService,
|
||||||
// and not to be introspected or modified (even as a copy)
|
// and not to be introspected or modified (even as a copy)
|
||||||
|
@ -99,7 +131,11 @@ var HelloWorld_ServiceDesc = grpc.ServiceDesc{
|
||||||
MethodName: "Login",
|
MethodName: "Login",
|
||||||
Handler: _HelloWorld_Login_Handler,
|
Handler: _HelloWorld_Login_Handler,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
MethodName: "GetScripts",
|
||||||
|
Handler: _HelloWorld_GetScripts_Handler,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
Streams: []grpc.StreamDesc{},
|
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