mirror of https://github.com/halo-dev/halo
🎨 适配主题
parent
0f8759048e
commit
6a56721ee0
|
@ -1,9 +1,10 @@
|
||||||
package cc.ryanc.halo.config;
|
package cc.ryanc.halo.config;
|
||||||
|
|
||||||
import cc.ryanc.halo.model.method.RandomMethod;
|
import cc.ryanc.halo.model.freemarker.method.RandomMethod;
|
||||||
import cc.ryanc.halo.model.method.RecentPostsMethod;
|
import cc.ryanc.halo.model.freemarker.method.RecentCommentsMethod;
|
||||||
import cc.ryanc.halo.model.tag.ArticleTagDirective;
|
import cc.ryanc.halo.model.freemarker.method.RecentPostsMethod;
|
||||||
import cc.ryanc.halo.model.tag.CommonTagDirective;
|
import cc.ryanc.halo.model.freemarker.tag.ArticleTagDirective;
|
||||||
|
import cc.ryanc.halo.model.freemarker.tag.CommonTagDirective;
|
||||||
import cc.ryanc.halo.service.OptionsService;
|
import cc.ryanc.halo.service.OptionsService;
|
||||||
import cc.ryanc.halo.service.UserService;
|
import cc.ryanc.halo.service.UserService;
|
||||||
import freemarker.template.TemplateModelException;
|
import freemarker.template.TemplateModelException;
|
||||||
|
@ -46,6 +47,9 @@ public class FreeMarkerAutoConfiguration {
|
||||||
@Autowired
|
@Autowired
|
||||||
private RecentPostsMethod recentPostsMethod;
|
private RecentPostsMethod recentPostsMethod;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RecentCommentsMethod recentCommentsMethod;
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void setSharedVariable() {
|
public void setSharedVariable() {
|
||||||
try {
|
try {
|
||||||
|
@ -56,6 +60,7 @@ public class FreeMarkerAutoConfiguration {
|
||||||
configuration.setSharedVariable("user", userService.findUser());
|
configuration.setSharedVariable("user", userService.findUser());
|
||||||
configuration.setSharedVariable("randomMethod", randomMethod);
|
configuration.setSharedVariable("randomMethod", randomMethod);
|
||||||
configuration.setSharedVariable("recentPostsMethod", recentPostsMethod);
|
configuration.setSharedVariable("recentPostsMethod", recentPostsMethod);
|
||||||
|
configuration.setSharedVariable("recentCommentsMethod", recentCommentsMethod);
|
||||||
} catch (TemplateModelException e) {
|
} catch (TemplateModelException e) {
|
||||||
log.error("Custom tags failed to load:{}", e.getMessage());
|
log.error("Custom tags failed to load:{}", e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package cc.ryanc.halo.model.method;
|
package cc.ryanc.halo.model.freemarker.method;
|
||||||
|
|
||||||
import cn.hutool.core.util.RandomUtil;
|
import cn.hutool.core.util.RandomUtil;
|
||||||
import freemarker.template.SimpleNumber;
|
import freemarker.template.SimpleNumber;
|
|
@ -0,0 +1,35 @@
|
||||||
|
package cc.ryanc.halo.model.freemarker.method;
|
||||||
|
|
||||||
|
import cc.ryanc.halo.service.CommentService;
|
||||||
|
import freemarker.template.SimpleNumber;
|
||||||
|
import freemarker.template.TemplateMethodModelEx;
|
||||||
|
import freemarker.template.TemplateModelException;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author : RYAN0UP
|
||||||
|
* @date : 2018/12/31
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
public class RecentCommentsMethod implements TemplateMethodModelEx {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CommentService commentService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取最近的评论
|
||||||
|
*
|
||||||
|
* @param arguments 参数
|
||||||
|
* @return Object
|
||||||
|
* @throws TemplateModelException TemplateModelException
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Object exec(List arguments) throws TemplateModelException {
|
||||||
|
SimpleNumber argOne = (SimpleNumber) arguments.get(0);
|
||||||
|
int limit = argOne.getAsNumber().intValue();
|
||||||
|
return commentService.getRecentComments(limit);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
package cc.ryanc.halo.model.method;
|
package cc.ryanc.halo.model.freemarker.method;
|
||||||
|
|
||||||
import cc.ryanc.halo.service.PostService;
|
import cc.ryanc.halo.service.PostService;
|
||||||
import freemarker.template.SimpleNumber;
|
import freemarker.template.SimpleNumber;
|
|
@ -1,4 +1,4 @@
|
||||||
package cc.ryanc.halo.model.tag;
|
package cc.ryanc.halo.model.freemarker.tag;
|
||||||
|
|
||||||
import cc.ryanc.halo.model.enums.PostStatusEnum;
|
import cc.ryanc.halo.model.enums.PostStatusEnum;
|
||||||
import cc.ryanc.halo.model.enums.PostTypeEnum;
|
import cc.ryanc.halo.model.enums.PostTypeEnum;
|
|
@ -1,4 +1,4 @@
|
||||||
package cc.ryanc.halo.model.tag;
|
package cc.ryanc.halo.model.freemarker.tag;
|
||||||
|
|
||||||
import cc.ryanc.halo.service.*;
|
import cc.ryanc.halo.service.*;
|
||||||
import freemarker.core.Environment;
|
import freemarker.core.Environment;
|
|
@ -6,6 +6,7 @@ import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
import org.springframework.data.jpa.repository.Query;
|
import org.springframework.data.jpa.repository.Query;
|
||||||
|
import org.springframework.data.repository.query.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -78,7 +79,7 @@ public interface CommentRepository extends JpaRepository<Comment, Long> {
|
||||||
*
|
*
|
||||||
* @return List
|
* @return List
|
||||||
*/
|
*/
|
||||||
@Query(value = "SELECT * FROM halo_comment ORDER BY comment_date DESC LIMIT 5", nativeQuery = true)
|
@Query(value = "SELECT * FROM HALO_COMMENT ORDER BY COMMENT_DATE DESC LIMIT 5", nativeQuery = true)
|
||||||
List<Comment> findTopFive();
|
List<Comment> findTopFive();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -88,4 +89,13 @@ public interface CommentRepository extends JpaRepository<Comment, Long> {
|
||||||
* @return 评论数量
|
* @return 评论数量
|
||||||
*/
|
*/
|
||||||
Integer countAllByCommentStatus(Integer status);
|
Integer countAllByCommentStatus(Integer status);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取指定条数的评论
|
||||||
|
*
|
||||||
|
* @param limit 条数
|
||||||
|
* @return List
|
||||||
|
*/
|
||||||
|
@Query(value = "SELECT * FROM HALO_COMMENT WHERE COMMENT_STATUS = 0 ORDER BY COMMENT_DATE DESC LIMIT :limit",nativeQuery = true)
|
||||||
|
List<Comment> getCommentsByLimit(@Param(value = "limit") int limit);
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,7 @@ public interface PostRepository extends JpaRepository<Post, Long> {
|
||||||
*
|
*
|
||||||
* @return List
|
* @return List
|
||||||
*/
|
*/
|
||||||
@Query(value = "SELECT * FROM halo_post where post_type='post' ORDER BY post_date DESC LIMIT 5", nativeQuery = true)
|
@Query(value = "SELECT * FROM HALO_POST WHERE POST_TYPE='post' ORDER BY POST_DATE DESC LIMIT 5", nativeQuery = true)
|
||||||
List<Post> findTopFive();
|
List<Post> findTopFive();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -195,7 +195,7 @@ public interface PostRepository extends JpaRepository<Post, Long> {
|
||||||
* @param pageable 分页信息
|
* @param pageable 分页信息
|
||||||
* @return Page
|
* @return Page
|
||||||
*/
|
*/
|
||||||
@Query(value = "select * from halo_post where post_status = 0 and post_type='post' and post_title like '%=:keyword%' or post_content like '%=:keyword%'", nativeQuery = true)
|
@Query(value = "SELECT * FROM HALO_POST WHERE POST_STATUS = 0 AND POST_TYPE='post' AND POST_TITLE LIKE '%=:keyword%' OR POST_CONTENT LIKE '%=:keyword%'", nativeQuery = true)
|
||||||
Page<Post> findPostByPostTitleLikeOrPostContentLikeAndPostTypeAndPostStatus(String keyword, Pageable pageable);
|
Page<Post> findPostByPostTitleLikeOrPostContentLikeAndPostTypeAndPostStatus(String keyword, Pageable pageable);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -211,7 +211,7 @@ public interface PostRepository extends JpaRepository<Post, Long> {
|
||||||
*
|
*
|
||||||
* @return Long
|
* @return Long
|
||||||
*/
|
*/
|
||||||
@Query(value = "select sum(post_views) from halo_post", nativeQuery = true)
|
@Query(value = "SELECT SUM(POST_VIEWS) FROM HALO_POST", nativeQuery = true)
|
||||||
Long getPostViewsSum();
|
Long getPostViewsSum();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -132,4 +132,12 @@ public interface CommentService {
|
||||||
* @return Long
|
* @return Long
|
||||||
*/
|
*/
|
||||||
Long getCount();
|
Long getCount();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取最近的评论
|
||||||
|
*
|
||||||
|
* @param limit limit
|
||||||
|
* @return List
|
||||||
|
*/
|
||||||
|
List<Comment> getRecentComments(int limit);
|
||||||
}
|
}
|
||||||
|
|
|
@ -198,4 +198,15 @@ public class CommentServiceImpl implements CommentService {
|
||||||
public Long getCount() {
|
public Long getCount() {
|
||||||
return commentRepository.count();
|
return commentRepository.count();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取最近的评论
|
||||||
|
*
|
||||||
|
* @param limit limit
|
||||||
|
* @return List
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<Comment> getRecentComments(int limit) {
|
||||||
|
return commentRepository.getCommentsByLimit(limit);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue