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(¶m) 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(¶m) 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) }