/
a_user.go
123 lines (109 loc) · 2.59 KB
/
a_user.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
119
120
121
122
123
package api
import (
"strings"
"github.com/LyricTian/gin-admin/v6/internal/app/bll"
"github.com/LyricTian/gin-admin/v6/internal/app/ginplus"
"github.com/LyricTian/gin-admin/v6/internal/app/schema"
"github.com/LyricTian/gin-admin/v6/pkg/errors"
"github.com/gin-gonic/gin"
"github.com/google/wire"
)
// UserSet 注入User
var UserSet = wire.NewSet(wire.Struct(new(User), "*"))
// User 用户管理
type User struct {
UserBll bll.IUser
}
// Query 查询数据
func (a *User) Query(c *gin.Context) {
ctx := c.Request.Context()
var params schema.UserQueryParam
if err := ginplus.ParseQuery(c, ¶ms); err != nil {
ginplus.ResError(c, err)
return
}
if v := c.Query("roleIDs"); v != "" {
params.RoleIDs = strings.Split(v, ",")
}
params.Pagination = true
result, err := a.UserBll.QueryShow(ctx, params)
if err != nil {
ginplus.ResError(c, err)
return
}
ginplus.ResPage(c, result.Data, result.PageResult)
}
// Get 查询指定数据
func (a *User) Get(c *gin.Context) {
ctx := c.Request.Context()
item, err := a.UserBll.Get(ctx, c.Param("id"))
if err != nil {
ginplus.ResError(c, err)
return
}
ginplus.ResSuccess(c, item.CleanSecure())
}
// Create 创建数据
func (a *User) Create(c *gin.Context) {
ctx := c.Request.Context()
var item schema.User
if err := ginplus.ParseJSON(c, &item); err != nil {
ginplus.ResError(c, err)
return
} else if item.Password == "" {
ginplus.ResError(c, errors.New400Response("密码不能为空"))
return
}
item.Creator = ginplus.GetUserID(c)
result, err := a.UserBll.Create(ctx, item)
if err != nil {
ginplus.ResError(c, err)
return
}
ginplus.ResSuccess(c, result)
}
// Update 更新数据
func (a *User) Update(c *gin.Context) {
ctx := c.Request.Context()
var item schema.User
if err := ginplus.ParseJSON(c, &item); err != nil {
ginplus.ResError(c, err)
return
}
err := a.UserBll.Update(ctx, c.Param("id"), item)
if err != nil {
ginplus.ResError(c, err)
return
}
ginplus.ResOK(c)
}
// Delete 删除数据
func (a *User) Delete(c *gin.Context) {
ctx := c.Request.Context()
err := a.UserBll.Delete(ctx, c.Param("id"))
if err != nil {
ginplus.ResError(c, err)
return
}
ginplus.ResOK(c)
}
// Enable 启用数据
func (a *User) Enable(c *gin.Context) {
ctx := c.Request.Context()
err := a.UserBll.UpdateStatus(ctx, c.Param("id"), 1)
if err != nil {
ginplus.ResError(c, err)
return
}
ginplus.ResOK(c)
}
// Disable 禁用数据
func (a *User) Disable(c *gin.Context) {
ctx := c.Request.Context()
err := a.UserBll.UpdateStatus(ctx, c.Param("id"), 2)
if err != nil {
ginplus.ResError(c, err)
return
}
ginplus.ResOK(c)
}