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),
    })

}