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

import (
beego "github.com/beego/beego/v2/server/web"
"myproject/models"
"strconv"
)

type UserController struct {
beego.Controller
}

// 获取用户信息
func (c *UserController) Read() {
id := c.Ctx.Input.Param(":id")
if id == "" {
c.Data["json"] = map[string]interface{}{
"code": 400,
"msg": "id不能为空",
"data": nil,
}
c.ServeJSON()
return
}

// 将字符串ID转换为整数
idNum, err := strconv.Atoi(id)
if err != nil {
c.Data["json"] = map[string]interface{}{
"code": 400,
"msg": "id格式不正确",
"data": nil,
}
c.ServeJSON()
return
}

// 需要先导入 models 包
// import "myproject/models"
user, err := models.UserModel.GetUserById(int32(idNum))
if err != nil {
c.Data["json"] = map[string]interface{}{
"code": 500,
"msg": "获取用户信息失败",
"data": nil,
}
c.ServeJSON()
return
}
c.Data["json"] = map[string]interface{}{
"code": 200,
"msg": "获取用户信息成功",
"data": map[string]interface{}{
"user": user,
},
}
c.ServeJSON()
}

// 创建用户
func (c *UserController) Create() {
// 定义一个结构体接收请求数据
var userData struct {
Nickname string `json:"nickname"`
Avatar string `json:"avatar"`
Openid string `json:"openid"`
Unionid string `json:"unionid"`
Mobile string `json:"mobile"`
}

// 解析JSON请求体
err := c.ParseForm(&userData)
if err != nil {
c.Data["json"] = map[string]interface{}{
"code": 400,
"msg": "解析请求数据失败",
"data": nil,
}
c.ServeJSON()
return
}

// 将结构体转换为map
userMap := map[string]interface{}{
"nickname": userData.Nickname,
"avatar": userData.Avatar,
"openid": userData.Openid,
"unionid": userData.Unionid,
"mobile": userData.Mobile,
}

err = models.UserModel.Insert(userMap)
if err != nil {
c.Data["json"] = map[string]interface{}{
"code": 500,
"msg": "创建用户失败",
"data": nil,
}
c.ServeJSON()
return
}
c.Data["json"] = map[string]interface{}{
"code": 200,
"msg": "创建用户成功",
"data": nil,
}
c.ServeJSON()
}

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

import (
beego "github.com/beego/beego/v2/server/web"
"myproject/models"
"strconv"
)

type UserController struct {
beego.Controller
}

// 获取用户信息
func (c *UserController) Read() {
id := c.Ctx.Input.Param(":id")
if id == "" {
c.Data["json"] = map[string]interface{}{
"code": 400,
"msg": "id不能为空",
"data": nil,
}
c.ServeJSON()
return
}

// 将字符串ID转换为整数
idNum, err := strconv.Atoi(id)
if err != nil {
c.Data["json"] = map[string]interface{}{
"code": 400,
"msg": "id格式不正确",
"data": nil,
}
c.ServeJSON()
return
}

// 需要先导入 models 包
// import "myproject/models"
user, err := models.UserModel.GetUserById(int32(idNum))
if err != nil {
c.Data["json"] = map[string]interface{}{
"code": 500,
"msg": "获取用户信息失败",
"data": nil,
}
c.ServeJSON()
return
}
c.Data["json"] = map[string]interface{}{
"code": 200,
"msg": "获取用户信息成功",
"data": map[string]interface{}{
"user": user,
},
}
c.ServeJSON()
}

// 创建用户
func (c *UserController) Create() {
// 定义一个结构体接收请求数据
var userData struct {
Nickname string `json:"nickname"`
Avatar string `json:"avatar"`
Openid string `json:"openid"`
Unionid string `json:"unionid"`
Mobile string `json:"mobile"`
}

// 解析JSON请求体
err := c.ParseForm(&userData)
if err != nil {
c.Data["json"] = map[string]interface{}{
"code": 400,
"msg": "解析请求数据失败",
"data": nil,
}
c.ServeJSON()
return
}

// 将结构体转换为map
userMap := map[string]interface{}{
"nickname": userData.Nickname,
"avatar": userData.Avatar,
"openid": userData.Openid,
"unionid": userData.Unionid,
"mobile": userData.Mobile,
}

err = models.UserModel.Insert(userMap)
if err != nil {
c.Data["json"] = map[string]interface{}{
"code": 500,
"msg": "创建用户失败",
"data": nil,
}
c.ServeJSON()
return
}
c.Data["json"] = map[string]interface{}{
"code": 200,
"msg": "创建用户成功",
"data": nil,
}
c.ServeJSON()
}