package community import ( "github.com/gin-gonic/gin" "hongze/hongze_yb/controller/response" "hongze/hongze_yb/logic/yb_community_question" "hongze/hongze_yb/models/request" responseModel "hongze/hongze_yb/models/response" "hongze/hongze_yb/models/tables/yb_community_question_comment" "hongze/hongze_yb/services" userService "hongze/hongze_yb/services/user" "strconv" ) // Comment 发布留言 func Comment(c *gin.Context) { var req request.ReqComment if c.ShouldBind(&req) != nil { response.Fail("入参错误", c) return } userInfo := userService.GetInfoByClaims(c) // 随机头像 var qaAvatarUrl string avatar, e := yb_community_question_comment.GetUserAvatarRandom() if e != nil { response.FailMsg("发布失败", e.Error(), c) return } qaAvatarUrl = avatar.AvatarUrl req.IsShowName = 0 if userInfo.NickName != `` { //非空串时为实名 req.IsShowName = 1 } // 不传来源默认为问答社区 if req.Source == 0 { req.Source = 1 } ybCommunityQuestionComment, err, errMsg := yb_community_question.Comment(userInfo, req.CommunityQuestionID, req.Content, req.SourceAgent, req.IsShowName, req.Source, qaAvatarUrl) if err != nil { response.FailMsg(errMsg, err.Error(), c) return } response.OkData("留言成功", responseModel.RespCommunityQuestionCommentAdd{ CommunityQuestionCommentID: ybCommunityQuestionComment.CommunityQuestionCommentID, }, c) return } // DeleteComment 删除留言 func DeleteComment(c *gin.Context) { var req *request.ReqDel if c.ShouldBind(&req) != nil { response.Fail("参数异常", c) return } userInfo := userService.GetInfoByClaims(c) err, errMsg := yb_community_question.Delete(userInfo, req.CommunityQuestionCommentID) if err != nil { response.FailMsg(errMsg, err.Error(), c) return } response.Ok("删除留言成功", c) return } // HotList 获取精选留言 func HotList(c *gin.Context) { communityQuestionIDStr := c.DefaultQuery("community_question_id", "") communityQuestionID, err := strconv.Atoi(communityQuestionIDStr) if err != nil { response.Fail("问答id异常", c) return } // 来源: 默认为问答社区 reqSource := c.DefaultQuery("source", "1") source, _ := strconv.Atoi(reqSource) if source == 0 { source = 1 } userinfo := userService.GetInfoByClaims(c) page := services.GetCurrPageByClaims(c) pageSize := services.GetPageSizeByClaims(c) list, hotTotal, myTotal, err, errMsg := yb_community_question.List(userinfo.UserID, communityQuestionID, source, true, page, pageSize) if err != nil { response.FailMsg(errMsg, err.Error(), c) return } response.OkData("查询成功", responseModel.RespCommunityQuestionCommentList{ List: list, Paging: responseModel.GetPaging(page, pageSize, int(hotTotal)), HotTotal: hotTotal, MyTotal: myTotal, }, c) return } // MyList 获取我的留言 func MyList(c *gin.Context) { communityQuestionIDStr := c.DefaultQuery("community_question_id", "") communityQuestionID, err := strconv.Atoi(communityQuestionIDStr) if err != nil { response.Fail("问答id异常", c) return } // 来源: 默认为问答社区 reqSource := c.DefaultQuery("source", "1") source, _ := strconv.Atoi(reqSource) if source == 0 { source = 1 } userinfo := userService.GetInfoByClaims(c) page := services.GetCurrPageByClaims(c) pageSize := services.GetPageSizeByClaims(c) list, hotTotal, myTotal, err, errMsg := yb_community_question.MyList(userinfo.UserID, communityQuestionID, source, page, pageSize) if err != nil { response.FailMsg(errMsg, err.Error(), c) return } response.OkData("查询成功", responseModel.RespCommunityQuestionCommentList{ List: list, Paging: responseModel.GetPaging(page, pageSize, int(myTotal)), HotTotal: hotTotal, MyTotal: myTotal, }, c) return } // GetNeedCommentAnonymousUserTips 获取是否 弹出让去设置头像 的提示框 func GetNeedCommentAnonymousUserTips(c *gin.Context) { userinfo := userService.GetInfoByClaims(c) // true 不弹框,false弹框 if userinfo.NickName != `` { response.OkData("获取成功", true, c) return } ok, err := yb_community_question.GetNeedCommentAnonymousUserTips(userinfo.UserID) if err != nil { response.FailMsg("获取失败", err.Error(), c) return } response.OkData("获取成功", ok, c) } // SetCommentAnonymousUserTips 设置不再提示 弹出让去设置头像 的提示框 func SetCommentAnonymousUserTips(c *gin.Context) { userinfo := userService.GetInfoByClaims(c) err := yb_community_question.SetYbCommentAnonymousUserTips(userinfo.UserID) if err != nil { response.FailMsg("设置失败", err.Error(), c) return } response.Ok("设置成功", c) }