/
c_demo.go
118 lines (97 loc) · 2.31 KB
/
c_demo.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
package ctl
import (
"strings"
"github.com/LyricTian/gin-admin/src/bll"
"github.com/LyricTian/gin-admin/src/schema"
"github.com/LyricTian/gin-admin/src/web/context"
)
// Demo 示例程序
type Demo struct {
DemoBll *bll.Demo `inject:""`
}
// Query 查询数据
func (a *Demo) Query(ctx *context.Context) {
switch ctx.Query("type") {
case "page":
a.QueryPage(ctx)
default:
ctx.ResBadRequest(nil)
}
}
// QueryPage 查询分页数据
func (a *Demo) QueryPage(ctx *context.Context) {
pageIndex, pageSize := ctx.GetPageIndex(), ctx.GetPageSize()
var params schema.DemoQueryParam
params.Code = ctx.Query("code")
params.Name = ctx.Query("name")
total, items, err := a.DemoBll.QueryPage(ctx.NewContext(), params, pageIndex, pageSize)
if err != nil {
ctx.ResInternalServerError(err)
return
}
ctx.ResPage(total, items)
}
// Get 查询指定数据
func (a *Demo) Get(ctx *context.Context) {
item, err := a.DemoBll.Get(ctx.NewContext(), ctx.Param("id"))
if err != nil {
ctx.ResInternalServerError(err)
return
}
ctx.ResSuccess(item)
}
// Create 创建数据
func (a *Demo) Create(ctx *context.Context) {
var item schema.Demo
if err := ctx.ParseJSON(&item); err != nil {
ctx.ResBadRequest(err)
return
}
item.Creator = ctx.GetUserID()
err := a.DemoBll.Create(ctx.NewContext(), &item)
if err != nil {
ctx.ResInternalServerError(err)
return
}
newItem, err := a.DemoBll.Get(ctx.NewContext(), item.RecordID)
if err != nil {
ctx.ResInternalServerError(err)
return
}
ctx.ResSuccess(newItem)
}
// Update 更新数据
func (a *Demo) Update(ctx *context.Context) {
var item schema.Demo
if err := ctx.ParseJSON(&item); err != nil {
ctx.ResBadRequest(err)
return
}
err := a.DemoBll.Update(ctx.NewContext(), ctx.Param("id"), &item)
if err != nil {
ctx.ResInternalServerError(err)
return
}
ctx.ResOK()
}
// Delete 删除数据
func (a *Demo) Delete(ctx *context.Context) {
err := a.DemoBll.Delete(ctx.NewContext(), ctx.Param("id"))
if err != nil {
ctx.ResInternalServerError(err)
return
}
ctx.ResOK()
}
// DeleteMany 删除多条数据
func (a *Demo) DeleteMany(ctx *context.Context) {
ids := strings.Split(ctx.Query("batch"), ",")
for _, id := range ids {
err := a.DemoBll.Delete(ctx.NewContext(), id)
if err != nil {
ctx.ResInternalServerError(err)
return
}
}
ctx.ResOK()
}