package role import ( "ginCms/models" "ginCms/utils" "github.com/gin-gonic/gin" "net/http" ) func Restore(ctx *gin.Context) { // 1. 解析请求数据 req := RestoreReq{} if err := ctx.ShouldBindQuery(&req); err != nil { // 记录日志 utils.Logger().Error(err.Error()) // 直接响应 ctx.JSON(http.StatusOK, gin.H{ "code": 100, "message": err.Error(), }) return } // 2. 还原数据 rowsNum, err := models.RoleRestore(req.IDList) if err != nil { // 记录日志 utils.Logger().Error(err.Error()) // 直接响应 ctx.JSON(http.StatusOK, gin.H{ "code": 100, "message": "数据还原错误", }) return } // 3. 响应 ctx.JSON(http.StatusOK, gin.H{ "code": 0, "data": rowsNum, }) } func Delete(ctx *gin.Context) { // 1. 解析请求数据 req := DeleteReq{} if err := ctx.ShouldBindQuery(&req); err != nil { // 记录日志 utils.Logger().Error(err.Error()) // 直接响应 ctx.JSON(http.StatusOK, gin.H{ "code": 100, "message": err.Error(), }) return } //log.Println(req) // 2. 删除数据 rowsNum, err := models.RoleDelete(req.IDList) if err != nil { // 记录日志 utils.Logger().Error(err.Error()) // 直接响应 ctx.JSON(http.StatusOK, gin.H{ "code": 100, "message": "数据删除错误", }) return } // 3. 响应 ctx.JSON(http.StatusOK, gin.H{ "code": 0, "data": rowsNum, }) } func Recycle(ctx *gin.Context) { list(ctx, models.SCOPE_DELETED, false) } func GetList(ctx *gin.Context) { list(ctx, models.SCOPE_UNDELETED, true) } func list(ctx *gin.Context, scope uint8, assoc bool) { // 1. 解析请求消息 req := GetListReq{} if err := ctx.ShouldBindQuery(&req); err != nil { // 记录日志 utils.Logger().Error(err.Error()) // 直接响应 ctx.JSON(http.StatusOK, gin.H{ "code": 100, "message": err.Error(), }) return } // 2. 整理请求参数 req.Clean() // 3. 基于model查询 rows, err := models.RoleFetchList(req.RoleFilter, req.Sorter, req.Pager, scope, assoc) if err != nil { // 记录日志 utils.Logger().Error(err.Error()) // 直接响应 ctx.JSON(http.StatusOK, gin.H{ "code": 100, "message": "查询错误", }) return } // 4. 响应 ctx.JSON(http.StatusOK, gin.H{ "code": 0, "data": rows, }) } func Add(ctx *gin.Context) { // 1. 解析请求数据 req := AddReq{} if err := ctx.ShouldBind(&req); err != nil { // 记录日志 utils.Logger().Error(err.Error()) // 直接响应 ctx.JSON(http.StatusOK, gin.H{ "code": 100, "message": err.Error(), }) return } // 2. 利用模型完成插入 role := req.ToRole() if err := models.RoleInsert(role); err != nil { // 记录日志 utils.Logger().Error(err.Error()) // 直接响应 ctx.JSON(http.StatusOK, gin.H{ "code": 100, "message": "数据插入错误", }) return } // 3. 响应 // 往往需要重新查询一边,获取最新的role信息 row, err := models.RoleFetch(role.ID, false) if err != nil { // 记录日志 utils.Logger().Error(err.Error()) // 直接响应 ctx.JSON(http.StatusOK, gin.H{ "code": 100, "message": "查询错误", }) return } ctx.JSON(http.StatusOK, gin.H{ "code": 100, "data": row, }) } func GetRow(ctx *gin.Context) { // 1. 解析请求数据(消息) req := GetRowReq{} if err := ctx.ShouldBindQuery(&req); err != nil { // 记录日志 utils.Logger().Error(err.Error()) // 直接响应 ctx.JSON(http.StatusOK, gin.H{ "code": 100, "message": err.Error(), }) return } // 2. 利用模型完成查询 row, err := models.RoleFetch(req.ID, false) if err != nil { // 记录日志 utils.Logger().Error(err.Error()) // 直接响应 ctx.JSON(http.StatusOK, gin.H{ "code": 100, "message": "查询错误", }) return } // 3. 响应 ctx.JSON(http.StatusOK, gin.H{ "code": 0, "data": row, }) }