|
|
package role
|
|
|
|
|
|
import (
|
|
|
"ginCms/models"
|
|
|
"ginCms/utils"
|
|
|
"github.com/gin-gonic/gin"
|
|
|
"log"
|
|
|
"net/http"
|
|
|
)
|
|
|
|
|
|
func EditEnabled(ctx *gin.Context) {
|
|
|
// 1. 解析Query请求数据
|
|
|
query := EditEnabledQueryReq{}
|
|
|
if err := ctx.ShouldBindQuery(&query); err != nil {
|
|
|
// 记录日志
|
|
|
utils.Logger().Error(err.Error())
|
|
|
// 直接响应
|
|
|
ctx.JSON(http.StatusOK, gin.H{
|
|
|
"code": 100,
|
|
|
"message": err.Error(),
|
|
|
})
|
|
|
return
|
|
|
}
|
|
|
//log.Println(query)
|
|
|
|
|
|
// 2. 解析Body请求数据
|
|
|
body := EditEnabledBodyReq{}
|
|
|
if err := ctx.ShouldBind(&body); err != nil {
|
|
|
// 记录日志
|
|
|
utils.Logger().Error(err.Error())
|
|
|
// 直接响应
|
|
|
ctx.JSON(http.StatusOK, gin.H{
|
|
|
"code": 100,
|
|
|
"message": err.Error(),
|
|
|
})
|
|
|
return
|
|
|
}
|
|
|
//log.Println(body)
|
|
|
|
|
|
// 3. 更新数据
|
|
|
rowsNum, err := models.RoleUpdateEnabled(query.IDList, body.Enabled)
|
|
|
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": rowsNum,
|
|
|
})
|
|
|
}
|
|
|
|
|
|
func Edit(ctx *gin.Context) {
|
|
|
// 1. 解析URI请求数据
|
|
|
uri := EditUriReq{}
|
|
|
if err := ctx.ShouldBindUri(&uri); err != nil {
|
|
|
// 记录日志
|
|
|
utils.Logger().Error(err.Error())
|
|
|
// 直接响应
|
|
|
ctx.JSON(http.StatusOK, gin.H{
|
|
|
"code": 100,
|
|
|
"message": err.Error(),
|
|
|
})
|
|
|
return
|
|
|
}
|
|
|
//log.Println(uri)
|
|
|
|
|
|
// 2. 解析Body请求数据
|
|
|
body := EditBodyReq{}
|
|
|
if err := ctx.ShouldBind(&body); err != nil {
|
|
|
// 记录日志
|
|
|
utils.Logger().Error(err.Error())
|
|
|
// 直接响应
|
|
|
ctx.JSON(http.StatusOK, gin.H{
|
|
|
"code": 100,
|
|
|
"message": err.Error(),
|
|
|
})
|
|
|
return
|
|
|
}
|
|
|
//log.Println(body)
|
|
|
|
|
|
// 3. req to map
|
|
|
fieldMap := body.ToFieldMap()
|
|
|
//log.Println(fieldMap)
|
|
|
if err := models.RoleUpdates(fieldMap, uri.ID); err != nil {
|
|
|
// 记录日志
|
|
|
log.Println(err)
|
|
|
utils.Logger().Error(err.Error())
|
|
|
// 直接响应
|
|
|
ctx.JSON(http.StatusOK, gin.H{
|
|
|
"code": 100,
|
|
|
"message": "数据更新错误",
|
|
|
})
|
|
|
return
|
|
|
}
|
|
|
|
|
|
// 3. 响应
|
|
|
// 往往需要重新查询一边,获取最新的role信息
|
|
|
row, err := models.RoleFetch(uri.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 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, req.Force)
|
|
|
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,
|
|
|
})
|
|
|
}
|