6.gin-gorm编辑、删除用户
2023-02-13 00:00:06
技术
通过gin-gorm之项目学习
部分的学习,可以对项目的架构有深入的了解 🤟
{% post_link "gin-gorm1项目准备初始化" %}
{% post_link "gin-gorm2数据库" %}
{% post_link "gin-gorm3错误处理与路由接口" %}
{% post_link "gin-gorm4用户模块接口编写" %}
{% post_link "gin-gorm5密码加密" %}
{% post_link "gin-gorm6编辑、删除用户" %}
删除用户
在model的User中写删除语句
// 删除用户
func DeleteUser(id int) int {
err = db.Where("id=?", id).Delete(&User{}).Error
if err != nil {
return errmsg.ERROR
}
return errmsg.SUCCESS
}
在api的user.go中调用,返回前端信息
// 删除用户
func DeleteUser(ctx *gin.Context) {
id, _ := strconv.Atoi(ctx.Param("id"))
code = model.DeleteUser(id)
ctx.JSON(http.StatusOK, gin.H{
"status": code,
"message": errmsg.GetErrMsg(code),
})
}
删除为软删除,即将数据标记为删除状态,数据仍保留在数据库中,以确保数据库的完整性和可恢复性
编辑用户
// 编辑用户(密码除外)
func EditUser(id int, data *User) int {
var maps = make(map[string]interface{})
maps["username"] = data.Username
maps["role"] = data.Role
err = db.Model(&User{}).Where("id=?", id).Updates(maps).Error
if err != nil {
return errmsg.ERROR
}
return errmsg.SUCCESS
}
// 编辑用户
func EditUser(ctx *gin.Context) {
var data model.User
id, _ := strconv.Atoi(ctx.Param("id"))
ctx.ShouldBindJSON(data)
code = model.CheckUser(data.Username)
if code == errmsg.SUCCESS {
model.EditUser(id, &data)
}
if code == errmsg.ERROR_USERNAME_USED {
ctx.Abort()
}
ctx.JSON(http.StatusOK, gin.H{
"status": code,
"message": errmsg.GetErrMsg(code),
})
}