Files
huangguo_server/web/api/userctrl/feedback.go
T
rootandClaude Opus 5 8679200f41 Initial commit
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 13:57:10 +08:00

235 lines
7.8 KiB
Go

package userctrl
import (
"91porn-server/common"
"91porn-server/common/stderr"
"91porn-server/models/v/feedbackmod"
"91porn-server/models/v/userResourcemod"
"github.com/gin-gonic/gin"
"go.mongodb.org/mongo-driver/bson/primitive"
)
// FeedBackList doc
// @Summary
// @Description 用户反馈意见列表
// @Tags web-用户管理
// @Accept mpfd,json
// @Produce json,html
// @Param uid query integer false "用户ID"
// @Param content query string false "查找关键字"
// @Param pageNumber query integer true "当前页"
// @Param pageSize query integer true "每页条数"
// @Success 200 {string} json "{"msg": "操作成功", "date": { "total":10, "list":[] }}"
// @Failure 400 {string} json "{"msg": "操作失败"}"
// @Router /web/user/feedback/list [get]
func FeedbackList(c *gin.Context) {
params := feedbackmod.ListParam{}
if err := c.ShouldBind(&params); err != nil {
common.ServeJSON(c, stderr.ErrParamError, err)
return
}
result, err := feedbackmod.FeedBackList(params)
if err != nil {
common.ServeJSON(c, stderr.Failure, err)
return
}
common.ServeJSON(c, stderr.Success, result)
}
// FeedbackDelete doc
// @Summary 反馈删除
// @Description 批量删除用户反馈
// @Tags web-用户管理
// @Accept mpfd,json
// @Produce json,html
// @Param ids formData array true "id数组 字符串数组"
// @Success 200 {string} json "{"msg": "操作成功"}"
// @Failure 400 {string} json "{"msg": "操作失败"}"
// @Router /web/user/feedback/del [delete]
func FeedbackDelete(ctx *gin.Context) {
var args struct {
IDs []primitive.ObjectID `form:"ids" json:"ids"`
}
if err := ctx.ShouldBind(&args); err != nil {
common.ServeJSON(ctx, stderr.ErrParamError, err.Error())
return
}
if err := feedbackmod.FeedBackDelete(args.IDs); err != nil {
common.ServeJSON(ctx, stderr.ErrDbDeleteError, err.Error())
return
}
common.ServeJSON(ctx, stderr.Success, nil)
}
// FeedbackUpdate doc
// @Summary 用户反馈问题
// @Description 用户反馈编辑
// @Tags web-用户管理
// @Accept mpfd,json
// @Produce json,html
// @Param id formData array true "id字符串"
// @Param replay formData string false "回复"
// @Success 200 {string} json "{"msg": "操作成功"}"
// @Failure 400 {string} json "{"msg": "操作失败"}"
// @Router /web/user/feedback/update [post]
func FeedbackUpdate(ctx *gin.Context) {
var args struct {
ID primitive.ObjectID `form:"id" json:"id" binding:"required"`
UID int64 `form:"uid" json:"uid"`
Confirm bool `from:"confirm" json:"confirm"` //确认是否发送回复
Content string `json:"content" bson:"content"`
feedbackmod.FeedBackUpdateDoc
}
if err := ctx.ShouldBind(&args); err != nil {
common.ServeJSON(ctx, stderr.ErrParamError, nil)
return
}
if err := feedbackmod.FeedBackUpdate(args.ID, args.FeedBackUpdateDoc); err != nil {
common.ServeJSON(ctx, stderr.ErrDbUpdateError, err.Error())
return
}
common.ServeJSON(ctx, stderr.Success, nil)
}
// GetUserResourceList doc
// @Summary 获取用户资源配置列表
// @Description 获取用户资源配置列表
// @Tags web-用户管理
// @Accept mpfd,json
// @Produce json,html
// @Param pageNumber formData integer true "查询页码"
// @Param pageSize formData integer true "页码大小"
// @Success 200 {string} json "{"msg": "操作成功"}"
// @Failure 400 {string} json "{"msg": "操作失败"}"
// @Router /web/user/resource/list [get]
func GetUserResourceList(ctx *gin.Context) {
_, err := common.GetAdminAct(ctx)
if err != nil {
common.ServeJSON(ctx, stderr.AdminIDErr, err.Error())
return
}
req := userResourcemod.ResourceListReq{}
err1 := ctx.ShouldBind(&req)
if err1 != nil {
common.ServeJSON(ctx, stderr.ErrParamError, nil)
return
}
infos, total, err := userResourcemod.GetUserResource(req.PageNumber, req.PageSize, "")
if err != nil {
common.ServeJSON(ctx, stderr.ErrDbQueryError, "")
return
}
common.ServeJSON(ctx, stderr.Success, gin.H{
"list": infos,
"total": total,
})
}
// ModifyUserResource doc
// @Summary 修改用户资源配置列表
// @Description 修改用户资源配置列表
// @Tags web-用户管理
// @Accept mpfd,json
// @Produce json,html
// @Param pageNumber formData integer true "查询页码"
// @Param pageSize formData integer true "页码大小"
// @Success 200 {string} json "{"msg": "操作成功"}"
// @Failure 400 {string} json "{"msg": "操作失败"}"
// @Router /web/user/resource/modify [post]
func ModifyUserResource(ctx *gin.Context) {
_, err := common.GetAdminAct(ctx)
if err != nil {
common.ServeJSON(ctx, stderr.AdminIDErr, err.Error())
return
}
req := userResourcemod.ResourceModifyReq{}
err1 := ctx.ShouldBind(&req)
if err1 != nil {
common.ServeJSON(ctx, stderr.ErrParamError, nil)
return
}
oid, err := primitive.ObjectIDFromHex(req.ID)
if err != nil {
common.ServeJSON(ctx, stderr.ErrParamError, nil)
return
}
userResourcemod.ModifyUserResource(oid, req.Type, req.Resource)
if err != nil {
common.ServeJSON(ctx, stderr.ErrDbUpdateError, "")
return
}
common.ServeJSON(ctx, stderr.Success, nil)
}
// AddUserResource doc
// @Summary 添加用户资源配置列表
// @Description 添加用户资源配置列表
// @Tags web-用户管理
// @Accept mpfd,json
// @Produce json,html
// @Param pageNumber formData integer true "查询页码"
// @Param pageSize formData integer true "页码大小"
// @Success 200 {string} json "{"msg": "操作成功"}"
// @Failure 400 {string} json "{"msg": "操作失败"}"
// @Router /web/user/resource/add [post]
func AddUserResource(ctx *gin.Context) {
_, err := common.GetAdminAct(ctx)
if err != nil {
common.ServeJSON(ctx, stderr.AdminIDErr, err.Error())
return
}
req := userResourcemod.ResourceAddReq{}
err = ctx.ShouldBind(&req)
if err != nil {
common.ServeJSON(ctx, stderr.ErrParamError, nil)
return
}
ru := userResourcemod.UserResource{
Type: req.Type,
Resource: req.Resource,
}
err = userResourcemod.Add(ru)
if err != nil {
common.ServeJSON(ctx, stderr.ErrDbInsertError, "")
return
}
common.ServeJSON(ctx, stderr.Success, nil)
}
// DelUserResource doc
// @Summary 删除用户资源配置列表
// @Description 删除用户资源配置列表
// @Tags web-用户管理
// @Accept mpfd,json
// @Produce json,html
// @Param pageNumber formData integer true "查询页码"
// @Param pageSize formData integer true "页码大小"
// @Success 200 {string} json "{"msg": "操作成功"}"
// @Failure 400 {string} json "{"msg": "操作失败"}"
// @Router /web/user/resource/del [post]
func DelUserResource(ctx *gin.Context) {
_, err := common.GetAdminAct(ctx)
if err != nil {
common.ServeJSON(ctx, stderr.AdminIDErr, err.Error())
return
}
req := userResourcemod.ResourceDelReq{}
err1 := ctx.ShouldBind(&req)
if err1 != nil {
common.ServeJSON(ctx, stderr.ErrParamError, nil)
return
}
id, err := primitive.ObjectIDFromHex(req.ID)
if err != nil {
common.ServeJSON(ctx, stderr.ErrParamError, nil)
return
}
err = userResourcemod.RemoveUserResource(id)
if err != nil {
common.ServeJSON(ctx, stderr.ErrDbDeleteError, "")
return
}
common.ServeJSON(ctx, stderr.Success, nil)
}