Skip to content

Commit 40e32f1

Browse files
committed
save for 调整 非全局方式使用
1 parent 0d4646d commit 40e32f1

File tree

4 files changed

+57
-20
lines changed

4 files changed

+57
-20
lines changed

action/action.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,6 @@ func (a *Action) Result() (model.Map, error) {
123123

124124
err = g.DB().Transaction(a.ctx, func(ctx context.Context, tx gdb.TX) error {
125125
for _, k := range a.tagRequest.ExecQueue {
126-
127126
node := a.children[k]
128127
ret[k], err = node.execute(ctx, a.method)
129128
if err != nil {

action/node.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import (
1010
"github.com/glennliao/apijson-go/model"
1111
"github.com/glennliao/apijson-go/util"
1212
"github.com/gogf/gf/v2/errors/gerror"
13-
"github.com/gogf/gf/v2/util/gconv"
1413
"github.com/samber/lo"
1514
"net/http"
1615
"strings"
@@ -51,7 +50,7 @@ func (n *Node) parseReq(method string) {
5150

5251
for key, val := range item {
5352
if key == consts.Role {
54-
n.Role = gconv.String(val)
53+
n.Role = util.String(val)
5554
} else {
5655
key = config.GetDbFieldStyle()(n.ctx, n.TableName, key)
5756

@@ -61,8 +60,10 @@ func (n *Node) parseReq(method string) {
6160
if key == n.RowKey || key == n.RowKey+"{}" {
6261
if method == http.MethodPut {
6362
n.Where[i][key] = val
63+
} else {
64+
n.Data[i][key] = val
6465
}
65-
// Post 暂原则上不让传递这个rowKey值
66+
// Post 暂原则上不让传递这个rowKey值 // todo 可传递
6667
} else {
6768
n.Data[i][key] = val
6869
}
@@ -129,12 +130,12 @@ func (n *Node) roleUpdate() error {
129130

130131
if val, exists := n.structure.Insert[consts.Role]; exists {
131132
if n.Role == "" {
132-
n.Role = gconv.String(val)
133+
n.Role = util.String(val)
133134
}
134135
}
135136

136137
if val, exists := n.structure.Update[consts.Role]; exists {
137-
n.Role = gconv.String(val)
138+
n.Role = util.String(val)
138139
}
139140

140141
return nil

framework/handler/handler.go

Lines changed: 44 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -46,19 +46,47 @@ func Delete(ctx context.Context, req model.Map) (res model.Map, err error) {
4646
return act.Result()
4747
}
4848

49-
func Bind(group *ghttp.RouterGroup) {
50-
group.POST("/get", CommonResponse(Get))
51-
group.POST("/post", CommonResponse(Post))
52-
group.POST("/head", CommonResponse(Head))
53-
group.POST("/put", CommonResponse(Put))
54-
group.POST("/delete", CommonResponse(Delete))
49+
type Mode = func(data gmap.ListMap, meta gmap.ListMap) gmap.ListMap
50+
51+
func SpreadMode(data gmap.ListMap, meta gmap.ListMap) gmap.ListMap {
52+
53+
res := gmap.ListMap{}
54+
for _, k := range data.Keys() {
55+
res.Set(k, data.Get(k))
56+
}
57+
for _, k := range meta.Keys() {
58+
res.Set(k, meta.Get(k))
59+
}
60+
61+
return res
62+
}
63+
64+
func InDataMode(data gmap.ListMap, meta gmap.ListMap) gmap.ListMap {
65+
res := gmap.ListMap{}
66+
res.Set("data", data)
67+
for _, k := range meta.Keys() {
68+
res.Set(k, meta.Get(k))
69+
}
70+
return res
71+
}
72+
73+
func Bind(group *ghttp.RouterGroup, mode ...Mode) {
74+
if len(mode) == 0 {
75+
mode = []Mode{InDataMode}
76+
}
77+
group.POST("/get", CommonResponse(Get, mode[0]))
78+
group.POST("/post", CommonResponse(Post, mode[0]))
79+
group.POST("/head", CommonResponse(Head, mode[0]))
80+
group.POST("/put", CommonResponse(Put, mode[0]))
81+
group.POST("/delete", CommonResponse(Delete, mode[0]))
5582
}
5683

57-
func CommonResponse(handler func(ctx context.Context, req model.Map) (res model.Map, err error)) func(req *ghttp.Request) {
84+
func CommonResponse(handler func(ctx context.Context, req model.Map) (res model.Map, err error), mode Mode) func(req *ghttp.Request) {
5885
return func(req *ghttp.Request) {
59-
res := gmap.ListMap{}
86+
metaRes := gmap.ListMap{}
6087
code := 200
6188
msg := "success"
89+
nodeRes := gmap.ListMap{}
6290

6391
err := g.Try(req.Context(), func(ctx context.Context) {
6492

@@ -72,10 +100,10 @@ func CommonResponse(handler func(ctx context.Context, req model.Map) (res model.
72100
}
73101

74102
if config.Debug {
75-
sortMap(ctx, req.GetBody(), &res, ret)
103+
sortMap(ctx, req.GetBody(), &metaRes, ret)
76104
} else {
77105
for k, v := range ret {
78-
res.Set(k, v)
106+
nodeRes.Set(k, v)
79107
}
80108
}
81109

@@ -91,10 +119,12 @@ func CommonResponse(handler func(ctx context.Context, req model.Map) (res model.
91119
}
92120
}
93121

94-
res.Set("ok", code == 200)
95-
res.Set("code", code)
96-
res.Set("msg", msg)
97-
res.Set("span", fmt.Sprintf("%s", time.Since(time.UnixMilli(req.EnterTime))))
122+
metaRes.Set("ok", code == 200)
123+
metaRes.Set("code", code)
124+
metaRes.Set("msg", msg)
125+
metaRes.Set("span", fmt.Sprintf("%s", time.Since(time.UnixMilli(req.EnterTime))))
126+
127+
res := mode(nodeRes, metaRes)
98128
req.Response.WriteJson(res.String())
99129
}
100130
}

util/conv.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package util
2+
3+
import "github.com/gogf/gf/v2/util/gconv"
4+
5+
func String(val any) string {
6+
return gconv.String(val)
7+
}

0 commit comments

Comments
 (0)