|
@@ -0,0 +1,143 @@
|
|
|
|
+package comment
|
|
|
|
+
|
|
|
|
+import (
|
|
|
|
+ "errors"
|
|
|
|
+ "fmt"
|
|
|
|
+ "hongze/hongze_yb/global"
|
|
|
|
+ reqComment "hongze/hongze_yb/models/request/comment"
|
|
|
|
+ "hongze/hongze_yb/models/response"
|
|
|
|
+ report "hongze/hongze_yb/models/tables/rddp/report"
|
|
|
|
+ "hongze/hongze_yb/models/tables/rddp/report_chapter"
|
|
|
|
+ "hongze/hongze_yb/models/tables/yb_comment"
|
|
|
|
+ "hongze/hongze_yb/services/user"
|
|
|
|
+ "time"
|
|
|
|
+)
|
|
|
|
+
|
|
|
|
+// Comment 发布留言
|
|
|
|
+func Comment(user user.UserInfo, req reqComment.ReqComment) (ret response.RespCommentAdd, err error) {
|
|
|
|
+ var errMsg string
|
|
|
|
+ defer func() {
|
|
|
|
+ if err != nil {
|
|
|
|
+ global.LOG.Critical(fmt.Sprintf("GetReportList: userId=%d, err:%s, errMsg:%s", user.UserID, err.Error(), errMsg))
|
|
|
|
+ }
|
|
|
|
+ }()
|
|
|
|
+ //校验请求入参
|
|
|
|
+ if req.IsShowName != 0 && req.IsShowName != 1 {
|
|
|
|
+ err = errors.New("匿名设置出错")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if req.Content == "" {
|
|
|
|
+ err = errors.New("请输入留言内容")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if req.ReportId <= 0 && req.ReportChapterId <= 0 {
|
|
|
|
+ err = errors.New("请输入报告ID")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if req.SourceAgent == 0 {
|
|
|
|
+ err = errors.New("请输入留言来源")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //todo 校验权限
|
|
|
|
+ // 校验报告是否存在
|
|
|
|
+ reportInfo, err := report.GetByReportId(req.ReportId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ errMsg = err.Error()
|
|
|
|
+ err = errors.New("查询报告出错")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if reportInfo.Id <=0 {
|
|
|
|
+ err = errors.New("报告不存在")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (reportInfo.ClassifyNameFirst == "晨报" || reportInfo.ClassifyNameFirst == "周报") && req.ReportChapterId <=0 {
|
|
|
|
+ err = errors.New("请输入报告章节ID")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if req.ReportChapterId > 0 {
|
|
|
|
+ reportChapterInfo, tErr := report_chapter.GetTypeIdById(req.ReportChapterId)
|
|
|
|
+ if tErr != nil {
|
|
|
|
+ errMsg = tErr.Error()
|
|
|
|
+ err = errors.New("查询章节失败")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if reportChapterInfo.ReportChapterId == 0 {
|
|
|
|
+ err = errors.New("章节不存在或者未发布")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if reportChapterInfo.ReportId != req.ReportId {
|
|
|
|
+ err = errors.New("章节ID和报告ID不匹配")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //todo 敏感词过滤
|
|
|
|
+ //新增留言
|
|
|
|
+ now := time.Now()
|
|
|
|
+ commentInfo := &yb_comment.YbComment{
|
|
|
|
+ UserId: user.UserID,
|
|
|
|
+ Content: req.Content,
|
|
|
|
+ ReportId: req.ReportId,
|
|
|
|
+ ReportChapterId: req.ReportChapterId,
|
|
|
|
+ IsShowName: req.IsShowName,
|
|
|
|
+ SourceAgent: req.SourceAgent,
|
|
|
|
+ Type: 1,
|
|
|
|
+ Enabled: 1,
|
|
|
|
+ CreateTime: now,
|
|
|
|
+ ModifyTime: now,
|
|
|
|
+ }
|
|
|
|
+ err = commentInfo.Create()
|
|
|
|
+ if err != nil {
|
|
|
|
+ errMsg = err.Error()
|
|
|
|
+ err = errors.New("新增留言出错")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ ret.CommentId = commentInfo.CommentId
|
|
|
|
+ return
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// Delete 删除留言
|
|
|
|
+func Delete(user user.UserInfo, req *reqComment.ReqDel) (err error) {
|
|
|
|
+ var errMsg string
|
|
|
|
+ defer func() {
|
|
|
|
+ if err != nil {
|
|
|
|
+ global.LOG.Critical(fmt.Sprintf("GetReportList: userId=%d, err:%s, errMsg:%s", user.UserID, err.Error(), errMsg))
|
|
|
|
+ }
|
|
|
|
+ }()
|
|
|
|
+ if req.CommentId <= 0 {
|
|
|
|
+ err = errors.New("请输入留言ID")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ //校验请求入参
|
|
|
|
+ commentInfo, err := yb_comment.GetSimpleByCommentId(req.CommentId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ errMsg = err.Error()
|
|
|
|
+ err = errors.New("查询留言出错")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if commentInfo.CommentId <= 0 {
|
|
|
|
+ err = errors.New("留言不存在")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if commentInfo.UserId != user.UserID {
|
|
|
|
+ err = errors.New("不允许删除他人的留言")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if commentInfo.Enabled == 0 {
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ commentInfo.Enabled = 0
|
|
|
|
+ commentInfo.ModifyTime = time.Now()
|
|
|
|
+ err = commentInfo.Update([]string{"enabled", "modify_time"})
|
|
|
|
+ if err != nil {
|
|
|
|
+ errMsg = err.Error()
|
|
|
|
+ err = errors.New("更新留言出错")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ return
|
|
|
|
+}
|