From 9e5987296694fce675ceae93cd20af51f4231bc2 Mon Sep 17 00:00:00 2001 From: lxyer <237809796@qq.com> Date: Wed, 10 Jan 2018 14:09:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E[=E8=AF=84=E8=AE=BA=E7=82=B9?= =?UTF-8?q?=E8=B5=9E]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lxyer/controller/CommentController.java | 19 +++++++++-- .../com/lxyer/controller/JieController.java | 2 +- src/main/java/com/lxyer/model/Comment.java | 10 ++++++ .../com/lxyer/service/CommentService.java | 32 +++++++++++++++++++ src/main/resources/sql/actlog.sql | 4 +-- src/main/resources/sql/comment.sql | 13 ++++++++ src/main/webapp/WEB-INF/fly/jie/detail.html | 2 +- 7 files changed, 76 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/lxyer/controller/CommentController.java b/src/main/java/com/lxyer/controller/CommentController.java index 96e30dc..9d2c107 100644 --- a/src/main/java/com/lxyer/controller/CommentController.java +++ b/src/main/java/com/lxyer/controller/CommentController.java @@ -1,6 +1,7 @@ package com.lxyer.controller; import com.jfinal.aop.Before; +import com.jfinal.aop.Clear; import com.jfinal.kit.Kv; import com.jfinal.plugin.activerecord.Page; import com.lxyer.config.JBean; @@ -11,12 +12,14 @@ import com.lxyer.service.CommentService; /** * Created by JUECHENG at 2018/1/8 23:07. */ +@Before(LoginInterceptor.class) public class CommentController extends IController { CommentService service = CommentService.me; /** * 评论列表 */ + @Clear(LoginInterceptor.class) public void list(){ Kv kv = getParams("contentId"); Page page = Comment.dao.findPage(getPn(), getPs(), kv); @@ -27,6 +30,7 @@ public class CommentController extends IController { /** * 评论详情 */ + @Clear(LoginInterceptor.class) public void info(){ } @@ -43,16 +47,27 @@ public class CommentController extends IController { } /** - * todo:更新状态 + * 更新状态 */ public void update_status(){ } /** - * todo:评论点赞 + * 评论点赞 */ public void support(){ + JBean bean = new JBean(1); + Integer commentId = getParaToInt("commentId"); + Integer ok = getParaToInt("ok"); + try { + service.support(commentId, ok, getUserId()); + } catch (Exception e) { + e.printStackTrace(); + bean.setCode(-1, e.getMessage()); + } + + renderJson(bean); } } diff --git a/src/main/java/com/lxyer/controller/JieController.java b/src/main/java/com/lxyer/controller/JieController.java index 93fdf3f..637351a 100644 --- a/src/main/java/com/lxyer/controller/JieController.java +++ b/src/main/java/com/lxyer/controller/JieController.java @@ -31,7 +31,7 @@ public class JieController extends IController{ Content content = Content.dao.findFirst(Kv.by("contentId", contentId)); //评论 - Page comments = Comment.dao.findPage(getPn(), getPs(), Kv.by("contentId", contentId)); + Page comments = Comment.dao.findPage(getPn(), getPs(), Kv.by("contentId", contentId).set("login_user_id", getUserId())); //热议 List hotReply = Content.dao.findPage(1, 8, Kv.by("order", "replyNum DESC")).getList(); diff --git a/src/main/java/com/lxyer/model/Comment.java b/src/main/java/com/lxyer/model/Comment.java index 36a3bba..d20f60a 100644 --- a/src/main/java/com/lxyer/model/Comment.java +++ b/src/main/java/com/lxyer/model/Comment.java @@ -1,5 +1,7 @@ package com.lxyer.model; +import com.jfinal.kit.Kv; +import com.jfinal.plugin.activerecord.Db; import com.lxyer.model.base.BaseComment; /** @@ -18,4 +20,12 @@ public class Comment extends BaseComment { public Comment getDao() { return dao; } + + /** + * 更新点赞数 + * @param commentId + */ + public static void upSupportNum(Integer commentId) { + Db.update(Db.getSqlPara("comment.upSupportNum", Kv.by("commentId", commentId))); + } } diff --git a/src/main/java/com/lxyer/service/CommentService.java b/src/main/java/com/lxyer/service/CommentService.java index 6309ee6..9ab82c6 100644 --- a/src/main/java/com/lxyer/service/CommentService.java +++ b/src/main/java/com/lxyer/service/CommentService.java @@ -1,5 +1,7 @@ package com.lxyer.service; +import com.jfinal.kit.Kv; +import com.lxyer.model.ActLog; import com.lxyer.model.Comment; import com.lxyer.model.Content; @@ -22,4 +24,34 @@ public class CommentService { //更新评论数 Content.upReplyNum(comment.getContentId()); } + + /** + * 评论点赞 + * @param commentId + * @param ok + * @param userId + * @throws Exception + */ + public void support(Integer commentId, Integer ok, Integer userId) throws Exception { + Comment comment = Comment.dao.findById(commentId); + if (comment == null) + throw new Exception("操作失败,未查询到相关信息"); + + ActLog actLog = ActLog.dao.findFirst(Kv.by("userId", userId).set("tid", commentId).set("cate", 1)); + if (actLog == null){ + actLog = new ActLog(); + actLog.setTid(commentId); + actLog.setUserId(userId); + actLog.setCate(1); + actLog.setStatus(1); + actLog.setCreateTime(System.currentTimeMillis()); + actLog.save(); + }else if (actLog.getStatus() != ok){ + actLog.setStatus(ok == 1 ? 1 : -1); + actLog.setCreateTime(System.currentTimeMillis()); + actLog.update(); + } + + Comment.upSupportNum(commentId); + } } diff --git a/src/main/resources/sql/actlog.sql b/src/main/resources/sql/actlog.sql index abd560e..37d8d6f 100644 --- a/src/main/resources/sql/actlog.sql +++ b/src/main/resources/sql/actlog.sql @@ -1,8 +1,8 @@ ### 帖子操作日志 para:[logid, cate, tid, userId, status] #sql("actLog.list") SELECT al.* - FROM `comment` al - WHERE al.status!=-1 + FROM `act_log` al + WHERE 1=1 #if(logid) AND al.`logid`=#(logid) #end diff --git a/src/main/resources/sql/comment.sql b/src/main/resources/sql/comment.sql index 1834fc7..6d09acb 100644 --- a/src/main/resources/sql/comment.sql +++ b/src/main/resources/sql/comment.sql @@ -2,6 +2,9 @@ #sql("comment.list") SELECT c.* ,u.nickname,u.avatar + #if(login_user_id) + ,(SELECT IFNULL((SELECT al.logid FROM act_log al WHERE al.userId=#(login_user_id) AND al.cate=1 AND al.status=1 AND al.tid=c.commentId),-1)) AS 'hadSupport' + #end FROM `comment` c LEFT JOIN user u ON c.userId=u.userId WHERE c.status!=-1 @@ -23,4 +26,14 @@ #if(status) AND c.`status`=#(status) #end +#end + + +### 更新点赞数 para:[contentId] +#sql("comment.upSupportNum") + UPDATE comment c SET c.supportNum= + (SELECT COUNT(*) FROM act_log WHERE tid=c.commentId AND status=1 AND cate=1) + #if(commentId) + WHERE c.commentId=#(commentId) + #end #end \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/fly/jie/detail.html b/src/main/webapp/WEB-INF/fly/jie/detail.html index 763b994..f709e24 100644 --- a/src/main/webapp/WEB-INF/fly/jie/detail.html +++ b/src/main/webapp/WEB-INF/fly/jie/detail.html @@ -111,7 +111,7 @@ #(x.content)
- #if(x.hadSupport == 1) + #if(x.hadSupport > 1) #(x.supportNum) #else #(x.supportNum)