Gin-controller

定义一个带路由控制的控制器和公共函数

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
package controllers

import (
"github.com/gin-gonic/gin"
log "github.com/sirupsen/logrus"
"strconv"
"strings"
)

//定义路由
func Init(r *gin.Engine) {
initUserRouteAr(r)
}
/*
@ 设置page
*/
func GetPage(c *gin.Context) int{
page := 1
_p := strings.TrimSpace(c.Query("page"))
log.Infof("page : %s", _p)
if _p != "" {
_converted, err := strconv.Atoi(_p)
if err == nil && _converted > 0 {
page = _converted
}
}
return page
}
/*
@ 设置pagesize
*/
func GetPagesize(c *gin.Context) int{
pagesize := 10
_p := strings.TrimSpace(c.Query("pagesize"))
log.Infof("pagesize :%s", _p)
if _p != "" {
_converted, err := strconv.Atoi(_p)
if err == nil && _converted > 0 {
log.Errorf("err :%v", err)
pagesize = _converted
}
}
return pagesize
}
处理控制器
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
package controllers

import (
"gin/forms"
"gin/libservers"
"gin/response"
"github.com/gin-gonic/gin"
"github.com/gookit/validate"
"log"
)
//用户控制器
type User struct {
}
/*
@定义控制器路由
*/
func initUserRouteAr(r *gin.Engine) {
user := new(User)
AppGroup := r.Group("/Member/v1")
AppGroup.GET("/list", user.list)
AppGroup.GET("/show/:id", user.show)
AppGroup.POST("/add", user.add)
AppGroup.POST("/update", user.update)
AppGroup.GET("/delete/:id", user.delete)
}
/*
@获取列表信息
params:pagesize page name
*/
func (u User) list(c *gin.Context){
var lib libservers.User
Pageindex := GetPage(c)
lib.Pagesize = GetPagesize(c)
lib.Offset = (Pageindex-1)*lib.Pagesize
users := lib.GetList()
if users == nil{
response.ShowFailed(c,nil,"数据不存在!")
return
}
response.ShowSucc(c,gin.H{"code":200,"data":users},"获取成功")
}

/*
@添加用户
params forms.User
*/
func (u User) add(c *gin.Context){
var lib libservers.User
var form forms.User
err := c.BindJSON(&form)
if err != nil {
response.ShowFailed(c, nil, "请求参数错误"+"发生错误:"+err.Error())
return
}
v := validate.Struct(form)
if !v.Validate(){
response.ShowFailed(c, nil, "请求参数错误:"+v.Errors.One())
return
}
lib.Add(form)
response.ShowSucc(c,gin.H{"code":200},"添加成功!")
}
/*
@查询一条数据
params id
*/
func (u User) show(c *gin.Context){
var lib libservers.User
lib.Id = c.Param("id")
user,err := lib.Show()
if err!=nil{
response.ShowFailed(c,nil,"数据不存在!")
return
}
response.ShowSucc(c,gin.H{"code":200,"data":user},"获取成功")
}
/*
@删除数据
params id
*/
func (u User) delete(c *gin.Context){
var lib libservers.User
lib.Id = c.Param("id")
res := lib.Del()
if !res{
response.ShowFailed(c,nil,"数据不存在!")
return
}
response.ShowSucc(c,gin.H{"code":200,"state":true},"删除成功")
}
/*
@修改数据
params forms.UpUser
*/
func (u User) update(c *gin.Context){
var lib libservers.User
var form forms.UpUser
err := c.BindJSON(&form)
if err != nil {
response.ShowFailed(c, nil, "请求参数错误"+"发生错误:"+err.Error())
return
}
v := validate.Struct(form)
if !v.Validate(){
response.ShowFailed(c, nil, "请求参数错误:"+v.Errors.One())
return
}
lib.Id = form.Id
log.Println(form)
err = lib.Update(form)
if err!=nil{
response.ShowFailed(c,nil,"数据不存在")
return
}
response.ShowSucc(c,gin.H{"code":200,"state":true},"修改成功")
}