🎨 适配主题

pull/73/head
ruibaby 2018-12-31 15:41:01 +08:00
parent 0f8759048e
commit 6a56721ee0
10 changed files with 81 additions and 12 deletions

View File

@ -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());
} }

View File

@ -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;

View File

@ -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);
}
}

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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);
} }

View File

@ -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();
/** /**

View File

@ -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);
} }

View File

@ -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);
}
} }