CMS静态化后的动态数据刷新

This commit is contained in:
thinkgem
2023-04-10 10:28:33 +08:00
parent 183a4c3694
commit a756f973b9
8 changed files with 64 additions and 46 deletions

View File

@@ -4,37 +4,27 @@
*/
package com.jeesite.modules.cmsfront.web;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.jeesite.common.collect.ListUtils;
import com.jeesite.common.config.Global;
import com.jeesite.common.entity.Page;
import com.jeesite.common.lang.ObjectUtils;
import com.jeesite.common.lang.StringUtils;
import com.jeesite.common.web.BaseController;
import com.jeesite.modules.cms.entity.Article;
import com.jeesite.modules.cms.entity.ArticleData;
import com.jeesite.modules.cms.entity.Category;
import com.jeesite.modules.cms.entity.Comment;
import com.jeesite.modules.cms.entity.Site;
import com.jeesite.modules.cms.entity.*;
import com.jeesite.modules.cms.service.ArticleService;
import com.jeesite.modules.cms.service.CategoryService;
import com.jeesite.modules.cms.service.CommentService;
import com.jeesite.modules.cms.utils.CmsUtils;
import com.jeesite.modules.sys.utils.ValidCodeUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;
/**
* 网站Controller
@@ -274,9 +264,6 @@ public class FrontController extends BaseController {
return "error/404";
}
// 文章阅读次数+1
articleService.updateHitsAddOne(contentId);
// 如果设置了外部链接,则跳转到指定链接
if (StringUtils.isNotBlank(article.getHref())) {
if (article.getHref().startsWith(request.getContextPath())) {
@@ -307,6 +294,16 @@ public class FrontController extends BaseController {
return "error/404";
}
/**
* 获取文章读取次数并加一
*/
@RequestMapping(value = { "article-hits-{articleId}" })
@ResponseBody
public long articleHits(@PathVariable String articleId) {
articleService.updateHitsAddOne(articleId);
return articleService.getHits(articleId);
}
/**
* 内容评论
*/
@@ -347,12 +344,12 @@ public class FrontController extends BaseController {
comment.setStatus(isAudit ? Comment.STATUS_AUDIT : Comment.STATUS_NORMAL);
comment.setStatus(Comment.STATUS_AUDIT);
commentService.save(comment);
return "{result:1, message:'提交成功" + (isAudit ? ",请等待审核" : "") + "'}";
return renderResult("1", "提交成功" + (isAudit ? ",请等待审核" : "") + "");
} else {
return "{result:2, message:'验证码不正确。'}";
return renderResult("2", "验证码不正确。");
}
} else {
return "{result:2, message:'验证码不能为空。'}";
return renderResult("2", "验证码不能为空。");
}
}

View File

@@ -21,14 +21,19 @@
</select>
<update id="updateExpiredWeight">
update ${_prefix}cms_article SET weight = 0
UPDATE ${_prefix}cms_article SET weight = 0
WHERE weight &gt; 0 AND weight_date &lt; #{weightDate}
</update>
<update id="updateHitsAddOne">
update ${_prefix}cms_article set
UPDATE ${_prefix}cms_article SET
hits = hits + 1
WHERE id = #{id}
WHERE id = #{id}
</update>
<select id="getHits" resultType="long">
SELECT hits FROM ${_prefix}cms_article
WHERE id = #{id}
</select>
</mapper>

View File

@@ -13,4 +13,4 @@
</div>
</footer>
<script src="${ctxStatic}/modules/cmsfront/themes/js/bootstrap.min.js?${_version}"></script>
<script src="${ctxStatic}/modules/cmsfront/themes/js/custom.js?${_version}"></script>
<script src="${ctxStatic}/modules/cmsfront/themes/js/custom.js?${_version}"></script>

View File

@@ -21,7 +21,7 @@
<ul class="article-list">
<#html:foreach items="${articleList(site.siteCode, category.categoryCode, 5)}" var="article,status">
<li>${status.index}. &nbsp; <span class="pull-right">${article.updateDate,'yyyy-MM-dd'}</span>
<a href="${article.url}" style="color:${article.color}">${abbr(article.title,28)}</a> </li>
<a href="${article.url}" style="color:${article.color}">${abbr(article.title,28)}</a></li>
</#html:foreach>
</ul>
</div>

View File

@@ -6,11 +6,11 @@
* @param bodyClass body标签的class内容
*/
%>
<!DOCTYPE html><html><head>
<% print('<'+'!DOC'+'TYPE html'+'>'); %><html><head>
<% include('../include/head.html', {title: text(title!)}){} %>
</head><body class="${bodyClass!}">
<div class="container">
<% include('../include/header.html'){} %>
${layoutContent}
<% include('../include/footer.html'){} %>
<% include('../include/header.html'){}
%>${layoutContent}<%
include('../include/footer.html'){} %>
</div>

View File

@@ -19,13 +19,12 @@
</#html:foreach>
</ul>
<div class="pagination">${@page.toHtml()}</div>
<script type="text/javascript">
function page(n,s){
location="${category.url}?pageNo="+n+"&pageSize="+s;
}
<script>
function page(n, s){
location = "${category.url}?pageNo=" + n + "&pageSize=" + s;
}
</script>
</#html:if>
</div>
</div>
<% } %>

View File

@@ -24,7 +24,7 @@
<ul class="article-list">
<#html:foreach items="${articleList(site.siteCode, category.categoryCode, 5)}" var="article,status">
<li>${status.index}. &nbsp; <span class="pull-right">${article.updateDate,'yyyy-MM-dd'}</span>
<a href="${article.url}" style="color:${article.color}">${abbr(article.title,28)}</a> </li>
<a href="${article.url}" style="color:${article.color}">${abbr(article.title,28)}</a></li>
</#html:foreach>
</ul>
</div>
@@ -38,4 +38,3 @@
</div>
</div>
<% } %>

View File

@@ -1,9 +1,27 @@
<% layout('layouts/default.html', {title:'文章查看',libs: []}){ %>
<% include('include/banner.html'){} %>
<div class="row main article-view">
<h3 class="article-title">${article.title}</h3>
<blockquote class="article-desc">摘要:${article.description}</blockquote>
<div class="article-content uparse">${article.articleData.content}</div>
<div class="article-info">发布者:${article.createBy} &nbsp; 点击数:${article.hits} &nbsp; 发布时间:${article.createDate,"yyyy-MM-dd HH:mm"} &nbsp; 更新时间:${article.updateDate,"yyyy-MM-dd HH:mm"}</div>
<h3 class="article-title">
${article.title}
</h3>
<blockquote class="article-desc">
摘要:${article.description}
</blockquote>
<div class="article-content uparse">
${article.articleData.content}
</div>
<div class="article-info">
发布者:${article.createBy} &nbsp;
点击数:<span id="articleHits">~</span> &nbsp;
发布时间:${article.createDate,"yyyy-MM-dd HH:mm"} &nbsp;
更新时间:${article.updateDate,"yyyy-MM-dd HH:mm"}
</div>
</div>
<% } %>
<script>
$(function (){
$.get('${ctx}/article-hits-${article.id}', function(data){
$('#articleHits').html(data);
})
})
</script>