Browse Source

留言模块列表界面数据获取

huangct 8 years ago
parent
commit
5ff79501ce

+ 49 - 4
jpress-model/src/main/java/io/jpress/model/query/CommentQuery.java

@@ -15,14 +15,13 @@
  */
 package io.jpress.model.query;
 
-import java.math.BigInteger;
-import java.util.LinkedList;
-
 import com.jfinal.plugin.activerecord.Page;
 import com.jfinal.plugin.ehcache.IDataLoader;
-
 import io.jpress.model.Comment;
 
+import java.math.BigInteger;
+import java.util.LinkedList;
+
 public class CommentQuery extends JBaseQuery {
 
 	protected static final Comment DAO = new Comment();
@@ -90,6 +89,42 @@ public class CommentQuery extends JBaseQuery {
 		return DAO.paginate(pageNumber, pageSize, select, fromBuilder.toString(), params.toArray());
 	}
 
+	public Page<Comment> paginateWithContentAndSon(int pageNumber, int pageSize, String module, String type,
+														BigInteger contentId, BigInteger parentCommentId, Boolean hasSon) {
+
+		String select = " select c.*,content.title content_title,u.username,u.nickname,u.avatar, "
+				+ "quote_comment.text qc_content,quote_comment.author qc_author,"
+				+ "quote_user.username qc_username,quote_user.nickname qc_nickname,quote_user.avatar qc_avatar ";
+
+		StringBuilder fromBuilder = new StringBuilder("  from comment c");
+		fromBuilder.append(" left join content on c.content_id = content.id");
+		fromBuilder.append(" left join user u on c.user_id = u.id ");
+		fromBuilder.append(" left join comment quote_comment on c.parent_id = quote_comment.id");
+		fromBuilder.append(" left join user quote_user on quote_comment.user_id = quote_user.id ");
+
+		fromBuilder.append(" WHERE c.status <> '" + Comment.STATUS_DELETE + "' ");
+
+		if (hasSon == true) {
+			fromBuilder.append("and c.parent_id is not null ");
+		} else {
+			//不找作者本身的回复
+			fromBuilder.append("and c.parent_id is null and quote_user.user_id != content.user_id ");
+		}
+
+		LinkedList<Object> params = new LinkedList<Object>();
+		appendIfNotEmpty(fromBuilder, " c.`type`", type, params, false);
+		appendIfNotEmpty(fromBuilder, " c.content_module", module, params, false);
+		appendIfNotEmpty(fromBuilder, " c.parent_id", parentCommentId, params, false);
+		appendIfNotEmpty(fromBuilder, " content.id", contentId, params, false);
+
+		fromBuilder.append("order by c.created desc");
+
+		if (params.isEmpty()) {
+			return DAO.paginate(pageNumber, pageSize, select, fromBuilder.toString());
+		}
+		return DAO.paginate(pageNumber, pageSize, select, fromBuilder.toString(), params.toArray());
+	}
+
 	public Page<Comment> paginateByContentId(int pageNumber, int pageSize, BigInteger contentId) {
 		return paginateWithContent(pageNumber, pageSize, null, null, contentId, null, Comment.STATUS_NORMAL);
 	}
@@ -139,4 +174,14 @@ public class CommentQuery extends JBaseQuery {
 		return DAO.doFindCount("content_module = ? and status=?", module, status);
 	}
 
+	public long findCountByModuleAndSon(String module, boolean parent) {
+		Long count = new Long(0);
+		if (parent == true) {
+			count = DAO.doFindCount("content_module = ? and parent_id is not null", module);
+		} else {
+			count = DAO.doFindCount("content_module = ? and parent_id is null", module);
+		}
+
+		return count;
+	}
 }

+ 15 - 4
jpress-web-admin/src/main/java/io/jpress/admin/controller/_CommentController.java

@@ -15,12 +15,8 @@
  */
 package io.jpress.admin.controller;
 
-import java.math.BigInteger;
-import java.util.Date;
-
 import com.jfinal.aop.Before;
 import com.jfinal.plugin.activerecord.Page;
