You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

315 lines
6.1 KiB

2 months ago
package role
import (
"ginCms/models"
"ginCms/utils"
"github.com/gin-gonic/gin"
2 months ago
"log"
2 months ago
"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)
2 months ago
// 3. req to map
fieldMap := body.ToFieldMap()
//log.Println(fieldMap)
if err := models.RoleUpdates(fieldMap, uri.ID); err != nil {
// 记录日志
2 months ago
log.Println(err)
utils.Logger().Error(err.Error())
// 直接响应
ctx.JSON(http.StatusOK, gin.H{
"code": 100,
2 months ago
"message": "数据更新错误",
})
return
}
2 months ago
// 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. 删除数据
2 months ago
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)
}
2 months ago
func GetList(ctx *gin.Context) {
list(ctx, models.SCOPE_UNDELETED, true)
}
func list(ctx *gin.Context, scope uint8, assoc bool) {
2 months ago
// 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)
2 months ago
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,
})
}
2 months ago
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)
2 months ago
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,
})
}