gorm-查询社团列表以及对应成员信息(jion)
func GetOrganizationUsers(c *gin.Context) {
var req models.OrganizationUser
if err := c.ShouldBindJSON(&req); err != nil {
result.Fail(c, result.ResultError)
return
}
type res struct {
models.User
models.OrganizationUser
}
var organizationUsers []res
//err := models.DB.
// Raw("SELECT users.nick_name,users.avatar,users.header_img,users.online_state,users.phone,organization_users.user_id,organization_users.organization_id,organization_users.identity FROM `users` JOIN `organization_users` ON `users`.`id`= `organization_users`.`user_id` WHERE `organization_users`.`organization_id`=? ", req.OrganizationID).
// Scan(&organizationUsers).Error
err := models.DB.
Debug().
Table("users").
Select(" users.nick_name, users.avatar, users.header_img, users.online_state, users.phone, organization_users.organization_id,organization_users.user_id, organization_users.identity").
Joins("JOIN organization_users ON users.id = organization_users.user_id").
Where("organization_users.organization_id = ?", req.OrganizationID).
Find(&organizationUsers).
Error
if err != nil {
result.FailWithData(c, err)
return
}
result.OkWithData(c, organizationUsers)
}
上面分别写了sql与gorm,意思是查询users表(用户)和organization_users表(社团用户列表),返回select中users表和organization_users对应的信息
其中result引用并修改:https://blog.csdn.net/upstream480/article/details/128168125
结构体
type User struct {
gorm.Model
Name string `json:"name,omitempty"`
NickName string `json:"nick_name,omitempty"`
Email string `json:"email,omitempty"`
Account string `json:"account,omitempty"`
Password string `json:"password,omitempty"`
Avatar string `json:"avatar,omitempty"`
HeaderImg string `json:"header_img,omitempty"`
Phone string `json:"phone,omitempty"`
Uuid string `json:"uuid,omitempty"`
OnlineState bool `json:"online_state"`
Enable bool `json:"enable,omitempty"`
}
type OrganizationTicket struct {
gorm.Model
OrganizationID uint `json:"organization_id" `
UserID uint `json:"user_id"`
State string `json:"state,omitempty"`
}
type OrganizationUser struct {
gorm.Model
OrganizationID uint `json:"organization_id,omitempty" `
UserID uint `json:"user_id,omitempty"`
Identity string `json:"identity,omitempty"`
}
初学笔记