-
 import io.jpress.core.JBaseCRUDController;
 import io.jpress.core.interceptor.ActionCacheClearInterceptor;
 import io.jpress.interceptor.UCodeInterceptor;
@@ -35,6 +31,9 @@ import io.jpress.template.TemplateManager;
 import io.jpress.utils.JsoupUtils;
 import io.jpress.utils.StringUtils;
 
+import java.math.BigInteger;
+import java.util.Date;
+
 @RouterMapping(url = "/admin/comment", viewPath = "/WEB-INF/admin/comment")
 @Before(ActionCacheClearInterceptor.class)
 @RouterNotAllowConvert
@@ -48,6 +47,10 @@ public class _CommentController extends JBaseCRUDController<Comment> {
 		return getPara("t");
 	}
 
+	private boolean getSon() {
+		return Boolean.parseBoolean(getPara("son"));
+	}
+
 	@Override
 	public void index() {
 
@@ -59,6 +62,11 @@ public class _CommentController extends JBaseCRUDController<Comment> {
 		setAttr("normal_count", CommentQuery.me().findCountByModuleAndStatus(getModule(), Comment.STATUS_NORMAL));
 		setAttr("count", CommentQuery.me().findCountInNormalByModule(getModule()));
 
+		if ("uuhelper".equals(getModule())) {
+			setAttr("answered_count", CommentQuery.me().findCountByModuleAndSon(getModule(), true));
+			setAttr("unanswered_count", CommentQuery.me().findCountByModuleAndSon(getModule(), false));
+		}
+
 		super.index();
 	}
 
@@ -71,6 +79,9 @@ public class _CommentController extends JBaseCRUDController<Comment> {
 		if (StringUtils.isNotBlank(getPara("s"))) {
 			return CommentQuery.me().paginateWithContent(pageNumber, pageSize, getModule(), getType(), contentId,
 					parentCommentId, getPara("s"));
+		} else if (StringUtils.isNotBlank(getPara("son"))) {
+			return CommentQuery.me().paginateWithContentAndSon(pageNumber, pageSize, getModule(), getType(), contentId,
+					parentCommentId,getSon());
 		}
 		return CommentQuery.me().paginateWithContentNotInDelete(pageNumber, pageSize, getModule(), getType(), contentId,
 				parentCommentId);

+ 1 - 1
jpress-web-admin/src/main/webapp/WEB-INF/admin/comment/reply_layer.html

@@ -93,7 +93,7 @@ function save(){
 			<!-- /.col -->
 			<div class="col-md-12">
 				<div class="form-group">
-					您准备回复 ${comment.author!}在文章《<a href="${comment.contentUrl!}" target="_blank">${comment.content_title!}</a>》评论的如下内容:<br />
+					您准备回复 ${comment.author!}在文章《<a href="${comment.getContent().url!}" target="_blank">${comment.getContent().title!}</a>》评论的如下内容:<br />
 					${(comment.text)!}
 				</div>
 				<div class="box box-solid">

+ 51 - 46
jpress-web-admin/src/main/webapp/WEB-INF/admin/comment/uuHelperCommentList.html

@@ -83,52 +83,57 @@
                     </tr>
                     </thead>
                     <tbody class="bodyUas">
-                    <tr>
-                        <td>
-                            <div class="messageContent">
-                                <div class="leftImg">
-                                    <img src="${CPATH}/static/jpress/admin/image/nothumbnail.jpg" alt="">
-                                </div>
-                                <div class="rightContent">
-                                    <p>电量十足</p>
-                                    <span>赞</span>
-                                </div>
-                            </div>
-                        </td>
-                        <td class="messageTitle">UU助手上线啦</td>
-                        <td class="messageTime">
-                            2017-08-26 17:24:23
-                        </td>
-                        <td class="isShowMessage">
-                            不显示
-                        </td>
-                        <td class="handleMessage">
-                            <a>回复</a><a>删除</a>
-                        </td>
-                    </tr>
-                    <tr>
-                        <td>
-                            <div class="messageContent">
-                                <div class="leftImg">
-                                    <img src="${CPATH}/static/jpress/admin/image/nothumbnail.jpg" alt="">
-                                </div>
-                                <div class="rightContent">
-                                    <p>电量十足</p>
-                                    <span>赞</span>
-                                </div>
-                            </div>
-                        </td>
-                        <td class="messageTitle">UU助手上线啦</td>
-                        <td class="messageTime">
-                            2017-08-26 17:24:23
-                        </td>
-                        <td class="isShowMessage">
-                            不显示
-                        </td>
-                        <td class="handleMessage">
-                            <a class="replay">已回复</a><a>删除</a>
-                        </td>
-                    </tr>
+                    <#if page??>
+                        <#list page.getList() as bean>
+                            <tr class="jp-onmouse">
+                                <td>
+                                    <div class="messageContent">
+                                        <div class="leftImg">
+                                            <img src="${(bean.user.avatar)!CPATH+'/static/jpress/admin/image/nothumbnail.jpg'}" alt="头像">
+                                        </div>
+                                        <div class="rightContent">
+                                            <p><a href="${CPATH}/admin/user/edit?id=${bean.user_id!}&c=list&p=user"> ${(bean.user.username)!comment.author!} </a></p>
+                                            <span>
+                                                ${bean.text!}<#if "draft" == bean.status!>(待审核)</#if>
+                                            </span>
+                                        </div>
+                                    </div>
+                                    <div class="jp-flash-comment">
+                                        <p class="row-actions jp-cancel-pad">
+                                            <#if "normal" == bean.status!>
+                                                <span class="approve"><a class="vim-a" href="javascript:reply(${bean.id})">回复</a></span>
+                                                <span class="approve">|<a class="vim-a" href="${CPATH}/admin/comment/edit?id=${bean.id!}&p=${(p)!}&c=${(c)!}">编辑</a></span>
+                                                <span class="spam">|<a class="vim-s vim-destructive" href="javascript:draft(${bean.id})">待审核</a></span>
+                                                <span class="spam">|<a class="vim-s vim-destructive" href="javascript:trash(${bean.id})">垃圾箱</a></span>
+                                                <#elseif "draft" == bean.status!>
+                                                    <span class="approve"><a class="vim-a" href="javascript:reply(${bean.id})">回复</a></span>
+                                                    <span class="approve">|<a class="vim-a" href="${CPATH}/admin/comment/edit?id=${bean.id!}&p=${(p)!}&c=${(c)!}">编辑</a></span>
+                                                    <span class="spam">|<a class="vim-s vim-destructive" href="javascript:pub(${bean.id})">允许发布</a></span>
+                                                    <span class="spam">|<a class="vim-s vim-destructive" href="javascript:trash(${bean.id})">垃圾箱</a></span>
+                                                    <#else>
+                                                        <span class="approve"> <a class="vim-a" href="javascript:restore(${bean.id})">放回草稿</a></span>
+                                                        <span class="spam">|<a class="vim-s vim-destructive" href="javascript:del(${bean.id})">永久删除</a></span>
+                                            </#if>
+                                        </p>
+                                    </div>
+                                </td>
+                                <td class="messageTitle">${bean.content_title!}</td>
+                                <td class="messageTime">
+                                    ${bean.created!}
+                                </td>
+                                <td class="isShowMessage">
+                                    <select id="isShowMessageSelect" onchange="showMessageSelect(${bean.id})">
+                                        <option value="draft" <#if bean?? && bean.status?? && bean.status=="draft"> selected="selected" </#if>>不显示</option>
+                                        <option value="normal" <#if bean?? && bean.status?? && bean.status=="normal"> selected="selected" </#if>>显示</option>
+                                    </select>
+                                </td>
+                                <td class="handleMessage">
+                                    <a href="javascript:reply(${bean.id})">回复</a><a href="javascript:trash(${bean.id})">删除</a>
+                                </td>
+                            </tr>
+                        </#list>
+                    </#if>
+
                     </tbody>
                 </table>
             </form>

+ 49 - 18
jpress-web-template-usoftchina/src/main/webapp/templates/usoftchina/content_uuhelper.html

@@ -186,34 +186,65 @@
             <!--</div>-->
             <!--文本-->
             <p>${content.text!}</p>
-            <div class="readCount"><div><span>阅读 <em>${content.view_count!'0'}</em></span><span><i class="fa fa-thumbs-up"></i><em>${content.comment_count!'0'}</em></span></div><p>${(content.getMetadataByKey("copy_right"))!}</p></div>
+            <div class="readCount"><div><span>阅读 <em>${content.view_count!'0'}</em></span><span><i class="fa fa-thumbs-up"></i><em>${content.vote_up!'0'}</em></span></div><p>${(content.getMetadataByKey("copy_right"))!}</p></div>
         </div>
         <div class="footer">
             <div class="footer-header">
                 <div><span>写留言</span><i class="fa fa-pencil" aria-hidden="true"></i></div>
             </div>
             <div class="footer-section">
-                <div class="message">
-                    <div class="left">
-                        <div class="img" >
-                            <img src="/jpress/static/jpress/admin/image/dot.png" alt="">
+
+
+
+                <#if content.isCommentEnable() >
+                    <form action="${CPATH}/comment/submit" method="post"  id="comment">
+                        <input type="hidden" name="cid" value="${(content.id)!}" >
+                        <input type="hidden" name="anchor" value="comment" >
+                        <input type="hidden" id="parent_id" name="parent_id" >
+                        <div class="x-white-box">
+                            <h3 class="x-box-title">
+                                发表评论
+                            </h3>
+                            <div class="x-layout-100 clearfix">
+                                <textarea name="text" class="x-layout-100 x-border-grey x-box-border x-padding-5 x-item-space-8 body-bacground" placeholder="说点什么吧..."></textarea>
+                            </div>
+                            <div class="x-layout-100 clearfix">
+                                <button type="submit" class="x-button-primary x-border-none pull-right x-margin-top-5">发表评论</button>
+                            </div>
                         </div>
-                    </div>
-                    <div class="right">
-                        <div class="detail">
-                            <div class="title">
-                                <span>钟总 <em>昨天</em></span>
-                                <span><i class="fa fa-thumbs-up"></i><em>30</em></span>
+                    </form>
+                </#if>
+                <!-- -->
+                <@jp.commentPage pageSize="2">
+                <#if page ??>
+                    <#list page.getList() as comment>
+                        <div class="message">
+                            <div class="left">
+                                <div class="img" >
+                                    <img src="/jpress/static/jpress/admin/image/dot.png" alt="用户头像">
+                                </div>
                             </div>
-                            <p>优软科技拥有一支由优秀优软科技拥有一支由优秀优软科技拥有一支由优优软科技拥有一支由优秀优软科技拥有一支由优秀优软科技拥有一支由优秀优软科技拥有一支由优秀优软科技拥有一支由优秀优软科技拥有一支由优秀秀</p>
-                            <div class="title reply">
-                                <span>作者回复 <em>今天</em></span>
-                                <span><i class="fa fa-thumbs-up"></i><em>1</em></span>
+                            <div class="right">
+                                <div class="detail">
+                                    <div class="title">
+                                        <span>${comment.author!} <em>${(comment.created?string("yyyy-MM-dd"))!}</em></span>
+                                        <span><i class="fa fa-thumbs-up"></i><em>${(comment.vote_up)!'0'}</em></span>
+                                    </div>
+                                    <p>${comment.text!}</p>
+                                    <#if comment.qc_content ??>
+                                        <div class="title reply">
+                                            <span>作者回复: <em>${(comment.qc_created?string("yyyy-MM-dd"))!}</em></span>
+                                            <span><i class="fa fa-thumbs-up"></i><em>${(comment.vote_up)!'0'}</em></span>
+                                        </div>
+                                        <p>${comment.qc_content!}</p>
+                                    </#if>
+                                </div>
                             </div>
-                            <p>谢谢!</p>
                         </div>
-                    </div>
-                </div>
+                    </#list>
+
+                </#if>
+            </@jp.commentPage>
                 <div class="pull"><a href="">上拉加载更多</a></div>
             </div>
         </div>