Files
huangguo_server/app/api/messagectrl/messagectrl.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

284 lines
8.9 KiB
Go

package messagectrl
import (
"91porn-server/app/service/messageser"
"91porn-server/common"
"91porn-server/common/log"
"91porn-server/common/stderr"
"91porn-server/common/truthutil"
"91porn-server/models/v/messagemod"
"91porn-server/models/v/sessionmod"
"fmt"
"github.com/gin-gonic/gin"
)
// List doc
// @Summary 消息
// @Description 动态列表
// @Tags 私信模块
// @Accept mpfd,json
// @Produce json,html
// @Param pageNumber formData integer true "查询页码"
// @Param pageSize formData integer true "页码大小"
// @Param msgType formData string true "消息类型:comment_msg 评论"
// @Success 200 {string} json "{"msg": "操作成功", "data":[]}"
// @Failure 400 {string} json "{"msg": "操作失败"}"
// @Router /app/msg/dynamic/list [get]
func List(ctx *gin.Context) {
uid, err := common.GetUID(ctx)
if err != nil {
common.ServeJSON(ctx, stderr.ErrNoToken, err)
return
}
var in *messagemod.QueryCond
if err := ctx.ShouldBind(&in); err != nil {
common.ServeJSON(ctx, stderr.ErrParamError, err)
return
}
data, has, code := messageser.QueryDynamics(uid, in)
if code != stderr.Success {
common.ServeJSON(ctx, code, nil)
return
}
resp := make(map[string]interface{})
resp["list"] = data
resp["hasNext"] = has
common.ServeJSON(ctx, stderr.Success, resp)
}
// NoRedNum doc
// @Summary 消息
// @Description 动态列表
// @Tags 私信模块
// @Accept mpfd,json
// @Produce json,html
// @Param pageNumber formData integer true "查询页码"
// @Param pageSize formData integer true "页码大小"
// @Success 200 {string} json "{"msg": "操作成功", "data":[]}"
// @Failure 400 {string} json "{"msg": "操作失败"}"
// @Router /app/msg/dynamic/noRedNum [get]
func NoRedNum(ctx *gin.Context) {
uid, err := common.GetUID(ctx)
if err != nil {
common.ServeJSON(ctx, stderr.ErrNoToken, err)
return
}
data, code := messageser.QueryNoRedDynamicNum(uid)
if code != stderr.Success {
common.ServeJSON(ctx, code, nil)
return
}
common.ServeJSON(ctx, stderr.Success, data)
}
// SessionList doc
// @Summary 消息
// @Description 会话列表
// @Tags 私信模块
// @Accept mpfd,json
// @Produce json,html
// @Param pageNumber formData integer true "查询页码"
// @Param pageSize formData integer true "页码大小"
// @Success 200 {string} json "{"msg": "操作成功", "data":[]}"
// @Failure 400 {string} json "{"msg": "操作失败"}"
// @Router /app/msg/session/list [get]
func SessionList(ctx *gin.Context) {
uid, err := common.GetUID(ctx)
if err != nil {
common.ServeJSON(ctx, stderr.ErrNoToken, err)
return
}
var in *sessionmod.QueryCond
if err := ctx.ShouldBind(&in); err != nil {
common.ServeJSON(ctx, stderr.ErrParamError, err)
return
}
data, has, code := messageser.QueryPrivateLetterSession(uid, in)
if code != stderr.Success {
common.ServeJSON(ctx, code, nil)
return
}
resp := make(map[string]interface{})
resp["list"] = data
resp["hasNext"] = has
common.ServeJSON(ctx, stderr.Success, resp)
}
// DelSession doc
// @Summary 消息
// @Description 删除会话
// @Tags 私信模块
// @Accept mpfd,json
// @Produce json,html
// @Param sessionId formData string true "会话ID"
// @Success 200 {string} json "{"msg": "操作成功", "data":[]}"
// @Failure 400 {string} json "{"msg": "操作失败"}"
// @Router /app/msg/session/del [post]
func DelSession(ctx *gin.Context) {
uid, err := common.GetUID(ctx)
if err != nil {
common.ServeJSON(ctx, stderr.ErrNoToken, err)
return
}
type req struct {
SessionId string `json:"sessionId" form:"sessionId"` // 会话id
}
var in req
if err := ctx.ShouldBind(&in); err != nil {
common.ServeJSON(ctx, stderr.ErrParamError, err)
return
}
code := messageser.DelSession(uid, in.SessionId)
if code != stderr.Success {
common.ServeJSON(ctx, code, nil)
return
}
common.ServeJSON(ctx, stderr.Success, nil)
}
// GetSessionId doc
// @Summary 消息
// @Description 获取sessionId
// @Tags 私信模块
// @Accept mpfd,json
// @Produce json,html
// @Param pageNumber formData integer true "查询页码"
// @Param pageSize formData integer true "页码大小"
// @Success 200 {string} json "{"msg": "操作成功", "data":[]}"
// @Failure 400 {string} json "{"msg": "操作失败"}"
// @Router /app/msg/session/get [get]
func GetSessionId(ctx *gin.Context) {
uid, err := common.GetUID(ctx)
if err != nil {
common.ServeJSON(ctx, stderr.ErrNoToken, err)
return
}
var in *sessionmod.QuerySessionIdCond
if err := ctx.ShouldBind(&in); err != nil {
common.ServeJSON(ctx, stderr.ErrParamError, err)
return
}
if in.TakeUid <= 0 {
common.ServeJSON(ctx, stderr.ErrParamError, err)
return
}
sessionId := messageser.GetSessionId(uid, in.TakeUid)
if sessionId == "" {
common.ServeJSON(ctx, stderr.Failure, nil)
return
}
common.ServeJSON(ctx, stderr.Success, sessionId)
}
// MessageList doc
// @Summary 消息
// @Description 会话消息列表
// @Tags 私信模块
// @Accept mpfd,json
// @Produce json,html
// @Param pageNumber formData integer true "查询页码"
// @Param pageSize formData integer true "页码大小"
// @Success 200 {string} json "{"msg": "操作成功", "data":[]}"
// @Failure 400 {string} json "{"msg": "操作失败"}"
// @Router /app/msg/message/list [get]
func MessageList(ctx *gin.Context) {
uid, err := common.GetUID(ctx)
if err != nil {
common.ServeJSON(ctx, stderr.ErrNoToken, err)
return
}
var in *messagemod.QueryMsgCond
if err := ctx.ShouldBind(&in); err != nil {
common.ServeJSON(ctx, stderr.ErrParamError, err)
return
}
data, has, code := messageser.QueryPrivateLetterMsg(uid, in)
if code != stderr.Success {
common.ServeJSON(ctx, code, nil)
return
}
resp := make(map[string]interface{})
resp["list"] = data
resp["hasNext"] = has
common.ServeJSON(ctx, stderr.Success, resp)
}
// PrivateLetter doc
// @Summary 消息
// @Description 发消息(私信)
// @Tags 私信模块
// @Accept mpfd,json
// @Produce json,html
// @Param takeUid formData string true "接受用户uid"
// @Param imgUrl formData []string false "图片内容"
// @Param content formData integer false "消息内容"
// @Success 200 {string} json "{"msg": "操作成功", "data":[]}"
// @Failure 400 {string} json "{"msg": "操作失败"}"
// @Router /app/message/priLetter/add [post]
func PrivateLetter(ctx *gin.Context) {
uid, err := common.GetUID(ctx)
if err != nil {
common.ServeJSON(ctx, stderr.ErrNoToken, err)
return
}
param := messagemod.AddMsgReqInfo{}
err = ctx.ShouldBind(&param)
if err != nil {
common.ServeJSON(ctx, stderr.ErrParamError, err)
return
}
if len(param.ImgUrl) <= 0 && param.Content == "" {
common.ServeJSON(ctx, stderr.ErrParamError, err)
return
}
// 检查发送内容的合法性
if param.Content != "" && !truthutil.CheckIsValid(param.Content, 1) {
log.Error("私信检查不通过", log.Any("uid", uid), log.Any("content", param.Content))
common.ServeJSON(ctx, stderr.Success, nil)
return
}
code := messageser.AddPrivateLetter(uid, param)
if code != stderr.Success {
log.Warn(fmt.Sprintf("messagectrl Add messageser.AddPrivateLetter error:%+v:", code.Msg()), log.Any("uid", uid))
common.ServeJSON(ctx, code, nil)
return
}
common.ServeJSON(ctx, stderr.Success, nil)
}
// Read doc
// @Summary 消息
// @Description 消息已读
// @Tags 私信模块
// @Accept mpfd,json
// @Produce json,html
// @Param question formData string true "问题"
// @Param images formData []string true "图片"
// @Param bountyGold formData integer true "悬赏金额"
// @Success 200 {string} json "{"msg": "操作成功", "data":[]}"
// @Failure 400 {string} json "{"msg": "操作失败"}"
// @Router /app/message/read [post]
func Read(ctx *gin.Context) {
uid, err := common.GetUID(ctx)
if err != nil {
common.ServeJSON(ctx, stderr.ErrNoToken, err)
return
}
param := messagemod.ReadMsgReqInfo{}
err = ctx.ShouldBind(&param)
if err != nil {
common.ServeJSON(ctx, stderr.ErrParamError, err)
return
}
code := messageser.ReadMsg(uid, param)
if code != stderr.Success {
log.Warn(fmt.Sprintf("messagectrl Adoption messageser.ReadMsg error:%+v:", code.Tip()), log.Any("uid", uid), log.Any("MsgIds", param.MsgIds))
common.ServeJSON(ctx, code, nil)
return
}
common.ServeJSON(ctx, stderr.Success, nil)
}