83 lines
3.0 KiB
Go
83 lines
3.0 KiB
Go
package minectrl
|
|
|
|
import (
|
|
"time"
|
|
|
|
"91porn-server/common"
|
|
"91porn-server/common/stderr"
|
|
"91porn-server/models/v/reptmod"
|
|
"91porn-server/models/v/repttypemod"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
)
|
|
|
|
// Report doc
|
|
// @Summary 举报 - 用户举报
|
|
// @Description 用户操作
|
|
// @Tags mine
|
|
// @Accept mpfd,json
|
|
// @Produce json,html
|
|
// @Param uid query integer true "举报者uid"
|
|
// @Param objType query string true "举报对象类型,video、comment、user"
|
|
// @Param types query string true "类型:内容违规/账号违规/侵权/其他"
|
|
// @Param objID query string false "举报对象ID,videoID、commentId"
|
|
// @Param objUID query integer false "被举报用户UID"
|
|
// @Success 200 {string} json "{"msg": {"hasReported":true}} 已经举报则hasReported为true,提示用户已经举报"
|
|
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
|
// @Router /mine/report [post]
|
|
func Report(ctx *gin.Context) {
|
|
var arg struct {
|
|
UID uint64 `form:"uid" json:"uid" binding:"required"`
|
|
ObjType reptmod.ReportObjType `form:"objType" json:"objType" binding:"required"`
|
|
Types string `form:"types" json:"types" binding:"required"`
|
|
ObjID *primitive.ObjectID `form:"objID" json:"objID" binding:""`
|
|
ObjUID *uint64 `form:"objUID" json:"objUID" binding:""`
|
|
}
|
|
if err := ctx.ShouldBind(&arg); err != nil {
|
|
common.ServeJSON(ctx, stderr.ErrParamError, "mine Report arg error "+err.Error())
|
|
return
|
|
}
|
|
if arg.ObjType == reptmod.User && arg.ObjUID == nil {
|
|
common.ServeJSON(ctx, stderr.ErrParamError, "mine Report arg error: no objUID ")
|
|
return
|
|
}
|
|
if arg.ObjType != reptmod.User && arg.ObjID == nil {
|
|
common.ServeJSON(ctx, stderr.ErrParamError, "mine Report arg error: no objID ")
|
|
return
|
|
}
|
|
//举报有效期一个月
|
|
ok, err := reptmod.Do(arg.UID, arg.ObjType, arg.ObjID, arg.ObjUID, arg.Types, time.Hour*24*30)
|
|
if err != nil {
|
|
common.ServeJSON(ctx, stderr.ErrNetWorkBusy, err)
|
|
return
|
|
}
|
|
common.ServeJSON(ctx, stderr.Success, gin.H{
|
|
"hasReported": ok,
|
|
})
|
|
}
|
|
|
|
// Report doc
|
|
// @Summary 举报 - 举报种类
|
|
// @Description 举报种类
|
|
// @Tags mine
|
|
// @Accept mpfd,json
|
|
// @Produce json,html
|
|
// @Success 200 {string} json "{"msg": []}"
|
|
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
|
// @Router /mine/report/types/list [get]
|
|
func ReportTypesList(c *gin.Context) {
|
|
list, err := repttypemod.List()
|
|
if err != nil {
|
|
common.ServeJSON(c, stderr.ErrNetWorkBusy, "mine ReportTypesList error: "+err.Error())
|
|
return
|
|
}
|
|
typesList := make([]string, 0, len(list))
|
|
for _, report := range list {
|
|
if report.Name != nil {
|
|
typesList = append(typesList, *report.Name)
|
|
}
|
|
}
|
|
common.ServeJSON(c, stderr.Success, typesList)
|
|
}
|