@@ -0,0 +1,139 @@
|
||||
package dramatopicctrl
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"time"
|
||||
|
||||
"91porn-server/common"
|
||||
"91porn-server/common/stderr"
|
||||
"91porn-server/models/l/operatorlgmod"
|
||||
"91porn-server/web/service/dramatopicser"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func List(ctx *gin.Context) {
|
||||
var req dramatopicser.ListRequest
|
||||
if err := ctx.ShouldBindQuery(&req); err != nil {
|
||||
common.ServeJSON(ctx, stderr.ErrParamError, err)
|
||||
return
|
||||
}
|
||||
response, err := req.List(time.Now())
|
||||
if err != nil {
|
||||
common.ServeJSON(ctx, stderr.ErrDbQueryError, err)
|
||||
return
|
||||
}
|
||||
common.ServeJSON(ctx, stderr.Success, response)
|
||||
}
|
||||
|
||||
func Create(ctx *gin.Context) {
|
||||
manager, ok := admin(ctx)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
var req dramatopicser.CreateRequest
|
||||
if err := ctx.ShouldBindJSON(&req); err != nil {
|
||||
common.ServeJSON(ctx, stderr.ErrParamError, err)
|
||||
return
|
||||
}
|
||||
id, err := req.Create(time.Now())
|
||||
if err != nil {
|
||||
common.ServeJSON(ctx, stderr.ErrParamError, err)
|
||||
return
|
||||
}
|
||||
record(ctx, manager, "创建", req)
|
||||
common.ServeJSON(ctx, stderr.Success, gin.H{"topicId": id.Hex()})
|
||||
}
|
||||
|
||||
func Update(ctx *gin.Context) {
|
||||
manager, ok := admin(ctx)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
var req dramatopicser.UpdateRequest
|
||||
if err := ctx.ShouldBindJSON(&req); err != nil {
|
||||
common.ServeJSON(ctx, stderr.ErrParamError, err)
|
||||
return
|
||||
}
|
||||
if err := req.Update(time.Now()); err != nil {
|
||||
common.ServeJSON(ctx, stderr.ErrParamError, err)
|
||||
return
|
||||
}
|
||||
record(ctx, manager, "修改", req)
|
||||
common.ServeJSON(ctx, stderr.Success, "")
|
||||
}
|
||||
|
||||
func Delete(ctx *gin.Context) {
|
||||
manager, ok := admin(ctx)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
var req dramatopicser.DeleteRequest
|
||||
if err := ctx.ShouldBindJSON(&req); err != nil {
|
||||
common.ServeJSON(ctx, stderr.ErrParamError, err)
|
||||
return
|
||||
}
|
||||
if err := req.Delete(time.Now()); err != nil {
|
||||
common.ServeJSON(ctx, stderr.ErrParamError, err)
|
||||
return
|
||||
}
|
||||
record(ctx, manager, "删除", req)
|
||||
common.ServeJSON(ctx, stderr.Success, "")
|
||||
}
|
||||
|
||||
func Sort(ctx *gin.Context) {
|
||||
manager, ok := admin(ctx)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
var req dramatopicser.SortRequest
|
||||
if err := ctx.ShouldBindJSON(&req); err != nil {
|
||||
common.ServeJSON(ctx, stderr.ErrParamError, err)
|
||||
return
|
||||
}
|
||||
if err := req.Update(time.Now()); err != nil {
|
||||
common.ServeJSON(ctx, stderr.ErrParamError, err)
|
||||
return
|
||||
}
|
||||
record(ctx, manager, "排序", req)
|
||||
common.ServeJSON(ctx, stderr.Success, "")
|
||||
}
|
||||
|
||||
func UpdateWorks(ctx *gin.Context) {
|
||||
manager, ok := admin(ctx)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
var req dramatopicser.UpdateWorksRequest
|
||||
if err := ctx.ShouldBindJSON(&req); err != nil {
|
||||
common.ServeJSON(ctx, stderr.ErrParamError, err)
|
||||
return
|
||||
}
|
||||
response, err := req.Update(time.Now())
|
||||
if err != nil {
|
||||
var conflict *dramatopicser.WorksConflictError
|
||||
if errors.As(err, &conflict) {
|
||||
common.ServeJSON(ctx, stderr.ErrParamError, conflict)
|
||||
return
|
||||
}
|
||||
common.ServeJSON(ctx, stderr.ErrParamError, err)
|
||||
return
|
||||
}
|
||||
record(ctx, manager, "配置作品", req)
|
||||
common.ServeJSON(ctx, stderr.Success, response)
|
||||
}
|
||||
|
||||
func admin(ctx *gin.Context) (string, bool) {
|
||||
manager, err := common.GetAdminAct(ctx)
|
||||
if err != nil {
|
||||
common.ServeJSON(ctx, stderr.AdminIDErr, err)
|
||||
return "", false
|
||||
}
|
||||
return manager, true
|
||||
}
|
||||
|
||||
func record(ctx *gin.Context, manager, action string, request interface{}) {
|
||||
data, _ := json.Marshal(request)
|
||||
_ = operatorlgmod.RecordOperation(manager, "短剧专题管理", action, string(data), ctx.Request.URL.RequestURI())
|
||||
}
|
||||
Reference in New Issue
Block a user