diff --git a/PREVIEW.md b/PREVIEW.md deleted file mode 100644 index f67ea32f7..000000000 --- a/PREVIEW.md +++ /dev/null @@ -1,61 +0,0 @@ -# Halo界面预览 - -## 安装页 - -![](https://cdn.ryanc.cc/img/github/halo-blog/halo-install.png) - -## 后台登录 - -![](https://cdn.ryanc.cc/img/github/halo-blog/halo-admin-login.png) - -## 后台首页 - -![](https://cdn.ryanc.cc/img/github/halo-blog/halo-admin-index.png) - -![](https://cdn.ryanc.cc/img/github/halo-blog/halo-admin-index-2.png) - -## 文章列表 - -![](https://cdn.ryanc.cc/img/github/halo-blog/halo-admin-posts.png) - -## 文章编辑 - -![](https://cdn.ryanc.cc/img/github/halo-blog/halo-admin-edit.png) - -## 标签列表 - -![](https://cdn.ryanc.cc/img/github/halo-blog/halo-admin-tags.png) - -## 预设页面 - -![](https://cdn.ryanc.cc/img/github/halo-blog/halo-admin-pages.png) - -## 附件页面 - -![](https://cdn.ryanc.cc/img/github/halo-blog/halo-admin-attach.png) - -## 评论管理 - -![](https://cdn.ryanc.cc/img/github/halo-blog/halo-admin-comments.png) - -## 菜单管理 - -![](https://cdn.ryanc.cc/img/github/halo-blog/halo-admin-menus.png) - -## 系统设置 - -![](https://cdn.ryanc.cc/img/github/halo-blog/halo-admin-options.png) - -## 主题管理 - -![](https://cdn.ryanc.cc/img/github/halo-blog/halo-admin-themes.png) - -![](https://cdn.ryanc.cc/img/github/halo-blog/halo-admin-themes-options.png) - -## Material主题(感谢[Viosey](https://viosey.com)) - -![](https://cdn.ryanc.cc/img/github/halo-blog/halo-index-material.png) - -## Anatole主题(感谢[Caicai](https://www.caicai.me/)) - -![](https://cdn.ryanc.cc/img/github/halo-blog/halo-index-anatole.png) \ No newline at end of file diff --git a/README.md b/README.md index c9db2c175..b0cb72206 100755 --- a/README.md +++ b/README.md @@ -42,13 +42,13 @@ Let's start: http://localhost:8090 ## Demo 演示 -[界面预览](PREVIEW.md) +[界面预览](https://halo-doc.ryanc.cc/preview) [Ryan0up'S Blog](https://ryanc.cc) [SNAIL BLOG](https://slogc.cc) -[宋浩志博客](http://songhaozhi.com/) +[宋浩志博客](http://songhaozhi.com) ## Download 下载 diff --git a/pom.xml b/pom.xml index 991e96928..73c3fa8ec 100755 --- a/pom.xml +++ b/pom.xml @@ -65,15 +65,14 @@ ${oh-my-email.version} - - mysql mysql-connector-java runtime - --> + com.h2database h2 diff --git a/src/main/java/cc/ryanc/halo/config/FreeMarkerConfig.java b/src/main/java/cc/ryanc/halo/config/FreeMarkerConfig.java index b58a3179d..12c7eaa2e 100644 --- a/src/main/java/cc/ryanc/halo/config/FreeMarkerConfig.java +++ b/src/main/java/cc/ryanc/halo/config/FreeMarkerConfig.java @@ -36,13 +36,13 @@ public class FreeMarkerConfig { private ArticleTagDirective articleTagDirective; @PostConstruct - public void setSharedVariable(){ - configuration.setSharedVariable("commonTag",commonTagDirective); - configuration.setSharedVariable("articleTag",articleTagDirective); - try{ - configuration.setSharedVariable("options",optionsService.findAllOptions()); - configuration.setSharedVariable("user",userService.findUser()); - }catch (TemplateModelException e){ + public void setSharedVariable() { + configuration.setSharedVariable("commonTag", commonTagDirective); + configuration.setSharedVariable("articleTag", articleTagDirective); + try { + configuration.setSharedVariable("options", optionsService.findAllOptions()); + configuration.setSharedVariable("user", userService.findUser()); + } catch (TemplateModelException e) { e.printStackTrace(); } } diff --git a/src/main/java/cc/ryanc/halo/config/MvcConfig.java b/src/main/java/cc/ryanc/halo/config/MvcConfig.java index 43f98b097..0c9d9a3a4 100644 --- a/src/main/java/cc/ryanc/halo/config/MvcConfig.java +++ b/src/main/java/cc/ryanc/halo/config/MvcConfig.java @@ -16,7 +16,6 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; * @author : RYAN0UP * @date : 2018/1/2 * @version : 1.0 - * description: */ @Slf4j @Configuration diff --git a/src/main/java/cc/ryanc/halo/config/StartupConfig.java b/src/main/java/cc/ryanc/halo/config/StartupConfig.java index 86279a589..5949a3efd 100755 --- a/src/main/java/cc/ryanc/halo/config/StartupConfig.java +++ b/src/main/java/cc/ryanc/halo/config/StartupConfig.java @@ -20,7 +20,6 @@ import java.util.Map; * @author : RYAN0UP * @date : 2017/12/22 * @version : 1.0 - * description: Springboot启动后 */ @Slf4j @Configuration diff --git a/src/main/java/cc/ryanc/halo/config/XssConfig.java b/src/main/java/cc/ryanc/halo/config/XssConfig.java new file mode 100644 index 000000000..13ead755d --- /dev/null +++ b/src/main/java/cc/ryanc/halo/config/XssConfig.java @@ -0,0 +1,33 @@ +package cc.ryanc.halo.config; + +import cc.ryanc.halo.security.XssFilter; +import com.google.common.collect.Maps; +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.Map; + +/** + * @author : RYAN0UP + * @version : 1.0 + * @date : 2018/5/4 + */ +@Configuration +public class XssConfig { + + @Bean + public FilterRegistrationBean xssFilterRegistrationBean() { + FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(); + filterRegistrationBean.setFilter(new XssFilter()); + filterRegistrationBean.setOrder(1); + filterRegistrationBean.setEnabled(true); + filterRegistrationBean.addUrlPatterns("/*"); + Map initParameters = Maps.newHashMap(); + //后台不做拦截请求 + initParameters.put("excludes", "/admin/*"); + initParameters.put("isIncludeRichText", "true"); + filterRegistrationBean.setInitParameters(initParameters); + return filterRegistrationBean; + } +} diff --git a/src/main/java/cc/ryanc/halo/model/domain/Attachment.java b/src/main/java/cc/ryanc/halo/model/domain/Attachment.java index c11190abd..25d8d9359 100644 --- a/src/main/java/cc/ryanc/halo/model/domain/Attachment.java +++ b/src/main/java/cc/ryanc/halo/model/domain/Attachment.java @@ -11,14 +11,13 @@ import java.util.Date; /** * @author : RYAN0UP - * @date : 2018/1/10 * @version : 1.0 - * description : + * @date : 2018/1/10 */ @Data @Entity @Table(name = "halo_attachment") -public class Attachment implements Serializable{ +public class Attachment implements Serializable { private static final long serialVersionUID = 3060117944880138064L; diff --git a/src/main/java/cc/ryanc/halo/model/domain/Category.java b/src/main/java/cc/ryanc/halo/model/domain/Category.java index 616420cb5..9483cb885 100755 --- a/src/main/java/cc/ryanc/halo/model/domain/Category.java +++ b/src/main/java/cc/ryanc/halo/model/domain/Category.java @@ -10,14 +10,13 @@ import java.util.List; /** * @author : RYAN0UP - * @date : 2017/11/30 * @version : 1.0 - * description : 分类目录实体类 + * @date : 2017/11/30 */ @Data @Entity @Table(name = "halo_category") -public class Category implements Serializable{ +public class Category implements Serializable { private static final long serialVersionUID = 8383678847517271505L; diff --git a/src/main/java/cc/ryanc/halo/model/domain/Comment.java b/src/main/java/cc/ryanc/halo/model/domain/Comment.java index e5d9b316b..5a7086d34 100644 --- a/src/main/java/cc/ryanc/halo/model/domain/Comment.java +++ b/src/main/java/cc/ryanc/halo/model/domain/Comment.java @@ -10,7 +10,6 @@ import java.util.Date; * @author : RYAN0UP * @date : 2018/1/22 * @version : 1.0 - * description : 评论实体类 */ @Data @Entity diff --git a/src/main/java/cc/ryanc/halo/model/domain/Gallery.java b/src/main/java/cc/ryanc/halo/model/domain/Gallery.java index e579a1034..c56214146 100644 --- a/src/main/java/cc/ryanc/halo/model/domain/Gallery.java +++ b/src/main/java/cc/ryanc/halo/model/domain/Gallery.java @@ -7,15 +7,12 @@ import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; import java.io.Serializable; -import java.util.Date; /** * @author : RYAN0UP * @date : 2018/2/26 * @version : 1.0 - * description : */ - @Data @Entity @Table(name = "halo_gallery") diff --git a/src/main/java/cc/ryanc/halo/model/domain/Link.java b/src/main/java/cc/ryanc/halo/model/domain/Link.java index d869438b5..cf9890abb 100755 --- a/src/main/java/cc/ryanc/halo/model/domain/Link.java +++ b/src/main/java/cc/ryanc/halo/model/domain/Link.java @@ -12,7 +12,6 @@ import java.io.Serializable; * @author : RYAN0UP * @date : 2017/11/14 * @version : 1.0 - * description : 友情链接的实体类 */ @Data @Entity diff --git a/src/main/java/cc/ryanc/halo/model/domain/Logs.java b/src/main/java/cc/ryanc/halo/model/domain/Logs.java index 92effaf17..67eb06cc9 100644 --- a/src/main/java/cc/ryanc/halo/model/domain/Logs.java +++ b/src/main/java/cc/ryanc/halo/model/domain/Logs.java @@ -11,9 +11,8 @@ import java.util.Date; /** * @author : RYAN0UP - * @date : 2018/1/19 * @version : 1.0 - * description : 操作日志实体类 + * @date : 2018/1/19 */ @Data @Entity @@ -49,7 +48,8 @@ public class Logs implements Serializable { */ private Date logCreated; - public Logs() { } + public Logs() { + } public Logs(String logTitle, String logContent, String logIp, Date logCreated) { this.logTitle = logTitle; diff --git a/src/main/java/cc/ryanc/halo/model/domain/Menu.java b/src/main/java/cc/ryanc/halo/model/domain/Menu.java index 87e9c16b0..b66190773 100644 --- a/src/main/java/cc/ryanc/halo/model/domain/Menu.java +++ b/src/main/java/cc/ryanc/halo/model/domain/Menu.java @@ -12,7 +12,6 @@ import java.io.Serializable; * @author : RYAN0UP * @date : 2018/1/24 * @version : 1.0 - * description : */ @Data @Entity diff --git a/src/main/java/cc/ryanc/halo/model/domain/Options.java b/src/main/java/cc/ryanc/halo/model/domain/Options.java index 4896936d2..3802a545d 100755 --- a/src/main/java/cc/ryanc/halo/model/domain/Options.java +++ b/src/main/java/cc/ryanc/halo/model/domain/Options.java @@ -12,7 +12,6 @@ import java.io.Serializable; * @author : RYAN0UP * @date : 2017/11/14 * @version : 1.0 - * description : 设置实体类 */ @Data @Entity diff --git a/src/main/java/cc/ryanc/halo/model/domain/Post.java b/src/main/java/cc/ryanc/halo/model/domain/Post.java index da6435c57..f2beae95f 100755 --- a/src/main/java/cc/ryanc/halo/model/domain/Post.java +++ b/src/main/java/cc/ryanc/halo/model/domain/Post.java @@ -5,18 +5,19 @@ import lombok.Data; import javax.persistence.*; import java.io.Serializable; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; /** * @author : RYAN0UP - * @date : 2017/11/14 * @version : 1.0 - * description : 文章实体类 + * @date : 2017/11/14 */ @Data @Entity @Table(name = "halo_post") -public class Post implements Serializable{ +public class Post implements Serializable { private static final long serialVersionUID = -6019684584665869629L; @@ -72,25 +73,25 @@ public class Post implements Serializable{ /** * 文章所属分类 */ - @ManyToMany(cascade = {CascadeType.PERSIST},fetch = FetchType.LAZY) + @ManyToMany(cascade = {CascadeType.PERSIST}, fetch = FetchType.LAZY) @JoinTable(name = "halo_posts_categories", - joinColumns = {@JoinColumn(name = "post_id",nullable = false)}, - inverseJoinColumns = {@JoinColumn(name = "cate_id",nullable = false)}) + joinColumns = {@JoinColumn(name = "post_id", nullable = false)}, + inverseJoinColumns = {@JoinColumn(name = "cate_id", nullable = false)}) private List categories = new ArrayList<>(); /** * 文章所属标签 */ - @ManyToMany(cascade = {CascadeType.PERSIST},fetch = FetchType.LAZY) + @ManyToMany(cascade = {CascadeType.PERSIST}, fetch = FetchType.LAZY) @JoinTable(name = "halo_posts_tags", - joinColumns = {@JoinColumn(name = "post_id",nullable = false)}, - inverseJoinColumns = {@JoinColumn(name = "tag_id",nullable = false)}) + joinColumns = {@JoinColumn(name = "post_id", nullable = false)}, + inverseJoinColumns = {@JoinColumn(name = "tag_id", nullable = false)}) private List tags = new ArrayList<>(); /** * 文章的评论 */ - @OneToMany(mappedBy = "post",cascade = {CascadeType.REMOVE},fetch = FetchType.EAGER) + @OneToMany(mappedBy = "post", cascade = {CascadeType.REMOVE}, fetch = FetchType.EAGER) @JsonIgnore private List comments = new ArrayList<>(); diff --git a/src/main/java/cc/ryanc/halo/model/domain/Tag.java b/src/main/java/cc/ryanc/halo/model/domain/Tag.java index 730ec5891..b9a97ec55 100644 --- a/src/main/java/cc/ryanc/halo/model/domain/Tag.java +++ b/src/main/java/cc/ryanc/halo/model/domain/Tag.java @@ -12,12 +12,11 @@ import java.util.List; * @author : RYAN0UP * @date : 2018/1/12 * @version : 1.0 - * description : 文章标签实体类 */ @Data @Entity @Table(name = "halo_tag") -public class Tag implements Serializable{ +public class Tag implements Serializable { private static final long serialVersionUID = -7501342327884372194L; diff --git a/src/main/java/cc/ryanc/halo/model/domain/User.java b/src/main/java/cc/ryanc/halo/model/domain/User.java index df910d5b9..814333588 100755 --- a/src/main/java/cc/ryanc/halo/model/domain/User.java +++ b/src/main/java/cc/ryanc/halo/model/domain/User.java @@ -2,20 +2,22 @@ package cc.ryanc.halo.model.domain; import lombok.Data; -import javax.persistence.*; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.Table; import java.io.Serializable; import java.util.Date; /** * @author : RYAN0UP - * @date : 2017/11/14 * @version : 1.0 - * description : 用户实体类 + * @date : 2017/11/14 */ @Data @Entity @Table(name = "halo_user") -public class User implements Serializable{ +public class User implements Serializable { private static final long serialVersionUID = -5144055068797033748L; diff --git a/src/main/java/cc/ryanc/halo/model/dto/HaloConst.java b/src/main/java/cc/ryanc/halo/model/dto/HaloConst.java index 851511844..12143759f 100644 --- a/src/main/java/cc/ryanc/halo/model/dto/HaloConst.java +++ b/src/main/java/cc/ryanc/halo/model/dto/HaloConst.java @@ -1,7 +1,6 @@ package cc.ryanc.halo.model.dto; import cc.ryanc.halo.model.domain.Attachment; -import cc.ryanc.halo.model.domain.User; import java.util.ArrayList; import java.util.HashMap; @@ -12,7 +11,7 @@ import java.util.Map; * @author : RYAN0UP * @date : 2017/12/29 * @version : 1.0 - * description: 环境常量 + * description: 常量 */ public class HaloConst { diff --git a/src/main/java/cc/ryanc/halo/model/dto/LogsRecord.java b/src/main/java/cc/ryanc/halo/model/dto/LogsRecord.java index dfe426c8b..737c5c244 100644 --- a/src/main/java/cc/ryanc/halo/model/dto/LogsRecord.java +++ b/src/main/java/cc/ryanc/halo/model/dto/LogsRecord.java @@ -2,9 +2,8 @@ package cc.ryanc.halo.model.dto; /** * @author : RYAN0UP - * @date : 2018/1/19 * @version : 1.0 - * description : + * @date : 2018/1/19 */ public interface LogsRecord { diff --git a/src/main/java/cc/ryanc/halo/model/dto/Theme.java b/src/main/java/cc/ryanc/halo/model/dto/Theme.java index 6cad7cba3..9f3c14998 100644 --- a/src/main/java/cc/ryanc/halo/model/dto/Theme.java +++ b/src/main/java/cc/ryanc/halo/model/dto/Theme.java @@ -8,7 +8,6 @@ import java.io.Serializable; * @author : RYAN0UP * @date : 2018/1/3 * @version : 1.0 - * description : 主题数据 */ @Data public class Theme implements Serializable { diff --git a/src/main/java/cc/ryanc/halo/model/tag/ArticleTagDirective.java b/src/main/java/cc/ryanc/halo/model/tag/ArticleTagDirective.java index 95e530515..00655c2c2 100644 --- a/src/main/java/cc/ryanc/halo/model/tag/ArticleTagDirective.java +++ b/src/main/java/cc/ryanc/halo/model/tag/ArticleTagDirective.java @@ -26,17 +26,17 @@ public class ArticleTagDirective implements TemplateDirectiveModel { @Override public void execute(Environment environment, Map map, TemplateModel[] templateModels, TemplateDirectiveBody templateDirectiveBody) throws TemplateException, IOException { DefaultObjectWrapperBuilder builder = new DefaultObjectWrapperBuilder(Configuration.VERSION_2_3_25); - if(map.containsKey(METHOD_KEY)){ + if (map.containsKey(METHOD_KEY)) { String method = map.get(METHOD_KEY).toString(); - switch (method){ + switch (method) { case "postsCount": - environment.setVariable("postsCount",builder.build().wrap(postService.findAllPosts(HaloConst.POST_TYPE_POST).size())); + environment.setVariable("postsCount", builder.build().wrap(postService.findAllPosts(HaloConst.POST_TYPE_POST).size())); break; case "archives": - environment.setVariable("archives",builder.build().wrap(postService.findPostGroupByYearAndMonth())); + environment.setVariable("archives", builder.build().wrap(postService.findPostGroupByYearAndMonth())); break; case "archivesLess": - environment.setVariable("archivesLess",builder.build().wrap(postService.findPostGroupByYear())); + environment.setVariable("archivesLess", builder.build().wrap(postService.findPostGroupByYear())); break; default: break; diff --git a/src/main/java/cc/ryanc/halo/model/tag/CommonTagDirective.java b/src/main/java/cc/ryanc/halo/model/tag/CommonTagDirective.java index 2a8f927fb..262ea1d53 100644 --- a/src/main/java/cc/ryanc/halo/model/tag/CommonTagDirective.java +++ b/src/main/java/cc/ryanc/halo/model/tag/CommonTagDirective.java @@ -33,17 +33,17 @@ public class CommonTagDirective implements TemplateDirectiveModel { @Override public void execute(Environment environment, Map map, TemplateModel[] templateModels, TemplateDirectiveBody templateDirectiveBody) throws TemplateException, IOException { DefaultObjectWrapperBuilder builder = new DefaultObjectWrapperBuilder(Configuration.VERSION_2_3_25); - if(map.containsKey(METHOD_KEY)){ + if (map.containsKey(METHOD_KEY)) { String method = map.get(METHOD_KEY).toString(); - switch (method){ + switch (method) { case "menus": - environment.setVariable("menus",builder.build().wrap(menuService.findAllMenus())); + environment.setVariable("menus", builder.build().wrap(menuService.findAllMenus())); break; case "categories": - environment.setVariable("categories",builder.build().wrap(categoryService.findAllCategories())); + environment.setVariable("categories", builder.build().wrap(categoryService.findAllCategories())); break; case "newComments": - environment.setVariable("newComments",builder.build().wrap(commentService.findAllComments(1))); + environment.setVariable("newComments", builder.build().wrap(commentService.findAllComments(1))); break; default: break; diff --git a/src/main/java/cc/ryanc/halo/repository/AttachmentRepository.java b/src/main/java/cc/ryanc/halo/repository/AttachmentRepository.java index e6684f46f..a1392f3a0 100644 --- a/src/main/java/cc/ryanc/halo/repository/AttachmentRepository.java +++ b/src/main/java/cc/ryanc/halo/repository/AttachmentRepository.java @@ -7,17 +7,16 @@ import org.springframework.data.jpa.repository.JpaRepository; /** * @author : RYAN0UP - * @date : 2018/1/10 * @version : 1.0 - * description : + * @date : 2018/1/10 */ -public interface AttachmentRepository extends JpaRepository{ +public interface AttachmentRepository extends JpaRepository { /** * 查询所有附件,分页 * * @param pageable pageable - * @return page + * @return page */ @Override Page findAll(Pageable pageable); diff --git a/src/main/java/cc/ryanc/halo/repository/CategoryRepository.java b/src/main/java/cc/ryanc/halo/repository/CategoryRepository.java index 5c9f70a78..d69c56c02 100755 --- a/src/main/java/cc/ryanc/halo/repository/CategoryRepository.java +++ b/src/main/java/cc/ryanc/halo/repository/CategoryRepository.java @@ -7,7 +7,6 @@ import org.springframework.data.jpa.repository.JpaRepository; * @author : RYAN0UP * @date : 2017/11/30 * @version : 1.0 - * description: 分类目录持久层 */ public interface CategoryRepository extends JpaRepository{ diff --git a/src/main/java/cc/ryanc/halo/repository/CommentRepository.java b/src/main/java/cc/ryanc/halo/repository/CommentRepository.java index a5ee0de98..85ccc71b8 100644 --- a/src/main/java/cc/ryanc/halo/repository/CommentRepository.java +++ b/src/main/java/cc/ryanc/halo/repository/CommentRepository.java @@ -13,7 +13,6 @@ import java.util.List; * @author : RYAN0UP * @date : 2018/1/22 * @version : 1.0 - * description : */ public interface CommentRepository extends JpaRepository { diff --git a/src/main/java/cc/ryanc/halo/repository/GalleryRepository.java b/src/main/java/cc/ryanc/halo/repository/GalleryRepository.java index 21e412515..1d9e63b8b 100644 --- a/src/main/java/cc/ryanc/halo/repository/GalleryRepository.java +++ b/src/main/java/cc/ryanc/halo/repository/GalleryRepository.java @@ -7,7 +7,6 @@ import org.springframework.data.jpa.repository.JpaRepository; * @author : RYAN0UP * @date : 2018/2/26 * @version : 1.0 - * description : */ public interface GalleryRepository extends JpaRepository { } diff --git a/src/main/java/cc/ryanc/halo/repository/LinkRepository.java b/src/main/java/cc/ryanc/halo/repository/LinkRepository.java index 05fbbdbef..ab955a19b 100755 --- a/src/main/java/cc/ryanc/halo/repository/LinkRepository.java +++ b/src/main/java/cc/ryanc/halo/repository/LinkRepository.java @@ -7,7 +7,6 @@ import org.springframework.data.jpa.repository.JpaRepository; * @author : RYAN0UP * @date : 2017/11/14 * @version : 1.0 - * description: 友情链接持久层 */ public interface LinkRepository extends JpaRepository{ } diff --git a/src/main/java/cc/ryanc/halo/repository/LogsRepository.java b/src/main/java/cc/ryanc/halo/repository/LogsRepository.java index 2622a5ea3..945170e8c 100644 --- a/src/main/java/cc/ryanc/halo/repository/LogsRepository.java +++ b/src/main/java/cc/ryanc/halo/repository/LogsRepository.java @@ -10,7 +10,6 @@ import java.util.List; * @author : RYAN0UP * @date : 2018/1/19 * @version : 1.0 - * description : */ public interface LogsRepository extends JpaRepository { diff --git a/src/main/java/cc/ryanc/halo/repository/MenuRepository.java b/src/main/java/cc/ryanc/halo/repository/MenuRepository.java index 6a7398159..fd2616de4 100644 --- a/src/main/java/cc/ryanc/halo/repository/MenuRepository.java +++ b/src/main/java/cc/ryanc/halo/repository/MenuRepository.java @@ -7,7 +7,6 @@ import org.springframework.data.jpa.repository.JpaRepository; * @author : RYAN0UP * @date : 2018/1/24 * @version : 1.0 - * description : */ public interface MenuRepository extends JpaRepository { } diff --git a/src/main/java/cc/ryanc/halo/repository/OptionsRepository.java b/src/main/java/cc/ryanc/halo/repository/OptionsRepository.java index e168d107d..8ebf2077c 100755 --- a/src/main/java/cc/ryanc/halo/repository/OptionsRepository.java +++ b/src/main/java/cc/ryanc/halo/repository/OptionsRepository.java @@ -7,7 +7,6 @@ import org.springframework.data.jpa.repository.JpaRepository; * @author : RYAN0UP * @date : 2017/11/14 * @version : 1.0 - * description: 设置选项持久层 */ public interface OptionsRepository extends JpaRepository{ diff --git a/src/main/java/cc/ryanc/halo/repository/PostRepository.java b/src/main/java/cc/ryanc/halo/repository/PostRepository.java index 40b4c1600..0ad49275a 100644 --- a/src/main/java/cc/ryanc/halo/repository/PostRepository.java +++ b/src/main/java/cc/ryanc/halo/repository/PostRepository.java @@ -16,7 +16,6 @@ import java.util.List; * @author : RYAN0UP * @date : 2017/11/14 * @version : 1.0 - * description : 文章持久层 */ public interface PostRepository extends JpaRepository{ diff --git a/src/main/java/cc/ryanc/halo/repository/TagRepository.java b/src/main/java/cc/ryanc/halo/repository/TagRepository.java index e56190b4b..32ba179a7 100644 --- a/src/main/java/cc/ryanc/halo/repository/TagRepository.java +++ b/src/main/java/cc/ryanc/halo/repository/TagRepository.java @@ -7,7 +7,6 @@ import org.springframework.data.jpa.repository.JpaRepository; * @author : RYAN0UP * @date : 2018/1/12 * @version : 1.0 - * description : */ public interface TagRepository extends JpaRepository{ diff --git a/src/main/java/cc/ryanc/halo/repository/UserRepository.java b/src/main/java/cc/ryanc/halo/repository/UserRepository.java index f0f32d7d4..28630ea95 100755 --- a/src/main/java/cc/ryanc/halo/repository/UserRepository.java +++ b/src/main/java/cc/ryanc/halo/repository/UserRepository.java @@ -9,7 +9,6 @@ import java.util.List; * @author : RYAN0UP * @date : 2017/11/14 * @version : 1.0 - * description: */ public interface UserRepository extends JpaRepository{ diff --git a/src/main/java/cc/ryanc/halo/security/JsoupUtil.java b/src/main/java/cc/ryanc/halo/security/JsoupUtil.java new file mode 100644 index 000000000..7fbfd6d1e --- /dev/null +++ b/src/main/java/cc/ryanc/halo/security/JsoupUtil.java @@ -0,0 +1,32 @@ +package cc.ryanc.halo.security; + +import org.apache.commons.lang3.StringUtils; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.safety.Whitelist; + +/** + * @author : RYAN0UP + * @version : 1.0 + * @date : 2018/5/4 + */ +public class JsoupUtil { + + /** + * 白名单 + */ + private static final Whitelist whitelist = Whitelist.basicWithImages(); + + private static final Document.OutputSettings outputSettings = new Document.OutputSettings().prettyPrint(false); + + static { + whitelist.addAttributes(":all", "style"); + } + + public static String clean(String content) { + if (StringUtils.isNotBlank(content)) { + content = content.trim(); + } + return Jsoup.clean(content, "", whitelist, outputSettings); + } +} diff --git a/src/main/java/cc/ryanc/halo/security/XssFilter.java b/src/main/java/cc/ryanc/halo/security/XssFilter.java new file mode 100644 index 000000000..3103d1997 --- /dev/null +++ b/src/main/java/cc/ryanc/halo/security/XssFilter.java @@ -0,0 +1,77 @@ +package cc.ryanc.halo.security; + +import org.apache.commons.lang3.BooleanUtils; +import org.apache.commons.lang3.StringUtils; + +import javax.servlet.*; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * @author : RYAN0UP + * @version : 1.0 + * @date : 2018/5/4 + */ +public class XssFilter implements Filter { + + /** + * 是否过滤富文本内容 + */ + private static boolean IS_INCLUDE_RICH_TEXT = false; + + private List excludes = new ArrayList<>(); + + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { + HttpServletRequest req = (HttpServletRequest) request; + HttpServletResponse resp = (HttpServletResponse) response; + if (handleExcludeURL(req, resp)) { + filterChain.doFilter(request, response); + return; + } + XssHttpServletRequestWrapper xssRequest = new XssHttpServletRequestWrapper((HttpServletRequest) request, IS_INCLUDE_RICH_TEXT); + filterChain.doFilter(xssRequest, response); + } + + private boolean handleExcludeURL(HttpServletRequest request, HttpServletResponse response) { + + if (excludes == null || excludes.isEmpty()) { + return false; + } + + String url = request.getServletPath(); + for (String pattern : excludes) { + Pattern p = Pattern.compile("^" + pattern); + Matcher m = p.matcher(url); + if (m.find()) { + return true; + } + } + + return false; + } + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + String isIncludeRichText = filterConfig.getInitParameter("isIncludeRichText"); + if (StringUtils.isNotBlank(isIncludeRichText)) { + IS_INCLUDE_RICH_TEXT = BooleanUtils.toBoolean(isIncludeRichText); + } + String temp = filterConfig.getInitParameter("excludes"); + if (temp != null) { + String[] url = temp.split(","); + for (int i = 0; url != null && i < url.length; i++) { + excludes.add(url[i]); + } + } + } + + @Override + public void destroy() { + } +} diff --git a/src/main/java/cc/ryanc/halo/security/XssHttpServletRequestWrapper.java b/src/main/java/cc/ryanc/halo/security/XssHttpServletRequestWrapper.java new file mode 100644 index 000000000..d8532b250 --- /dev/null +++ b/src/main/java/cc/ryanc/halo/security/XssHttpServletRequestWrapper.java @@ -0,0 +1,81 @@ +package cc.ryanc.halo.security; + +import org.apache.commons.lang3.StringUtils; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; + +/** + * @author : RYAN0UP + * @version : 1.0 + * @date : 2018/5/4 + */ +public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper { + + HttpServletRequest orgRequest = null; + private boolean isIncludeRichText = false; + + public XssHttpServletRequestWrapper(HttpServletRequest request, boolean isIncludeRichText) { + super(request); + orgRequest = request; + this.isIncludeRichText = isIncludeRichText; + } + + /** + * 获取最原始的request的静态方法 + * + * @param req req + * @return HttpServletRequest + */ + public static HttpServletRequest getOrgRequest(HttpServletRequest req) { + if (req instanceof XssHttpServletRequestWrapper) { + return ((XssHttpServletRequestWrapper) req).getOrgRequest(); + } + + return req; + } + + @Override + public String getParameter(String name) { + Boolean flag = ("content".equals(name) || name.endsWith("WithHtml")); + if (flag && !isIncludeRichText) { + return super.getParameter(name); + } + name = JsoupUtil.clean(name); + String value = super.getParameter(name); + if (StringUtils.isNotBlank(value)) { + value = JsoupUtil.clean(value); + } + return value; + } + + @Override + public String[] getParameterValues(String name) { + String[] arr = super.getParameterValues(name); + if (arr != null) { + for (int i = 0; i < arr.length; i++) { + arr[i] = JsoupUtil.clean(arr[i]); + } + } + return arr; + } + + @Override + public String getHeader(String name) { + name = JsoupUtil.clean(name); + String value = super.getHeader(name); + if (StringUtils.isNotBlank(value)) { + value = JsoupUtil.clean(value); + } + return value; + } + + /** + * 获取最原始的request + * + * @return HttpServletRequest + */ + public HttpServletRequest getOrgRequest() { + return orgRequest; + } +} diff --git a/src/main/java/cc/ryanc/halo/service/AttachmentService.java b/src/main/java/cc/ryanc/halo/service/AttachmentService.java index ace8614b8..97047118b 100644 --- a/src/main/java/cc/ryanc/halo/service/AttachmentService.java +++ b/src/main/java/cc/ryanc/halo/service/AttachmentService.java @@ -9,9 +9,8 @@ import java.util.Optional; /** * @author : RYAN0UP - * @date : 2018/1/10 * @version : 1.0 - * description : + * @date : 2018/1/10 */ public interface AttachmentService { diff --git a/src/main/java/cc/ryanc/halo/service/CategoryService.java b/src/main/java/cc/ryanc/halo/service/CategoryService.java index 17a1dad4f..a7b2a4427 100755 --- a/src/main/java/cc/ryanc/halo/service/CategoryService.java +++ b/src/main/java/cc/ryanc/halo/service/CategoryService.java @@ -7,9 +7,8 @@ import java.util.Optional; /** * @author : RYAN0UP - * @date : 2017/11/30 * @version : 1.0 - * description : + * @date : 2017/11/30 */ public interface CategoryService { diff --git a/src/main/java/cc/ryanc/halo/service/CommentService.java b/src/main/java/cc/ryanc/halo/service/CommentService.java index 15d63a014..cb88e60ac 100644 --- a/src/main/java/cc/ryanc/halo/service/CommentService.java +++ b/src/main/java/cc/ryanc/halo/service/CommentService.java @@ -10,9 +10,8 @@ import java.util.Optional; /** * @author : RYAN0UP - * @date : 2018/1/22 * @version : 1.0 - * description : + * @date : 2018/1/22 */ public interface CommentService { @@ -34,7 +33,7 @@ public interface CommentService { /** * 查询所有的评论,用于后台管理 * - * @param status status + * @param status status * @param pageable pageable * @return page */ @@ -59,10 +58,10 @@ public interface CommentService { * 更改评论的状态 * * @param commentId commentId - * @param status status + * @param status status * @return comment */ - Comment updateCommentStatus(Long commentId,Integer status); + Comment updateCommentStatus(Long commentId, Integer status); /** * 根据评论编号查询评论 @@ -75,21 +74,21 @@ public interface CommentService { /** * 根据文章查询评论 * - * @param post post + * @param post post * @param pageable pageable * @return page */ - Page findCommentsByPost(Post post,Pageable pageable); + Page findCommentsByPost(Post post, Pageable pageable); /** * 根据文章和评论状态查询评论 * - * @param post post + * @param post post * @param pageable pageable - * @param status status + * @param status status * @return page */ - Page findCommentsByPostAndCommentStatus(Post post,Pageable pageable,Integer status); + Page findCommentsByPostAndCommentStatus(Post post, Pageable pageable, Integer status); /** * 查询最新的前五条评论 diff --git a/src/main/java/cc/ryanc/halo/service/GalleryService.java b/src/main/java/cc/ryanc/halo/service/GalleryService.java index a3fbe5b19..893575bcc 100644 --- a/src/main/java/cc/ryanc/halo/service/GalleryService.java +++ b/src/main/java/cc/ryanc/halo/service/GalleryService.java @@ -9,9 +9,8 @@ import java.util.Optional; /** * @author : RYAN0UP - * @date : 2018/2/26 * @version : 1.0 - * description : + * @date : 2018/2/26 */ public interface GalleryService { @@ -48,12 +47,14 @@ public interface GalleryService { /** * 查询所有图片 不分页 + * * @return list */ List findAllGalleries(); /** * 根据编号查询图片信息 + * * @param galleryId galleryId * @return gallery */ diff --git a/src/main/java/cc/ryanc/halo/service/LinkService.java b/src/main/java/cc/ryanc/halo/service/LinkService.java index 64ea78602..d78cb0a9f 100755 --- a/src/main/java/cc/ryanc/halo/service/LinkService.java +++ b/src/main/java/cc/ryanc/halo/service/LinkService.java @@ -7,9 +7,8 @@ import java.util.Optional; /** * @author : RYAN0UP - * @date : 2017/11/14 * @version : 1.0 - * description: + * @date : 2017/11/14 */ public interface LinkService { diff --git a/src/main/java/cc/ryanc/halo/service/LogsService.java b/src/main/java/cc/ryanc/halo/service/LogsService.java index 4b0b1b996..21e772293 100644 --- a/src/main/java/cc/ryanc/halo/service/LogsService.java +++ b/src/main/java/cc/ryanc/halo/service/LogsService.java @@ -9,9 +9,8 @@ import java.util.Optional; /** * @author : RYAN0UP - * @date : 2018/1/19 * @version : 1.0 - * description : + * @date : 2018/1/19 */ public interface LogsService { @@ -25,6 +24,7 @@ public interface LogsService { /** * 根据编号移除 + * * @param logsId logsId */ void removeByLogsId(Long logsId); diff --git a/src/main/java/cc/ryanc/halo/service/MailService.java b/src/main/java/cc/ryanc/halo/service/MailService.java index cf053158d..884330409 100644 --- a/src/main/java/cc/ryanc/halo/service/MailService.java +++ b/src/main/java/cc/ryanc/halo/service/MailService.java @@ -4,27 +4,27 @@ import java.util.Map; /** * @author : RYAN0UP - * @date : 2018/1/23 * @version : 1.0 - * description : + * @date : 2018/1/23 */ public interface MailService { /** * 发送邮件 * - * @param to 接收者 + * @param to 接收者 * @param subject 主题 * @param content 内容 */ - void sendMail(String to,String subject,String content); + void sendMail(String to, String subject, String content); /** * 发送模板邮件 - * @param to 接收者 - * @param subject 主题 - * @param content 内容 + * + * @param to 接收者 + * @param subject 主题 + * @param content 内容 * @param templateName 模板路径 */ - void sendTemplateMail(String to, String subject, Map content,String templateName); + void sendTemplateMail(String to, String subject, Map content, String templateName); } diff --git a/src/main/java/cc/ryanc/halo/service/MenuService.java b/src/main/java/cc/ryanc/halo/service/MenuService.java index 684f510c6..fdeaa1c77 100644 --- a/src/main/java/cc/ryanc/halo/service/MenuService.java +++ b/src/main/java/cc/ryanc/halo/service/MenuService.java @@ -7,9 +7,8 @@ import java.util.Optional; /** * @author : RYAN0UP - * @date : 2018/1/24 * @version : 1.0 - * description : + * @date : 2018/1/24 */ public interface MenuService { @@ -38,6 +37,7 @@ public interface MenuService { /** * 根据编号查询菜单 + * * @param menuId menuId * @return Menu */ diff --git a/src/main/java/cc/ryanc/halo/service/OptionsService.java b/src/main/java/cc/ryanc/halo/service/OptionsService.java index 3a226029c..901fb979d 100755 --- a/src/main/java/cc/ryanc/halo/service/OptionsService.java +++ b/src/main/java/cc/ryanc/halo/service/OptionsService.java @@ -6,26 +6,25 @@ import java.util.Map; /** * @author : RYAN0UP - * @date : 2017/11/14 * @version : 1.0 - * description : + * @date : 2017/11/14 */ public interface OptionsService { /** * 保存单个设置选项 * - * @param key key + * @param key key * @param value value */ - void saveOption(String key,String value); + void saveOption(String key, String value); /** * 保存多个设置选项 * * @param options options */ - void saveOptions(Map options); + void saveOptions(Map options); /** * 移除设置选项 @@ -39,7 +38,7 @@ public interface OptionsService { * * @return map */ - Map findAllOptions(); + Map findAllOptions(); /** * 根据key查询单个设置 diff --git a/src/main/java/cc/ryanc/halo/service/PostService.java b/src/main/java/cc/ryanc/halo/service/PostService.java index 50bec4b28..dedf68c12 100755 --- a/src/main/java/cc/ryanc/halo/service/PostService.java +++ b/src/main/java/cc/ryanc/halo/service/PostService.java @@ -5,7 +5,6 @@ import cc.ryanc.halo.model.domain.Tag; import cc.ryanc.halo.model.dto.Archive; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; -import org.springframework.data.repository.query.Param; import java.util.Date; import java.util.List; @@ -13,9 +12,8 @@ import java.util.Optional; /** * @author : RYAN0UP - * @date : 2017/11/14 * @version : 1.0 - * description : + * @date : 2017/11/14 */ public interface PostService { @@ -42,7 +40,7 @@ public interface PostService { * @param status status * @return Post */ - Post updatePostStatus(Long postId,Integer status); + Post updatePostStatus(Long postId, Integer status); /** * 批量修改摘要 @@ -58,7 +56,7 @@ public interface PostService { * @param pageable 分页信息 * @return Page */ - Page findAllPosts(String postType,Pageable pageable); + Page findAllPosts(String postType, Pageable pageable); /** * 获取文章列表 不分页 @@ -71,30 +69,30 @@ public interface PostService { /** * 模糊查询文章 * - * @param keyWord keyword + * @param keyWord keyword * @param pageable pageable * @return list */ - List searchPosts(String keyWord,Pageable pageable); + List searchPosts(String keyWord, Pageable pageable); /** * 根据文章状态查询 分页 * - * @param status 0,1,2 + * @param status 0,1,2 * @param postType post or page * @param pageable 分页信息 * @return Page */ - Page findPostByStatus(Integer status,String postType,Pageable pageable); + Page findPostByStatus(Integer status, String postType, Pageable pageable); /** * 根据文章状态查询 * - * @param status 0,1,2 + * @param status 0,1,2 * @param postType post or page * @return List */ - List findPostByStatus(Integer status,String postType); + List findPostByStatus(Integer status, String postType); /** * 根据编号查询文章 @@ -107,11 +105,11 @@ public interface PostService { /** * 根据文章路径查询 * - * @param postUrl 路径 + * @param postUrl 路径 * @param postType post or page * @return Post */ - Post findByPostUrl(String postUrl,String postType); + Post findByPostUrl(String postUrl, String postType); /** * 查询前五条数据 @@ -153,21 +151,21 @@ public interface PostService { /** * 根据年份和月份查询文章 * - * @param year year + * @param year year * @param month month * @return list */ - List findPostByYearAndMonth(String year,String month); + List findPostByYearAndMonth(String year, String month); /** * 根据年份和月份查询文章 分页 * - * @param year year - * @param month month + * @param year year + * @param month month * @param pageable pageable * @return page */ - Page findPostByYearAndMonth(String year,String month, Pageable pageable); + Page findPostByYearAndMonth(String year, String month, Pageable pageable); /** * 根据年份查询文章 @@ -180,11 +178,11 @@ public interface PostService { /** * 根据标签查询文章 * - * @param tag tag + * @param tag tag * @param pageable pageable * @return page */ - Page findPostsByTags(Tag tag,Pageable pageable); + Page findPostsByTags(Tag tag, Pageable pageable); /** * 生成rss diff --git a/src/main/java/cc/ryanc/halo/service/TagService.java b/src/main/java/cc/ryanc/halo/service/TagService.java index 668a2eeb2..d9060eb18 100644 --- a/src/main/java/cc/ryanc/halo/service/TagService.java +++ b/src/main/java/cc/ryanc/halo/service/TagService.java @@ -7,9 +7,8 @@ import java.util.Optional; /** * @author : RYAN0UP - * @date : 2018/1/12 * @version : 1.0 - * description : + * @date : 2018/1/12 */ public interface TagService { diff --git a/src/main/java/cc/ryanc/halo/service/UserService.java b/src/main/java/cc/ryanc/halo/service/UserService.java index 07fcc2874..e17dba5ac 100755 --- a/src/main/java/cc/ryanc/halo/service/UserService.java +++ b/src/main/java/cc/ryanc/halo/service/UserService.java @@ -7,9 +7,8 @@ import java.util.List; /** * @author : RYAN0UP - * @date : 2017/11/14 * @version : 1.0 - * description: + * @date : 2017/11/14 */ public interface UserService { @@ -27,15 +26,16 @@ public interface UserService { * @param userPass userPass * @return User */ - List userLoginByName(String userName,String userPass); + List userLoginByName(String userName, String userPass); /** * 根据邮箱和密码查询,用户登录 + * * @param userEmail userEmail - * @param userPass userPass + * @param userPass userPass * @return list */ - List userLoginByEmail(String userEmail,String userPass); + List userLoginByEmail(String userEmail, String userPass); /** * 查询所有用户 @@ -47,11 +47,11 @@ public interface UserService { /** * 根据用户编号和密码查询 * - * @param userId userid + * @param userId userid * @param userPass userpass * @return user */ - User findByUserIdAndUserPass(Long userId,String userPass); + User findByUserIdAndUserPass(Long userId, String userPass); /** * 修改禁用状态 diff --git a/src/main/java/cc/ryanc/halo/service/impl/AttachmentServiceImpl.java b/src/main/java/cc/ryanc/halo/service/impl/AttachmentServiceImpl.java index 7d8e46678..412cbfca4 100644 --- a/src/main/java/cc/ryanc/halo/service/impl/AttachmentServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/AttachmentServiceImpl.java @@ -4,9 +4,6 @@ import cc.ryanc.halo.model.domain.Attachment; import cc.ryanc.halo.repository.AttachmentRepository; import cc.ryanc.halo.service.AttachmentService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cache.annotation.CacheEvict; -import org.springframework.cache.annotation.CachePut; -import org.springframework.cache.annotation.Cacheable; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; @@ -16,12 +13,11 @@ import java.util.Optional; /** * @author : RYAN0UP - * @date : 2018/1/10 * @version : 1.0 - * description : + * @date : 2018/1/10 */ @Service -public class AttachmentServiceImpl implements AttachmentService{ +public class AttachmentServiceImpl implements AttachmentService { @Autowired private AttachmentRepository attachmentRepository; diff --git a/src/main/java/cc/ryanc/halo/service/impl/CategoryServiceImpl.java b/src/main/java/cc/ryanc/halo/service/impl/CategoryServiceImpl.java index 4273948d6..59e9ff5c5 100755 --- a/src/main/java/cc/ryanc/halo/service/impl/CategoryServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/CategoryServiceImpl.java @@ -4,8 +4,6 @@ import cc.ryanc.halo.model.domain.Category; import cc.ryanc.halo.repository.CategoryRepository; import cc.ryanc.halo.service.CategoryService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cache.annotation.CacheEvict; -import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -14,12 +12,11 @@ import java.util.Optional; /** * @author : RYAN0UP + * @version : 1.0= * @date : 2017/11/30 - * @version : 1.0 - * description: Category业务层实现 */ @Service -public class CategoryServiceImpl implements CategoryService{ +public class CategoryServiceImpl implements CategoryService { @Autowired private CategoryRepository categoryRepository; @@ -83,12 +80,12 @@ public class CategoryServiceImpl implements CategoryService{ @Override public List strListToCateList(List strings) { - if(null==strings){ + if (null == strings) { return null; } List categories = new ArrayList<>(); Optional category = null; - for(String str:strings){ + for (String str : strings) { category = findByCateId(Long.parseLong(str)); categories.add(category.get()); } diff --git a/src/main/java/cc/ryanc/halo/service/impl/CommentServiceImpl.java b/src/main/java/cc/ryanc/halo/service/impl/CommentServiceImpl.java index c9b4c3f62..088ecb61d 100644 --- a/src/main/java/cc/ryanc/halo/service/impl/CommentServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/CommentServiceImpl.java @@ -9,15 +9,13 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; -import javax.swing.text.html.Option; import java.util.List; import java.util.Optional; /** * @author : RYAN0UP - * @date : 2018/1/22 * @version : 1.0 - * description : + * @date : 2018/1/22 */ @Service public class CommentServiceImpl implements CommentService { @@ -55,7 +53,7 @@ public class CommentServiceImpl implements CommentService { */ @Override public Page findAllComments(Integer status, Pageable pageable) { - return commentRepository.findCommentsByCommentStatus(status,pageable); + return commentRepository.findCommentsByCommentStatus(status, pageable); } /** @@ -107,13 +105,13 @@ public class CommentServiceImpl implements CommentService { /** * 根据文章查询评论 * - * @param post post + * @param post post * @param pageable pageable * @return page */ @Override - public Page findCommentsByPost(Post post,Pageable pageable) { - return commentRepository.findCommentsByPost(post,pageable); + public Page findCommentsByPost(Post post, Pageable pageable) { + return commentRepository.findCommentsByPost(post, pageable); } /** @@ -126,7 +124,7 @@ public class CommentServiceImpl implements CommentService { */ @Override public Page findCommentsByPostAndCommentStatus(Post post, Pageable pageable, Integer status) { - return commentRepository.findCommentsByPostAndCommentStatusNot(post,pageable,status); + return commentRepository.findCommentsByPostAndCommentStatusNot(post, pageable, status); } /** diff --git a/src/main/java/cc/ryanc/halo/service/impl/GalleryServiceImpl.java b/src/main/java/cc/ryanc/halo/service/impl/GalleryServiceImpl.java index 451e939a3..4e650b2b7 100644 --- a/src/main/java/cc/ryanc/halo/service/impl/GalleryServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/GalleryServiceImpl.java @@ -13,12 +13,11 @@ import java.util.Optional; /** * @author : RYAN0UP - * @date : 2018/2/26 * @version : 1.0 - * description : + * @date : 2018/2/26 */ @Service -public class GalleryServiceImpl implements GalleryService{ +public class GalleryServiceImpl implements GalleryService { @Autowired private GalleryRepository galleryRepository; diff --git a/src/main/java/cc/ryanc/halo/service/impl/LinkServiceImpl.java b/src/main/java/cc/ryanc/halo/service/impl/LinkServiceImpl.java index 2acc27624..18c5eb55d 100755 --- a/src/main/java/cc/ryanc/halo/service/impl/LinkServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/LinkServiceImpl.java @@ -4,8 +4,6 @@ import cc.ryanc.halo.model.domain.Link; import cc.ryanc.halo.repository.LinkRepository; import cc.ryanc.halo.service.LinkService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cache.annotation.CacheEvict; -import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import java.util.List; @@ -13,9 +11,8 @@ import java.util.Optional; /** * @author : RYAN0UP - * @date : 2017/11/14 * @version : 1.0 - * description: + * @date : 2017/11/14 */ @Service public class LinkServiceImpl implements LinkService { diff --git a/src/main/java/cc/ryanc/halo/service/impl/LogsServiceImpl.java b/src/main/java/cc/ryanc/halo/service/impl/LogsServiceImpl.java index 5bd73c026..2cd28cbb9 100644 --- a/src/main/java/cc/ryanc/halo/service/impl/LogsServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/LogsServiceImpl.java @@ -13,9 +13,8 @@ import java.util.Optional; /** * @author : RYAN0UP - * @date : 2018/1/19 * @version : 1.0 - * description : + * @date : 2018/1/19 */ @Service public class LogsServiceImpl implements LogsService { diff --git a/src/main/java/cc/ryanc/halo/service/impl/MailServiceImpl.java b/src/main/java/cc/ryanc/halo/service/impl/MailServiceImpl.java index 0238747fc..d23ff8e7a 100644 --- a/src/main/java/cc/ryanc/halo/service/impl/MailServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/MailServiceImpl.java @@ -14,12 +14,11 @@ import java.util.Map; /** * @author : RYAN0UP - * @date : 2018/1/23 * @version : 1.0 - * description : + * @date : 2018/1/23 */ @Service -public class MailServiceImpl implements MailService{ +public class MailServiceImpl implements MailService { @Autowired private FreeMarkerConfigurer freeMarker; @@ -27,12 +26,12 @@ public class MailServiceImpl implements MailService{ /** * 发送邮件 * - * @param to to 接收者 + * @param to to 接收者 * @param subject subject 标题 * @param content content 内容 */ @Override - public void sendMail (String to, String subject, String content){ + public void sendMail(String to, String subject, String content) { //配置邮件服务器 HaloUtil.configMail( HaloConst.OPTIONS.get("mail_smtp_host"), @@ -44,7 +43,7 @@ public class MailServiceImpl implements MailService{ .to(to) .text(content) .send(); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } @@ -52,28 +51,28 @@ public class MailServiceImpl implements MailService{ /** * 发送模板邮件 * - * @param to 接收者 - * @param subject 主题 - * @param content 内容 + * @param to 接收者 + * @param subject 主题 + * @param content 内容 * @param templateName 模板路径 */ @Override - public void sendTemplateMail(String to, String subject, Map content,String templateName) { + public void sendTemplateMail(String to, String subject, Map content, String templateName) { //配置邮件服务器 HaloUtil.configMail( HaloConst.OPTIONS.get("mail_smtp_host"), HaloConst.OPTIONS.get("mail_smtp_username"), HaloConst.OPTIONS.get("mail_smtp_password")); String text = ""; - try{ + try { Template template = freeMarker.getConfiguration().getTemplate(templateName); - text = FreeMarkerTemplateUtils.processTemplateIntoString(template,content); + text = FreeMarkerTemplateUtils.processTemplateIntoString(template, content); OhMyEmail.subject(subject) .from(HaloConst.OPTIONS.get("mail_from_name")) .to(to) .html(text) .send(); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } diff --git a/src/main/java/cc/ryanc/halo/service/impl/MenuServiceImpl.java b/src/main/java/cc/ryanc/halo/service/impl/MenuServiceImpl.java index 30ca66e09..d1370923c 100644 --- a/src/main/java/cc/ryanc/halo/service/impl/MenuServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/MenuServiceImpl.java @@ -11,12 +11,11 @@ import java.util.Optional; /** * @author : RYAN0UP - * @date : 2018/1/24 * @version : 1.0 - * description : + * @date : 2018/1/24 */ @Service -public class MenuServiceImpl implements MenuService{ +public class MenuServiceImpl implements MenuService { @Autowired private MenuRepository menuRepository; diff --git a/src/main/java/cc/ryanc/halo/service/impl/OptionsServiceImpl.java b/src/main/java/cc/ryanc/halo/service/impl/OptionsServiceImpl.java index f7b04d034..01aade35b 100755 --- a/src/main/java/cc/ryanc/halo/service/impl/OptionsServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/OptionsServiceImpl.java @@ -3,7 +3,6 @@ package cc.ryanc.halo.service.impl; import cc.ryanc.halo.model.domain.Options; import cc.ryanc.halo.repository.OptionsRepository; import cc.ryanc.halo.service.OptionsService; -import cc.ryanc.halo.util.HaloUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -14,9 +13,8 @@ import java.util.Map; /** * @author : RYAN0UP - * @date : 2017/11/14 * @version : 1.0 - * description: + * @date : 2017/11/14 */ @Service public class OptionsServiceImpl implements OptionsService { @@ -30,26 +28,26 @@ public class OptionsServiceImpl implements OptionsService { * @param options options */ @Override - public void saveOptions(Map options){ - if(null != options && !options.isEmpty()){ - options.forEach((k,v) -> saveOption(k,v)); + public void saveOptions(Map options) { + if (null != options && !options.isEmpty()) { + options.forEach((k, v) -> saveOption(k, v)); } } /** * 保存单个设置选项 * - * @param key key + * @param key key * @param value value */ @Override - public void saveOption(String key,String value){ + public void saveOption(String key, String value) { Options options = null; - if(StringUtils.equals(value,"")){ + if (StringUtils.equals(value, "")) { options = new Options(); options.setOptionName(key); this.removeOption(options); - }else { + } else { if (StringUtils.isNotEmpty(key)) { //如果查询到有该设置选项则做更新操作,反之保存新的设置选项 if (null == optionsRepository.findOptionsByOptionName(key)) { @@ -83,10 +81,10 @@ public class OptionsServiceImpl implements OptionsService { */ @Override public Map findAllOptions() { - Map options = new HashMap(); + Map options = new HashMap(); List optionsList = optionsRepository.findAll(); - if(null != optionsList){ - optionsList.forEach(option -> options.put(option.getOptionName(),option.getOptionValue())); + if (null != optionsList) { + optionsList.forEach(option -> options.put(option.getOptionName(), option.getOptionValue())); } return options; } @@ -100,7 +98,7 @@ public class OptionsServiceImpl implements OptionsService { @Override public String findOneOption(String key) { Options options = optionsRepository.findOptionsByOptionName(key); - if(null!=options){ + if (null != options) { return options.getOptionValue(); } return null; diff --git a/src/main/java/cc/ryanc/halo/service/impl/PostServiceImpl.java b/src/main/java/cc/ryanc/halo/service/impl/PostServiceImpl.java index b42995e94..db6c43110 100755 --- a/src/main/java/cc/ryanc/halo/service/impl/PostServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/PostServiceImpl.java @@ -9,9 +9,8 @@ import cc.ryanc.halo.service.PostService; import cc.ryanc.halo.util.HaloUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; -import org.springframework.stereotype.Service; - import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Date; @@ -20,9 +19,8 @@ import java.util.Optional; /** * @author : RYAN0UP - * @date : 2017/11/14 * @version : 1.0 - * description: + * @date : 2017/11/14 */ @Service public class PostServiceImpl implements PostService { @@ -76,10 +74,10 @@ public class PostServiceImpl implements PostService { @Override public void updateAllSummary(Integer postSummary) { List posts = this.findAllPosts(HaloConst.POST_TYPE_POST); - for(Post post:posts){ - if(!(HaloUtil.htmlToText(post.getPostContent()).length() */ @Override - public Page findAllPosts(String postType,Pageable pageable) { - return postRepository.findPostsByPostType(postType,pageable); + public Page findAllPosts(String postType, Pageable pageable) { + return postRepository.findPostsByPostType(postType, pageable); } /** @@ -112,38 +110,38 @@ public class PostServiceImpl implements PostService { /** * 模糊查询文章 * - * @param keyWord keyword + * @param keyWord keyword * @param pageable pageable * @return list */ @Override - public List searchPosts(String keyWord,Pageable pageable) { - return postRepository.findByPostTitleLike(keyWord,pageable); + public List searchPosts(String keyWord, Pageable pageable) { + return postRepository.findByPostTitleLike(keyWord, pageable); } /** * 根据文章状态查询 分页 * - * @param status 0,1,2 + * @param status 0,1,2 * @param postType post or page * @param pageable 分页信息 * @return Page */ @Override - public Page findPostByStatus(Integer status,String postType, Pageable pageable) { - return postRepository.findPostsByPostStatusAndPostType(status,postType,pageable); + public Page findPostByStatus(Integer status, String postType, Pageable pageable) { + return postRepository.findPostsByPostStatusAndPostType(status, postType, pageable); } /** * 根据文章状态查询 * - * @param status 0,1,2 + * @param status 0,1,2 * @param postType post or page * @return List */ @Override - public List findPostByStatus(Integer status,String postType) { - return postRepository.findPostsByPostStatusAndPostType(status,postType); + public List findPostByStatus(Integer status, String postType) { + return postRepository.findPostsByPostStatusAndPostType(status, postType); } /** @@ -160,13 +158,13 @@ public class PostServiceImpl implements PostService { /** * 根据文章路径查询 * - * @param postUrl 路径 + * @param postUrl 路径 * @param postType post or page * @return Post */ @Override - public Post findByPostUrl(String postUrl,String postType) { - return postRepository.findPostByPostUrlAndPostType(postUrl,postType); + public Post findByPostUrl(String postUrl, String postType) { + return postRepository.findPostByPostUrlAndPostType(postUrl, postType); } /** @@ -187,7 +185,7 @@ public class PostServiceImpl implements PostService { */ @Override public List findByPostDateAfter(Date postDate) { - return postRepository.findByPostDateAfterAndPostStatusAndPostTypeOrderByPostDateDesc(postDate,0,HaloConst.POST_TYPE_POST); + return postRepository.findByPostDateAfterAndPostStatusAndPostTypeOrderByPostDateDesc(postDate, 0, HaloConst.POST_TYPE_POST); } /** @@ -198,7 +196,7 @@ public class PostServiceImpl implements PostService { */ @Override public List findByPostDateBefore(Date postDate) { - return postRepository.findByPostDateBeforeAndPostStatusAndPostTypeOrderByPostDateAsc(postDate,0,HaloConst.POST_TYPE_POST); + return postRepository.findByPostDateBeforeAndPostStatusAndPostTypeOrderByPostDateAsc(postDate, 0, HaloConst.POST_TYPE_POST); } @@ -212,12 +210,12 @@ public class PostServiceImpl implements PostService { List objects = postRepository.findPostGroupByYearAndMonth(); List archives = new ArrayList<>(); Archive archive = null; - for(Object[] obj : objects){ + for (Object[] obj : objects) { archive = new Archive(); archive.setYear(obj[0].toString()); archive.setMonth(obj[1].toString()); archive.setCount(obj[2].toString()); - archive.setPosts(this.findPostByYearAndMonth(obj[0].toString(),obj[1].toString())); + archive.setPosts(this.findPostByYearAndMonth(obj[0].toString(), obj[1].toString())); archives.add(archive); } return archives; @@ -233,7 +231,7 @@ public class PostServiceImpl implements PostService { List objects = postRepository.findPostGroupByYear(); List archives = new ArrayList<>(); Archive archive = null; - for(Object[] obj : objects){ + for (Object[] obj : objects) { archive = new Archive(); archive.setYear(obj[0].toString()); archive.setCount(obj[1].toString()); @@ -246,13 +244,13 @@ public class PostServiceImpl implements PostService { /** * 根据年份和月份查询文章 * - * @param year year + * @param year year * @param month month * @return list */ @Override public List findPostByYearAndMonth(String year, String month) { - return postRepository.findPostByYearAndMonth(year,month); + return postRepository.findPostByYearAndMonth(year, month); } /** @@ -268,14 +266,15 @@ public class PostServiceImpl implements PostService { /** * 根据年份和月份索引文章 - * @param year year year - * @param month month month + * + * @param year year year + * @param month month month * @param pageable pageable pageable * @return page */ @Override public Page findPostByYearAndMonth(String year, String month, Pageable pageable) { - return postRepository.findPostByYearAndMonth(year,month,null); + return postRepository.findPostByYearAndMonth(year, month, null); } /** @@ -287,7 +286,7 @@ public class PostServiceImpl implements PostService { */ @Override public Page findPostsByTags(Tag tag, Pageable pageable) { - return postRepository.findPostsByTags(tag,pageable); + return postRepository.findPostsByTags(tag, pageable); } /** @@ -299,9 +298,9 @@ public class PostServiceImpl implements PostService { @Override public String buildRss(List posts) { String rss = ""; - try{ + try { rss = HaloUtil.getRss(posts); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } return rss; diff --git a/src/main/java/cc/ryanc/halo/service/impl/TagServiceImpl.java b/src/main/java/cc/ryanc/halo/service/impl/TagServiceImpl.java index ebf7fc388..d89e3aa6b 100644 --- a/src/main/java/cc/ryanc/halo/service/impl/TagServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/TagServiceImpl.java @@ -12,9 +12,8 @@ import java.util.Optional; /** * @author : RYAN0UP - * @date : 2018/1/12 * @version : 1.0 - * description : + * @date : 2018/1/12 */ @Service public class TagServiceImpl implements TagService { @@ -97,14 +96,14 @@ public class TagServiceImpl implements TagService { */ @Override public List strListToTagList(String tagList) { - String [] tags = tagList.split(","); + String[] tags = tagList.split(","); List tagsList = new ArrayList<>(); - for(String tag:tags){ + for (String tag : tags) { Tag t = findTagByTagName(tag); Tag nt = null; - if(null!=t){ + if (null != t) { tagsList.add(t); - }else{ + } else { nt = new Tag(); nt.setTagName(tag); nt.setTagUrl(tag); diff --git a/src/main/java/cc/ryanc/halo/service/impl/UserServiceImpl.java b/src/main/java/cc/ryanc/halo/service/impl/UserServiceImpl.java index 2d0458871..c4f3f48ae 100755 --- a/src/main/java/cc/ryanc/halo/service/impl/UserServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/UserServiceImpl.java @@ -11,9 +11,8 @@ import java.util.List; /** * @author : RYAN0UP - * @date : 2017/11/14 * @version : 1.0 - * description: + * @date : 2017/11/14 */ @Service public class UserServiceImpl implements UserService { @@ -73,7 +72,7 @@ public class UserServiceImpl implements UserService { /** * 验证修改密码时,密码是否正确 * - * @param userId userId + * @param userId userId * @param userPass userPass * @return User */ diff --git a/src/main/java/cc/ryanc/halo/util/HaloUtil.java b/src/main/java/cc/ryanc/halo/util/HaloUtil.java index ff38192a0..f17a4be42 100755 --- a/src/main/java/cc/ryanc/halo/util/HaloUtil.java +++ b/src/main/java/cc/ryanc/halo/util/HaloUtil.java @@ -11,7 +11,6 @@ import com.sun.syndication.io.WireFeedOutput; import io.github.biezhi.ome.OhMyEmail; import lombok.extern.slf4j.Slf4j; import org.springframework.util.ResourceUtils; -import org.springframework.util.StringUtils; import javax.imageio.ImageIO; import javax.imageio.ImageReadParam; @@ -25,7 +24,6 @@ import java.net.URI; import java.net.URL; import java.net.URLConnection; import java.security.MessageDigest; -import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.Instant; import java.time.ZoneId; diff --git a/src/main/java/cc/ryanc/halo/web/controller/admin/AdminController.java b/src/main/java/cc/ryanc/halo/web/controller/admin/AdminController.java index 746ee3e13..1b4f344d4 100755 --- a/src/main/java/cc/ryanc/halo/web/controller/admin/AdminController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/admin/AdminController.java @@ -6,7 +6,10 @@ import cc.ryanc.halo.model.domain.Post; import cc.ryanc.halo.model.domain.User; import cc.ryanc.halo.model.dto.HaloConst; import cc.ryanc.halo.model.dto.LogsRecord; -import cc.ryanc.halo.service.*; +import cc.ryanc.halo.service.CommentService; +import cc.ryanc.halo.service.LogsService; +import cc.ryanc.halo.service.PostService; +import cc.ryanc.halo.service.UserService; import cc.ryanc.halo.util.HaloUtil; import cc.ryanc.halo.web.controller.core.BaseController; import lombok.extern.slf4j.Slf4j; @@ -36,7 +39,7 @@ import java.util.regex.Pattern; @Slf4j @Controller @RequestMapping(value = "/admin") -public class AdminController extends BaseController{ +public class AdminController extends BaseController { @Autowired private PostService postService; @@ -56,33 +59,33 @@ public class AdminController extends BaseController{ /** * 请求后台页面 * - * @param model model + * @param model model * @param session session * @return 模板路径admin/admin_index */ - @GetMapping(value = {"","/index"}) - public String index(Model model,HttpSession session){ + @GetMapping(value = {"", "/index"}) + public String index(Model model, HttpSession session) { //查询文章条数 Integer postCount = postService.findAllPosts(HaloConst.POST_TYPE_POST).size(); - model.addAttribute("postCount",postCount); + model.addAttribute("postCount", postCount); //查询评论的条数 Integer commentCount = commentService.findAllComments().size(); - model.addAttribute("commentCount",commentCount); + model.addAttribute("commentCount", commentCount); //查询最新的文章 List postsLatest = postService.findPostLatest(); - model.addAttribute("postTopFive",postsLatest); + model.addAttribute("postTopFive", postsLatest); //查询最新的日志 List logsLatest = logsService.findLogsLatest(); - model.addAttribute("logs",logsLatest); + model.addAttribute("logs", logsLatest); //查询最新的评论 List comments = commentService.findCommentsLatest(); - model.addAttribute("comments",comments); + model.addAttribute("comments", comments); - model.addAttribute("mediaCount",HaloConst.ATTACHMENTS.size()); + model.addAttribute("mediaCount", HaloConst.ATTACHMENTS.size()); return "admin/admin_index"; } @@ -93,10 +96,10 @@ public class AdminController extends BaseController{ * @return 模板路径admin/admin_login */ @GetMapping(value = "/login") - public String login(HttpSession session){ + public String login(HttpSession session) { User user = (User) session.getAttribute(HaloConst.USER_SESSION_KEY); //如果session存在,跳转到后台首页 - if(null!=user){ + if (null != user) { return "redirect:/admin"; } return "admin/admin_login"; @@ -106,47 +109,47 @@ public class AdminController extends BaseController{ * 验证登录信息 * * @param loginName 登录名:邮箱/用户名 - * @param loginPwd loginPwd 密码 - * @param session session session + * @param loginPwd loginPwd 密码 + * @param session session session * @return String 登录状态 */ @PostMapping(value = "/getLogin") @ResponseBody public String getLogin(@ModelAttribute("loginName") String loginName, @ModelAttribute("loginPwd") String loginPwd, - HttpSession session){ + HttpSession session) { String status = "false"; try { User aUser = userService.findUser(); User user = null; - if(StringUtils.equals(aUser.getLoginEnable(),"false")){ + if (StringUtils.equals(aUser.getLoginEnable(), "false")) { status = "disable"; - }else{ + } else { //验证是否是邮箱登录 Pattern patternEmail = Pattern.compile("\\w[-\\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\\.)+[A-Za-z]{2,14}"); Matcher matcher = patternEmail.matcher(loginName); - if(matcher.find()){ - user = userService.userLoginByEmail(loginName,HaloUtil.getMD5(loginPwd)).get(0); - }else{ - user = userService.userLoginByName(loginName,HaloUtil.getMD5(loginPwd)).get(0); + if (matcher.find()) { + user = userService.userLoginByEmail(loginName, HaloUtil.getMD5(loginPwd)).get(0); + } else { + user = userService.userLoginByName(loginName, HaloUtil.getMD5(loginPwd)).get(0); } - if(aUser==user){ + if (aUser == user) { session.setAttribute(HaloConst.USER_SESSION_KEY, user); //重置用户的登录状态为正常 userService.updateUserNormal(); userService.updateUserLoginLast(new Date()); - logsService.saveByLogs(new Logs(LogsRecord.LOGIN,LogsRecord.LOGIN_SUCCESS,HaloUtil.getIpAddr(request), HaloUtil.getDate())); + logsService.saveByLogs(new Logs(LogsRecord.LOGIN, LogsRecord.LOGIN_SUCCESS, HaloUtil.getIpAddr(request), HaloUtil.getDate())); status = "true"; } } - }catch (Exception e){ + } catch (Exception e) { Integer errorCount = userService.updateUserLoginError(); - if(errorCount>=5){ + if (errorCount >= 5) { userService.updateUserLoginEnable("false"); } userService.updateUserLoginLast(new Date()); - logsService.saveByLogs(new Logs(LogsRecord.LOGIN,LogsRecord.LOGIN_ERROR+"["+loginName+","+loginPwd+"]",HaloUtil.getIpAddr(request),new Date())); - log.error("登录失败!:{0}",e.getMessage()); + logsService.saveByLogs(new Logs(LogsRecord.LOGIN, LogsRecord.LOGIN_ERROR + "[" + loginName + "," + loginPwd + "]", HaloUtil.getIpAddr(request), new Date())); + log.error("登录失败!:{0}", e.getMessage()); } return status; } @@ -158,11 +161,11 @@ public class AdminController extends BaseController{ * @return 重定向到/admin/login */ @GetMapping(value = "/logOut") - public String logOut(HttpSession session){ + public String logOut(HttpSession session) { User user = (User) session.getAttribute(HaloConst.USER_SESSION_KEY); - logsService.saveByLogs(new Logs(LogsRecord.LOGOUT,user.getUserName(),HaloUtil.getIpAddr(request),HaloUtil.getDate())); + logsService.saveByLogs(new Logs(LogsRecord.LOGOUT, user.getUserName(), HaloUtil.getIpAddr(request), HaloUtil.getDate())); session.invalidate(); - log.info("用户["+user.getUserName()+"]退出登录"); + log.info("用户[" + user.getUserName() + "]退出登录"); return "redirect:/admin/login"; } @@ -170,18 +173,18 @@ public class AdminController extends BaseController{ * 查看所有日志 * * @param model model model - * @param page page 当前页码 - * @param size size 每页条数 + * @param page page 当前页码 + * @param size size 每页条数 * @return 模板路径admin/widget/_logs-all */ @GetMapping(value = "/logs") public String logs(Model model, - @RequestParam(value = "page",defaultValue = "0") Integer page, - @RequestParam(value = "size",defaultValue = "10") Integer size){ - Sort sort = new Sort(Sort.Direction.DESC,"logId"); - Pageable pageable = new PageRequest(page,size,sort); + @RequestParam(value = "page", defaultValue = "0") Integer page, + @RequestParam(value = "size", defaultValue = "10") Integer size) { + Sort sort = new Sort(Sort.Direction.DESC, "logId"); + Pageable pageable = new PageRequest(page, size, sort); Page logs = logsService.findAllLogs(pageable); - model.addAttribute("logs",logs); + model.addAttribute("logs", logs); return "admin/widget/_logs-all"; } @@ -191,11 +194,11 @@ public class AdminController extends BaseController{ * @return 重定向到/admin */ @GetMapping(value = "/logs/clear") - public String logsClear(){ + public String logsClear() { try { logsService.removeAllLogs(); - }catch (Exception e){ - log.error("未知错误:"+e.getMessage()); + } catch (Exception e) { + log.error("未知错误:" + e.getMessage()); } return "redirect:/admin"; } @@ -206,7 +209,7 @@ public class AdminController extends BaseController{ * @return 模板路径admin/admin_halo */ @GetMapping(value = "/halo") - public String halo(){ + public String halo() { return "admin/admin_halo"; } } diff --git a/src/main/java/cc/ryanc/halo/web/controller/admin/AttachmentController.java b/src/main/java/cc/ryanc/halo/web/controller/admin/AttachmentController.java index 7282a2c3e..6bf51740c 100755 --- a/src/main/java/cc/ryanc/halo/web/controller/admin/AttachmentController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/admin/AttachmentController.java @@ -49,7 +49,7 @@ public class AttachmentController { /** * 刷新HaloConst */ - private void updateConst(){ + private void updateConst() { HaloConst.ATTACHMENTS.clear(); HaloConst.ATTACHMENTS = attachmentService.findAllAttachments(); } @@ -62,12 +62,12 @@ public class AttachmentController { */ @GetMapping public String attachments(Model model, - @RequestParam(value = "page",defaultValue = "0") Integer page, - @RequestParam(value = "size",defaultValue = "18") Integer size){ - Sort sort = new Sort(Sort.Direction.DESC,"attachId"); - Pageable pageable = new PageRequest(page,size,sort); + @RequestParam(value = "page", defaultValue = "0") Integer page, + @RequestParam(value = "size", defaultValue = "18") Integer size) { + Sort sort = new Sort(Sort.Direction.DESC, "attachId"); + Pageable pageable = new PageRequest(page, size, sort); Page attachments = attachmentService.findAllAttachments(pageable); - model.addAttribute("attachments",attachments); + model.addAttribute("attachments", attachments); return "admin/admin_attachment"; } @@ -76,86 +76,86 @@ public class AttachmentController { * 跳转选择附件页面 * * @param model model - * @param page page 当前页码 + * @param page page 当前页码 * @return 模板路径admin/widget/_attachment-select */ @GetMapping(value = "/select") public String selectAttachment(Model model, - @RequestParam(value = "page",defaultValue = "0") Integer page, - @RequestParam(value = "id") String id){ - Sort sort = new Sort(Sort.Direction.DESC,"attachId"); - Pageable pageable = new PageRequest(page,18,sort); + @RequestParam(value = "page", defaultValue = "0") Integer page, + @RequestParam(value = "id") String id) { + Sort sort = new Sort(Sort.Direction.DESC, "attachId"); + Pageable pageable = new PageRequest(page, 18, sort); Page attachments = attachmentService.findAllAttachments(pageable); - model.addAttribute("attachments",attachments); - model.addAttribute("id",id); + model.addAttribute("attachments", attachments); + model.addAttribute("id", id); return "admin/widget/_attachment-select"; } /** * 上传附件 * - * @param file file + * @param file file * @param request request - * @return Map + * @return Map */ - @PostMapping(value = "/upload",produces = {"application/json;charset=UTF-8"}) + @PostMapping(value = "/upload", produces = {"application/json;charset=UTF-8"}) @ResponseBody - public Map upload(@RequestParam("file") MultipartFile file, - HttpServletRequest request){ - return uploadAttachment(file,request); + public Map upload(@RequestParam("file") MultipartFile file, + HttpServletRequest request) { + return uploadAttachment(file, request); } /** * editor.md上传图片 * - * @param file file + * @param file file * @param request request - * @return Map + * @return Map */ - @PostMapping(value = "/upload/editor",produces = {"application/json;charset=UTF-8"}) + @PostMapping(value = "/upload/editor", produces = {"application/json;charset=UTF-8"}) @ResponseBody - public Map editorUpload(@RequestParam("editormd-image-file") MultipartFile file, - HttpServletRequest request){ - return uploadAttachment(file,request); + public Map editorUpload(@RequestParam("editormd-image-file") MultipartFile file, + HttpServletRequest request) { + return uploadAttachment(file, request); } /** * 上传图片 * - * @param file file + * @param file file * @param request request - * @return Map + * @return Map */ - public Map uploadAttachment( MultipartFile file, HttpServletRequest request){ - Map result = new HashMap(); - if(!file.isEmpty()){ - try{ + public Map uploadAttachment(MultipartFile file, HttpServletRequest request) { + Map result = new HashMap(); + if (!file.isEmpty()) { + try { File basePath = new File(ResourceUtils.getURL("classpath:").getPath()); StringBuffer sbMedia = new StringBuffer("upload/"); sbMedia.append(HaloUtil.YEAR).append("/").append(HaloUtil.MONTH).append("/"); - File mediaPath = new File(basePath.getAbsolutePath(),sbMedia.toString()); - if(!mediaPath.exists()){ + File mediaPath = new File(basePath.getAbsolutePath(), sbMedia.toString()); + if (!mediaPath.exists()) { mediaPath.mkdirs(); } - file.transferTo(new File(mediaPath.getAbsoluteFile(),file.getOriginalFilename())); + file.transferTo(new File(mediaPath.getAbsoluteFile(), file.getOriginalFilename())); String fileName = file.getOriginalFilename(); - String nameWithOutSuffix = fileName.substring(0,fileName.lastIndexOf('.')); - String fileSuffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf('.')+1); + String nameWithOutSuffix = fileName.substring(0, fileName.lastIndexOf('.')); + String fileSuffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf('.') + 1); //保存在数据库 Attachment attachment = new Attachment(); attachment.setAttachName(fileName); attachment.setAttachPath(new StringBuffer("/upload/").append(HaloUtil.YEAR).append("/").append(HaloUtil.MONTH).append("/").append(fileName).toString()); - System.out.println(mediaPath.getAbsolutePath()+"/"+fileName); + System.out.println(mediaPath.getAbsolutePath() + "/" + fileName); //判断图片大小,如果长宽都小于500,则保存原始图片路径 - BufferedImage sourceImg = ImageIO.read(new FileInputStream(mediaPath.getPath()+"/"+fileName)); - if(sourceImg.getWidth()<500 && sourceImg.getHeight()<500){ + BufferedImage sourceImg = ImageIO.read(new FileInputStream(mediaPath.getPath() + "/" + fileName)); + if (sourceImg.getWidth() < 500 && sourceImg.getHeight() < 500) { attachment.setAttachSmallPath(new StringBuffer("/upload/").append(HaloUtil.YEAR).append("/").append(HaloUtil.MONTH).append("/").append(fileName).toString()); - }else{ + } else { attachment.setAttachSmallPath(new StringBuffer("/upload/").append(HaloUtil.YEAR).append("/").append(HaloUtil.MONTH).append("/").append(nameWithOutSuffix).append("_small.").append(fileSuffix).toString()); //剪裁图片 - HaloUtil.cutCenterImage(new StringBuffer(mediaPath.getAbsolutePath()).append("/").append(fileName).toString(),new StringBuffer(mediaPath.getAbsolutePath()).append("/").append(nameWithOutSuffix).append("_small.").append(fileSuffix).toString(),500,500,fileSuffix); + HaloUtil.cutCenterImage(new StringBuffer(mediaPath.getAbsolutePath()).append("/").append(fileName).toString(), new StringBuffer(mediaPath.getAbsolutePath()).append("/").append(nameWithOutSuffix).append("_small.").append(fileSuffix).toString(), 500, 500, fileSuffix); } attachment.setAttachType(file.getContentType()); @@ -164,20 +164,20 @@ public class AttachmentController { attachmentService.saveByAttachment(attachment); updateConst(); - log.info("上传文件["+file.getOriginalFilename()+"]到["+mediaPath.getAbsolutePath()+"]成功"); + log.info("上传文件[" + file.getOriginalFilename() + "]到[" + mediaPath.getAbsolutePath() + "]成功"); logsService.saveByLogs( - new Logs(LogsRecord.UPLOAD_FILE,file.getOriginalFilename(),HaloUtil.getIpAddr(request),HaloUtil.getDate()) + new Logs(LogsRecord.UPLOAD_FILE, file.getOriginalFilename(), HaloUtil.getIpAddr(request), HaloUtil.getDate()) ); - result.put("success",1); - result.put("message","上传成功!"); - result.put("url",attachment.getAttachPath()); - }catch (Exception e){ - log.error("未知错误:{0}",e.getMessage()); - result.put("success",0); - result.put("message","上传失败!"); + result.put("success", 1); + result.put("message", "上传成功!"); + result.put("url", attachment.getAttachPath()); + } catch (Exception e) { + log.error("未知错误:{0}", e.getMessage()); + result.put("success", 0); + result.put("message", "上传失败!"); } - }else { + } else { log.error("文件不能为空"); } return result; @@ -186,17 +186,17 @@ public class AttachmentController { /** * 处理获取附件详情的请求 * - * @param model model + * @param model model * @param attachId 附件编号 * @return 模板路径admin/widget/_attachment-detail */ @GetMapping(value = "/attachment") - public String attachmentDetail(Model model,@PathParam("attachId") Long attachId){ + public String attachmentDetail(Model model, @PathParam("attachId") Long attachId) { Optional attachment = attachmentService.findByAttachId(attachId); - model.addAttribute("attachment",attachment.get()); + model.addAttribute("attachment", attachment.get()); //设置选项 - model.addAttribute("options",HaloConst.OPTIONS); + model.addAttribute("options", HaloConst.OPTIONS); return "admin/widget/_attachment-detail"; } @@ -204,16 +204,16 @@ public class AttachmentController { * 移除附件的请求 * * @param attachId 附件编号 - * @param request request + * @param request request * @return true:移除附件成功,false:移除附件失败 */ @GetMapping(value = "/remove") @ResponseBody public boolean removeAttachment(@PathParam("attachId") Long attachId, - HttpServletRequest request){ + HttpServletRequest request) { Optional attachment = attachmentService.findByAttachId(attachId); String delFileName = attachment.get().getAttachName(); - String delSmallFileName = delFileName.substring(0,delFileName.lastIndexOf('.'))+"_small"+attachment.get().getAttachSuffix(); + String delSmallFileName = delFileName.substring(0, delFileName.lastIndexOf('.')) + "_small" + attachment.get().getAttachSuffix(); try { //删除数据库中的内容 attachmentService.removeByAttachId(attachId); @@ -221,32 +221,32 @@ public class AttachmentController { updateConst(); //删除文件 File basePath = new File(ResourceUtils.getURL("classpath:").getPath()); - File mediaPath = new File(basePath.getAbsolutePath(),attachment.get().getAttachPath().substring(0,attachment.get().getAttachPath().lastIndexOf('/'))); + File mediaPath = new File(basePath.getAbsolutePath(), attachment.get().getAttachPath().substring(0, attachment.get().getAttachPath().lastIndexOf('/'))); File delFile = new File(new StringBuffer(mediaPath.getAbsolutePath()).append("/").append(delFileName).toString()); File delSmallFile = new File(new StringBuffer(mediaPath.getAbsolutePath()).append("/").append(delSmallFileName).toString()); BufferedImage sourceImg = ImageIO.read(new FileInputStream(delFile)); - if(sourceImg.getWidth()>500 && sourceImg.getHeight()>500){ - if(delSmallFile.exists()){ - if(delSmallFile.delete()){ + if (sourceImg.getWidth() > 500 && sourceImg.getHeight() > 500) { + if (delSmallFile.exists()) { + if (delSmallFile.delete()) { updateConst(); } } } - if(delFile.exists() && delFile.isFile()){ - if(delFile.delete()){ + if (delFile.exists() && delFile.isFile()) { + if (delFile.delete()) { updateConst(); - log.info("删除文件["+delFileName+"]成功!"); + log.info("删除文件[" + delFileName + "]成功!"); logsService.saveByLogs( - new Logs(LogsRecord.REMOVE_FILE,delFileName,HaloUtil.getIpAddr(request),HaloUtil.getDate()) + new Logs(LogsRecord.REMOVE_FILE, delFileName, HaloUtil.getIpAddr(request), HaloUtil.getDate()) ); - }else{ - log.error("删除附件["+delFileName+"]失败!"); + } else { + log.error("删除附件[" + delFileName + "]失败!"); return false; } } - }catch (Exception e){ - log.error("删除附件["+delFileName+"]失败!:",e.getMessage()); + } catch (Exception e) { + log.error("删除附件[" + delFileName + "]失败!:", e.getMessage()); return false; } return true; diff --git a/src/main/java/cc/ryanc/halo/web/controller/admin/BackupController.java b/src/main/java/cc/ryanc/halo/web/controller/admin/BackupController.java index f4e9948d5..fec42ec77 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/admin/BackupController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/admin/BackupController.java @@ -35,7 +35,7 @@ public class BackupController { * @return 模板路径admin/admin_backup */ @GetMapping - public String backup(){ + public String backup() { return "admin/admin_backup"; } @@ -45,14 +45,14 @@ public class BackupController { * @return 重定向到/admin/backup */ @GetMapping(value = "/backupDb") - public String backupDatabase(){ - String fileName = "db_backup_"+HaloUtil.getStringDate("yyyy_MM_dd_HH_mm_ss")+".sql"; + public String backupDatabase() { + String fileName = "db_backup_" + HaloUtil.getStringDate("yyyy_MM_dd_HH_mm_ss") + ".sql"; try { File path = new File(ResourceUtils.getURL("classpath:").getPath()); - String savePath = path.getAbsolutePath()+"/backup/database"; - HaloUtil.exportDatabase("localhost","root","123456",savePath,fileName,"testdb"); - }catch (Exception e){ - log.error("未知错误:{0}",e.getMessage()); + String savePath = path.getAbsolutePath() + "/backup/database"; + HaloUtil.exportDatabase("localhost", "root", "123456", savePath, fileName, "testdb"); + } catch (Exception e) { + log.error("未知错误:{0}", e.getMessage()); } return "redirect:/admin/backup"; } @@ -63,7 +63,7 @@ public class BackupController { * @return return */ @GetMapping(value = "/backupRe") - public String backupResources(){ + public String backupResources() { return null; } @@ -73,15 +73,15 @@ public class BackupController { * @return 重定向到/admin/backup */ @GetMapping(value = "/backupPost") - public String backupPosts(){ + public String backupPosts() { List posts = postService.findAllPosts(HaloConst.POST_TYPE_POST); try { File path = new File(ResourceUtils.getURL("classpath:").getPath()); - String savePath = path.getAbsolutePath()+"/backup/posts/posts_backup_"+HaloUtil.getStringDate("yyyy_MM_dd_HH_mm_ss"); - for(Post post : posts){ - HaloUtil.dbToFile(post.getPostContentMd(),savePath,post.getPostTitle()+".md"); + String savePath = path.getAbsolutePath() + "/backup/posts/posts_backup_" + HaloUtil.getStringDate("yyyy_MM_dd_HH_mm_ss"); + for (Post post : posts) { + HaloUtil.dbToFile(post.getPostContentMd(), savePath, post.getPostTitle() + ".md"); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } return "redirect:/admin/backup"; diff --git a/src/main/java/cc/ryanc/halo/web/controller/admin/CategoryController.java b/src/main/java/cc/ryanc/halo/web/controller/admin/CategoryController.java index a36b173a1..228115849 100755 --- a/src/main/java/cc/ryanc/halo/web/controller/admin/CategoryController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/admin/CategoryController.java @@ -32,8 +32,8 @@ public class CategoryController { * @return 模板路径admin/admin_category */ @GetMapping - public String categories(Model model){ - model.addAttribute("statusName","添加"); + public String categories(Model model) { + model.addAttribute("statusName", "添加"); return "admin/admin_category"; } @@ -44,11 +44,11 @@ public class CategoryController { * @return 重定向到/admin/category */ @PostMapping(value = "/save") - public String saveCategory(@ModelAttribute Category category){ - try{ + public String saveCategory(@ModelAttribute Category category) { + try { categoryService.saveByCategory(category); - }catch (Exception e){ - log.error("未知错误:{0}",e.getMessage()); + } catch (Exception e) { + log.error("未知错误:{0}", e.getMessage()); } return "redirect:/admin/category"; } @@ -61,9 +61,9 @@ public class CategoryController { */ @GetMapping(value = "/checkUrl") @ResponseBody - public boolean checkCateUrlExists(@RequestParam("cateUrl") String cateUrl){ + public boolean checkCateUrlExists(@RequestParam("cateUrl") String cateUrl) { Category category = categoryService.findByCateUrl(cateUrl); - return null!=category; + return null != category; } /** @@ -73,12 +73,12 @@ public class CategoryController { * @return 重定向到/admin/category */ @GetMapping(value = "/remove") - public String removeCategory(@PathParam("cateId") Long cateId){ - try{ + public String removeCategory(@PathParam("cateId") Long cateId) { + try { Category category = categoryService.removeByCateId(cateId); - log.info("删除的分类目录:"+category); - } catch (Exception e){ - log.error("未知错误:{0}",e.getMessage()); + log.info("删除的分类目录:" + category); + } catch (Exception e) { + log.error("未知错误:{0}", e.getMessage()); } return "redirect:/admin/category"; } @@ -87,14 +87,14 @@ public class CategoryController { * 跳转到修改页面 * * @param cateId cateId - * @param model model + * @param model model * @return 模板路径admin/admin_category */ @GetMapping(value = "/edit") - public String toEditCategory(Model model,@PathParam("cateId") Long cateId){ + public String toEditCategory(Model model, @PathParam("cateId") Long cateId) { Optional category = categoryService.findByCateId(cateId); - model.addAttribute("updateCategory",category.get()); - model.addAttribute("statusName","修改"); + model.addAttribute("updateCategory", category.get()); + model.addAttribute("statusName", "修改"); return "admin/admin_category"; } } diff --git a/src/main/java/cc/ryanc/halo/web/controller/admin/CommentController.java b/src/main/java/cc/ryanc/halo/web/controller/admin/CommentController.java index ed4c1b04f..2ac399285 100755 --- a/src/main/java/cc/ryanc/halo/web/controller/admin/CommentController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/admin/CommentController.java @@ -6,6 +6,7 @@ import cc.ryanc.halo.model.domain.User; import cc.ryanc.halo.model.dto.HaloConst; import cc.ryanc.halo.service.CommentService; import cc.ryanc.halo.service.MailService; +import cc.ryanc.halo.service.PostService; import cc.ryanc.halo.service.UserService; import cc.ryanc.halo.util.HaloUtil; import cc.ryanc.halo.web.controller.core.BaseController; @@ -52,6 +53,9 @@ public class CommentController extends BaseController{ @Autowired private UserService userService; + @Autowired + private PostService postService; + /** * 渲染评论管理页面 * @@ -81,18 +85,18 @@ public class CommentController extends BaseController{ * 将评论移到回收站 * * @param commentId 评论编号 - * @param session session + * @param status 评论状态 * @return 重定向到/admin/comments */ @GetMapping(value = "/throw") public String moveToTrash(@PathParam("commentId") Long commentId, - HttpSession session){ + @PathParam("status") String status){ try { commentService.updateCommentStatus(commentId,2); }catch (Exception e){ log.error("未知错误:{0}",e.getMessage()); } - return "redirect:/admin/comments"; + return "redirect:/admin/comments?status="+status; } /** @@ -117,7 +121,7 @@ public class CommentController extends BaseController{ try { if (status == 1 && matcher.find()) { Map map = new HashMap<>(); - map.put("pageUrl", comment.getPost().getPostUrl()); + map.put("pageUrl", HaloConst.OPTIONS.get("blog_url")+"/archives/"+comment.getPost().getPostUrl()+"#comment-id-"+comment.getCommentId()); map.put("pageName", comment.getPost().getPostTitle()); map.put("commentContent", comment.getCommentContent()); map.put("blogUrl", HaloConst.OPTIONS.get("blog_url")); @@ -169,8 +173,7 @@ public class CommentController extends BaseController{ HttpServletRequest request, HttpSession session){ try { - Post post = new Post(); - post.setPostId(postId); + Post post = postService.findByPostId(postId).get(); //博主信息 User user = (User) session.getAttribute(HaloConst.USER_SESSION_KEY); @@ -191,7 +194,7 @@ public class CommentController extends BaseController{ comment.setCommentAuthorIp(HaloUtil.getIpAddr(request)); comment.setCommentAuthorAvatarMd5(HaloUtil.getMD5(userService.findUser().getUserEmail())); comment.setCommentDate(new Date()); - String lastContent = " //@"+lastComment.getCommentAuthor()+":"+lastComment.getCommentContent(); + String lastContent = " //@"+lastComment.getCommentAuthor()+":"+lastComment.getCommentContent(); comment.setCommentContent(commentContent+lastContent); comment.setCommentAgent(userAgent); comment.setCommentParent(commentId); @@ -210,6 +213,7 @@ public class CommentController extends BaseController{ map.put("blogTitle",HaloConst.OPTIONS.get("blog_title")); map.put("commentAuthor",lastComment.getCommentAuthor()); map.put("pageName",lastComment.getPost().getPostTitle()); + map.put("pageUrl",HaloConst.OPTIONS.get("blog_url")+"/archives/"+post.getPostUrl()+"#comment-id-"+comment.getCommentId()); map.put("commentContent",lastComment.getCommentContent()); map.put("replyAuthor",user.getUserDisplayName()); map.put("replyContent",commentContent); diff --git a/src/main/java/cc/ryanc/halo/web/controller/admin/MenuController.java b/src/main/java/cc/ryanc/halo/web/controller/admin/MenuController.java index ee9cb620a..99ceb4c8d 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/admin/MenuController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/admin/MenuController.java @@ -31,8 +31,8 @@ public class MenuController { * @return 模板路径/admin/admin_menu */ @GetMapping - public String menus(Model model){ - model.addAttribute("statusName","添加"); + public String menus(Model model) { + model.addAttribute("statusName", "添加"); return "/admin/admin_menu"; } @@ -43,11 +43,11 @@ public class MenuController { * @return 重定向到/admin/menus */ @PostMapping(value = "/save") - public String saveMenu(@ModelAttribute Menu menu){ - try{ + public String saveMenu(@ModelAttribute Menu menu) { + try { menuService.saveByMenu(menu); - }catch (Exception e){ - log.error("保存菜单失败:"+e.getMessage()); + } catch (Exception e) { + log.error("保存菜单失败:" + e.getMessage()); } return "redirect:/admin/menus"; } @@ -56,14 +56,14 @@ public class MenuController { * 跳转到修改页面 * * @param menuId 菜单编号 - * @param model model + * @param model model * @return 模板路径/admin/admin_menu */ @GetMapping(value = "/edit") - public String updateMenu(@RequestParam("menuId") Long menuId,Model model){ + public String updateMenu(@RequestParam("menuId") Long menuId, Model model) { Menu menu = menuService.findByMenuId(menuId).get(); - model.addAttribute("statusName","修改"); - model.addAttribute("updateMenu",menu); + model.addAttribute("statusName", "修改"); + model.addAttribute("updateMenu", menu); return "/admin/admin_menu"; } @@ -74,11 +74,11 @@ public class MenuController { * @return 重定向到/admin/menus */ @GetMapping(value = "/remove") - public String removeMenu(@PathParam("menuId") Long menuId){ + public String removeMenu(@PathParam("menuId") Long menuId) { try { menuService.removeByMenuId(menuId); - }catch (Exception e){ - log.error("删除菜单失败:{0}",e.getMessage()); + } catch (Exception e) { + log.error("删除菜单失败:{0}", e.getMessage()); } return "redirect:/admin/menus"; } diff --git a/src/main/java/cc/ryanc/halo/web/controller/admin/OptionController.java b/src/main/java/cc/ryanc/halo/web/controller/admin/OptionController.java index a44ec4e42..12709ce8a 100755 --- a/src/main/java/cc/ryanc/halo/web/controller/admin/OptionController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/admin/OptionController.java @@ -33,7 +33,7 @@ public class OptionController { * @return 模板路径admin/admin_option */ @GetMapping - public String options(){ + public String options() { return "admin/admin_option"; } @@ -45,17 +45,17 @@ public class OptionController { */ @PostMapping(value = "/save") @ResponseBody - public boolean saveOptions(@RequestParam Map options){ + public boolean saveOptions(@RequestParam Map options) { try { optionsService.saveOptions(options); //刷新options - configuration.setSharedVariable("options",optionsService.findAllOptions()); + configuration.setSharedVariable("options", optionsService.findAllOptions()); HaloConst.OPTIONS.clear(); HaloConst.OPTIONS = optionsService.findAllOptions(); - log.info("所保存的设置选项列表:"+options); + log.info("所保存的设置选项列表:" + options); return true; - }catch (Exception e){ - log.error("未知错误:{0}",e.getMessage()); + } catch (Exception e) { + log.error("未知错误:{0}", e.getMessage()); return false; } } diff --git a/src/main/java/cc/ryanc/halo/web/controller/admin/PageController.java b/src/main/java/cc/ryanc/halo/web/controller/admin/PageController.java index 44895b784..d9cac6e5a 100755 --- a/src/main/java/cc/ryanc/halo/web/controller/admin/PageController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/admin/PageController.java @@ -58,9 +58,9 @@ public class PageController { * @return 模板路径admin/admin_page */ @GetMapping - public String pages(Model model){ + public String pages(Model model) { List posts = postService.findAllPosts(HaloConst.POST_TYPE_PAGE); - model.addAttribute("pages",posts); + model.addAttribute("pages", posts); return "admin/admin_page"; } @@ -71,27 +71,27 @@ public class PageController { * @return 模板路径admin/admin_page_link */ @GetMapping(value = "/links") - public String links(Model model){ + public String links(Model model) { List links = linkService.findAllLinks(); - model.addAttribute("links",links); - model.addAttribute("statusName","添加"); + model.addAttribute("links", links); + model.addAttribute("statusName", "添加"); return "admin/admin_page_link"; } /** * 跳转到修改页面 * - * @param model model + * @param model model * @param linkId linkId 友情链接编号 * @return String 模板路径admin/admin_page_link */ @GetMapping("/links/edit") - public String toEditLink(Model model,@PathParam("linkId") Long linkId){ + public String toEditLink(Model model, @PathParam("linkId") Long linkId) { List links = linkService.findAllLinks(); Optional link = linkService.findByLinkId(linkId); - model.addAttribute("updateLink",link.get()); - model.addAttribute("statusName","修改"); - model.addAttribute("links",links); + model.addAttribute("updateLink", link.get()); + model.addAttribute("statusName", "修改"); + model.addAttribute("links", links); return "admin/admin_page_link"; } @@ -102,12 +102,12 @@ public class PageController { * @return 重定向到/admin/page/links */ @PostMapping(value = "/links/save") - public String saveLink(@ModelAttribute Link link){ - try{ + public String saveLink(@ModelAttribute Link link) { + try { Link backLink = linkService.saveByLink(link); - log.info("保存成功,数据为:"+backLink); - }catch (Exception e){ - log.error("未知错误:{0}",e.getMessage()); + log.info("保存成功,数据为:" + backLink); + } catch (Exception e) { + log.error("未知错误:{0}", e.getMessage()); } return "redirect:/admin/page/links"; } @@ -119,12 +119,12 @@ public class PageController { * @return 重定向到/admin/page/links */ @GetMapping(value = "/links/remove") - public String removeLink(@PathParam("linkId") Long linkId){ - try{ + public String removeLink(@PathParam("linkId") Long linkId) { + try { Link link = linkService.removeByLinkId(linkId); - log.info("删除的友情链接:"+link); - }catch (Exception e){ - log.error("未知错误:{0}",e.getMessage()); + log.info("删除的友情链接:" + link); + } catch (Exception e) { + log.error("未知错误:{0}", e.getMessage()); } return "redirect:/admin/page/links"; } @@ -133,18 +133,18 @@ public class PageController { * 图库管理 * * @param model model - * @param page 当前页码 - * @param size 每页显示的条数 + * @param page 当前页码 + * @param size 每页显示的条数 * @return 模板路径admin/admin_page_gallery */ @GetMapping(value = "/galleries") public String gallery(Model model, - @RequestParam(value = "page",defaultValue = "0") Integer page, - @RequestParam(value = "size",defaultValue = "18") Integer size){ - Sort sort = new Sort(Sort.Direction.DESC,"galleryId"); - Pageable pageable = new PageRequest(page,size,sort); + @RequestParam(value = "page", defaultValue = "0") Integer page, + @RequestParam(value = "size", defaultValue = "18") Integer size) { + Sort sort = new Sort(Sort.Direction.DESC, "galleryId"); + Pageable pageable = new PageRequest(page, size, sort); Page galleries = galleryService.findAllGalleries(pageable); - model.addAttribute("galleries",galleries); + model.addAttribute("galleries", galleries); return "admin/admin_page_gallery"; } @@ -155,13 +155,13 @@ public class PageController { * @return 重定向到/admin/page/gallery */ @PostMapping(value = "/gallery/save") - public String saveGallery(@ModelAttribute Gallery gallery){ + public String saveGallery(@ModelAttribute Gallery gallery) { try { - if(StringUtils.isEmpty(gallery.getGalleryThumbnailUrl())){ + if (StringUtils.isEmpty(gallery.getGalleryThumbnailUrl())) { gallery.setGalleryThumbnailUrl(gallery.getGalleryUrl()); } galleryService.saveByGallery(gallery); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } return "redirect:/admin/page/gallery"; @@ -170,14 +170,14 @@ public class PageController { /** * 处理获取图片详情的请求 * - * @param model model + * @param model model * @param galleryId 图片编号 * @return 模板路径admin/widget/_gallery-detail */ @GetMapping(value = "/gallery") - public String gallery(Model model,@PathParam("galleryId") Long galleryId){ + public String gallery(Model model, @PathParam("galleryId") Long galleryId) { Optional gallery = galleryService.findByGalleryId(galleryId); - model.addAttribute("gallery",gallery.get()); + model.addAttribute("gallery", gallery.get()); return "admin/widget/_gallery-detail"; } @@ -189,11 +189,11 @@ public class PageController { */ @GetMapping(value = "/gallery/remove") @ResponseBody - public boolean removeGallery(@RequestParam("galleryId") Long galleryId){ + public boolean removeGallery(@RequestParam("galleryId") Long galleryId) { try { galleryService.removeByGalleryId(galleryId); - }catch (Exception e){ - log.error("删除图片失败:{0}",e.getMessage()); + } catch (Exception e) { + log.error("删除图片失败:{0}", e.getMessage()); return false; } return true; @@ -206,28 +206,29 @@ public class PageController { * @return 模板路径admin/admin_page_md_editor */ @GetMapping(value = "/new") - public String newPage(Model model){ + public String newPage(Model model) { return "admin/admin_page_md_editor"; } /** * 发表页面 - * @param post post + * + * @param post post * @param session session */ @PostMapping(value = "/new/push") @ResponseBody - public void pushPage(@ModelAttribute Post post, HttpSession session){ - try{ + public void pushPage(@ModelAttribute Post post, HttpSession session) { + try { post.setPostDate(HaloUtil.getDate()); //发表用户 - User user = (User)session.getAttribute(HaloConst.USER_SESSION_KEY); + User user = (User) session.getAttribute(HaloConst.USER_SESSION_KEY); post.setUser(user); post.setPostType(HaloConst.POST_TYPE_PAGE); postService.saveByPost(post); - logsService.saveByLogs(new Logs(LogsRecord.PUSH_POST,post.getPostTitle(),HaloUtil.getIpAddr(request),HaloUtil.getDate())); - }catch (Exception e){ - log.error("未知错误:{0}",e.getMessage()); + logsService.saveByLogs(new Logs(LogsRecord.PUSH_POST, post.getPostTitle(), HaloUtil.getIpAddr(request), HaloUtil.getDate())); + } catch (Exception e) { + log.error("未知错误:{0}", e.getMessage()); } } @@ -235,13 +236,13 @@ public class PageController { * 跳转到修改页面 * * @param pageId 页面编号 - * @param model model + * @param model model * @return admin/admin_page_md_editor */ @GetMapping(value = "/edit") - public String editPage(@PathParam("pageId") Long pageId,Model model){ + public String editPage(@PathParam("pageId") Long pageId, Model model) { Optional post = postService.findByPostId(pageId); - model.addAttribute("post",post.get()); + model.addAttribute("post", post.get()); return "admin/admin_page_md_editor"; } @@ -253,10 +254,10 @@ public class PageController { */ @GetMapping(value = "/checkUrl") @ResponseBody - public boolean checkUrlExists(@PathParam("postUrl") String postUrl){ - Post post = postService.findByPostUrl(postUrl,HaloConst.POST_TYPE_PAGE); + public boolean checkUrlExists(@PathParam("postUrl") String postUrl) { + Post post = postService.findByPostUrl(postUrl, HaloConst.POST_TYPE_PAGE); // TODO 还没写完 - if(null!=post || StringUtils.equals("archives",postUrl) || StringUtils.equals("galleries",postUrl)){ + if (null != post || StringUtils.equals("archives", postUrl) || StringUtils.equals("galleries", postUrl)) { return true; } return false; diff --git a/src/main/java/cc/ryanc/halo/web/controller/admin/PostController.java b/src/main/java/cc/ryanc/halo/web/controller/admin/PostController.java index f5b41389e..c43200706 100755 --- a/src/main/java/cc/ryanc/halo/web/controller/admin/PostController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/admin/PostController.java @@ -141,11 +141,12 @@ public class PostController extends BaseController{ @PostMapping(value = "/new/push") @ResponseBody public void pushPost(@ModelAttribute Post post, @RequestParam("cateList") List cateList, @RequestParam("tagList") String tagList, HttpSession session){ - //发表用户 + //判断博主是否登录 User user = (User)session.getAttribute(HaloConst.USER_SESSION_KEY); if(null==user){ return; } + //判断是否为更新文章操作 if(null!=post.getPostId()){ post = postService.findByPostId(post.getPostId()).get(); } @@ -299,11 +300,17 @@ public class PostController extends BaseController{ } String blogUrl = HaloConst.OPTIONS.get("blog_url"); List posts = postService.findAllPosts(HaloConst.POST_TYPE_POST); - String urls = ""; + StringBuilder urls = new StringBuilder(); for(Post post:posts){ - urls+=blogUrl+"/archives/"+post.getPostUrl()+"\n"; + urls.append(blogUrl); + urls.append("/archives/"); + urls.append(post.getPostUrl()); + urls.append("\n"); + } + String result = HaloUtil.baiduPost(blogUrl, baiduToken, urls.toString()); + if (StringUtils.isEmpty(result)) { + return false; } - HaloUtil.baiduPost(blogUrl,baiduToken,urls); return true; } } diff --git a/src/main/java/cc/ryanc/halo/web/controller/admin/TagController.java b/src/main/java/cc/ryanc/halo/web/controller/admin/TagController.java index 490d5815c..2b40915b3 100755 --- a/src/main/java/cc/ryanc/halo/web/controller/admin/TagController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/admin/TagController.java @@ -32,10 +32,10 @@ public class TagController { * @return 模板路径admin/admin_tag */ @GetMapping - public String tags(Model model){ + public String tags(Model model) { List tags = tagService.findAllTags(); - model.addAttribute("tags",tags); - model.addAttribute("statusName","新增"); + model.addAttribute("tags", tags); + model.addAttribute("statusName", "新增"); return "admin/admin_tag"; } @@ -46,11 +46,11 @@ public class TagController { * @return 重定向到/admin/tag */ @PostMapping(value = "/save") - public String saveTag(@ModelAttribute Tag tag){ - try{ + public String saveTag(@ModelAttribute Tag tag) { + try { tagService.saveByTag(tag); - }catch (Exception e){ - log.error("未知错误:{0}",e.getMessage()); + } catch (Exception e) { + log.error("未知错误:{0}", e.getMessage()); } return "redirect:/admin/tag"; } @@ -63,9 +63,9 @@ public class TagController { */ @GetMapping(value = "/checkUrl") @ResponseBody - public boolean checkTagUrlExists(@RequestParam("tagUrl") String tagUrl){ + public boolean checkTagUrlExists(@RequestParam("tagUrl") String tagUrl) { Tag tag = tagService.findByTagUrl(tagUrl); - return null!=tag; + return null != tag; } /** @@ -75,12 +75,12 @@ public class TagController { * @return 重定向到/admin/tag */ @GetMapping(value = "/remove") - public String removeTag(@PathParam("tagId") Long tagId){ - try{ + public String removeTag(@PathParam("tagId") Long tagId) { + try { Tag tag = tagService.removeByTagId(tagId); - log.info("删除的标签:"+tag); - }catch (Exception e){ - log.error("未知错误:{0}",e.getMessage()); + log.info("删除的标签:" + tag); + } catch (Exception e) { + log.error("未知错误:{0}", e.getMessage()); } return "redirect:/admin/tag"; } @@ -93,12 +93,12 @@ public class TagController { * @return 模板路径admin/admin_tag */ @GetMapping(value = "/edit") - public String toEditTag(Model model,@PathParam("tagId") Long tagId){ + public String toEditTag(Model model, @PathParam("tagId") Long tagId) { List tags = tagService.findAllTags(); Tag tag = tagService.findByTagId(tagId).get(); - model.addAttribute("statusName","修改"); - model.addAttribute("updateTag",tag); - model.addAttribute("tags",tags); + model.addAttribute("statusName", "修改"); + model.addAttribute("updateTag", tag); + model.addAttribute("tags", tags); return "admin/admin_tag"; } } diff --git a/src/main/java/cc/ryanc/halo/web/controller/admin/ThemeController.java b/src/main/java/cc/ryanc/halo/web/controller/admin/ThemeController.java index 4c72acb63..2de509778 100755 --- a/src/main/java/cc/ryanc/halo/web/controller/admin/ThemeController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/admin/ThemeController.java @@ -32,7 +32,7 @@ import java.util.List; @Slf4j @Controller @RequestMapping(value = "/admin/themes") -public class ThemeController extends BaseController{ +public class ThemeController extends BaseController { @Autowired private OptionsService optionsService; @@ -47,10 +47,10 @@ public class ThemeController extends BaseController{ * @return 模板路径admin/admin_theme */ @GetMapping - public String themes(Model model){ - model.addAttribute("activeTheme",BaseController.THEME); - if(null!=HaloConst.THEMES){ - model.addAttribute("themes",HaloConst.THEMES); + public String themes(Model model) { + model.addAttribute("activeTheme", BaseController.THEME); + if (null != HaloConst.THEMES) { + model.addAttribute("themes", HaloConst.THEMES); } return "admin/admin_theme"; } @@ -59,25 +59,25 @@ public class ThemeController extends BaseController{ * 激活主题 * * @param siteTheme 主题名称 - * @param request request + * @param request request * @return true:激活成功,false:激活失败 */ @GetMapping(value = "/set") @ResponseBody public boolean activeTheme(@PathParam("siteTheme") String siteTheme, - HttpServletRequest request){ + HttpServletRequest request) { try { //保存主题设置项 - optionsService.saveOption("theme",siteTheme); + optionsService.saveOption("theme", siteTheme); //设置主题 BaseController.THEME = siteTheme; - log.info("已将主题改变为:"+siteTheme); + log.info("已将主题改变为:" + siteTheme); logsService.saveByLogs( - new Logs(LogsRecord.CHANGE_THEME,"更换为"+siteTheme,HaloUtil.getIpAddr(request),HaloUtil.getDate()) + new Logs(LogsRecord.CHANGE_THEME, "更换为" + siteTheme, HaloUtil.getIpAddr(request), HaloUtil.getDate()) ); return true; - }catch (Exception e){ - log.error("主题设置失败,当前主题为:"+siteTheme); + } catch (Exception e) { + log.error("主题设置失败,当前主题为:" + siteTheme); return false; } } @@ -92,27 +92,27 @@ public class ThemeController extends BaseController{ @RequestMapping(value = "/upload", method = RequestMethod.POST) @ResponseBody public boolean uploadTheme(@RequestParam("file") MultipartFile file, - HttpServletRequest request){ + HttpServletRequest request) { try { - if(!file.isEmpty()) { + if (!file.isEmpty()) { //获取项目根路径 File basePath = new File(ResourceUtils.getURL("classpath:").getPath()); File themePath = new File(basePath.getAbsolutePath(), new StringBuffer("templates/themes/").append(file.getOriginalFilename()).toString()); file.transferTo(themePath); log.info("上传主题成功,路径:" + themePath.getAbsolutePath()); logsService.saveByLogs( - new Logs(LogsRecord.UPLOAD_THEME,file.getOriginalFilename(),HaloUtil.getIpAddr(request),HaloUtil.getDate()) + new Logs(LogsRecord.UPLOAD_THEME, file.getOriginalFilename(), HaloUtil.getIpAddr(request), HaloUtil.getDate()) ); - HaloUtil.unZip(themePath.getAbsolutePath(),new File(basePath.getAbsolutePath(),"templates/themes/").getAbsolutePath()); + HaloUtil.unZip(themePath.getAbsolutePath(), new File(basePath.getAbsolutePath(), "templates/themes/").getAbsolutePath()); HaloUtil.removeFile(themePath.getAbsolutePath()); HaloConst.THEMES.clear(); HaloConst.THEMES = HaloUtil.getThemes(); return true; - }else{ + } else { log.error("上传主题失败,没有选择文件"); } - }catch (Exception e){ - log.error("上传主题失败:{0}",e.getMessage()); + } catch (Exception e) { + log.error("上传主题失败:{0}", e.getMessage()); } return false; } @@ -124,15 +124,15 @@ public class ThemeController extends BaseController{ * @return string 重定向到/admin/themes */ @GetMapping(value = "/remove") - public String removeTheme(@RequestParam("themeName") String themeName){ - try{ + public String removeTheme(@RequestParam("themeName") String themeName) { + try { File basePath = new File(ResourceUtils.getURL("classpath:").getPath()); - File themePath = new File(basePath.getAbsolutePath(),"templates/themes/"+themeName); + File themePath = new File(basePath.getAbsolutePath(), "templates/themes/" + themeName); HaloUtil.removeDir(themePath); HaloConst.THEMES.clear(); HaloConst.THEMES = HaloUtil.getThemes(); - }catch (Exception e){ - log.error("删除主题失败:{0}",e.getMessage()); + } catch (Exception e) { + log.error("删除主题失败:{0}", e.getMessage()); } return "redirect:/admin/themes"; } @@ -143,9 +143,9 @@ public class ThemeController extends BaseController{ * @param theme theme名称 */ @GetMapping(value = "/options") - public String setting(Model model,@RequestParam("theme") String theme){ - model.addAttribute("themeDir",theme); - return "themes/"+theme+"/module/options"; + public String setting(Model model, @RequestParam("theme") String theme) { + model.addAttribute("themeDir", theme); + return "themes/" + theme + "/module/options"; } /** @@ -155,9 +155,9 @@ public class ThemeController extends BaseController{ * @return 模板路径admin/admin_theme-editor */ @GetMapping(value = "/editor") - public String editor(Model model){ + public String editor(Model model) { List tpls = HaloUtil.getTplName(BaseController.THEME); - model.addAttribute("tpls",tpls); + model.addAttribute("tpls", tpls); return "admin/admin_theme-editor"; } @@ -167,18 +167,18 @@ public class ThemeController extends BaseController{ * @param tplName 模板文件名 * @return 模板内容 */ - @GetMapping(value = "/getTpl",produces = "text/text;charset=UTF-8") + @GetMapping(value = "/getTpl", produces = "text/text;charset=UTF-8") @ResponseBody - public String getTplContent(@RequestParam("tplName") String tplName){ + public String getTplContent(@RequestParam("tplName") String tplName) { String tplContent = ""; try { //获取项目根路径 File basePath = new File(ResourceUtils.getURL("classpath:").getPath()); //获取主题路径 - File themesPath = new File(basePath.getAbsolutePath(),new StringBuffer("templates/themes/").append(BaseController.THEME).append("/").append(tplName).toString()); + File themesPath = new File(basePath.getAbsolutePath(), new StringBuffer("templates/themes/").append(BaseController.THEME).append("/").append(tplName).toString()); tplContent = HaloUtil.getFileContent(themesPath.getAbsolutePath()); - }catch (Exception e){ - log.error("获取模板文件错误:{0}",e.getMessage()); + } catch (Exception e) { + log.error("获取模板文件错误:{0}", e.getMessage()); } return tplContent; } @@ -186,26 +186,26 @@ public class ThemeController extends BaseController{ /** * 保存修改模板 * - * @param tplName 模板名称 + * @param tplName 模板名称 * @param tplContent 模板内容 * @return boolean true:修改成功,false:修改失败 */ @PostMapping(value = "/editor/save") @ResponseBody public boolean saveTpl(@RequestParam("tplName") String tplName, - @RequestParam("tplContent") String tplContent){ - if(StringUtils.isBlank(tplContent)){ + @RequestParam("tplContent") String tplContent) { + if (StringUtils.isBlank(tplContent)) { return false; } try { //获取项目根路径 File basePath = new File(ResourceUtils.getURL("classpath:").getPath()); //获取主题路径 - File tplPath = new File(basePath.getAbsolutePath(),new StringBuffer("templates/themes/").append(BaseController.THEME).append("/").append(tplName).toString()); + File tplPath = new File(basePath.getAbsolutePath(), new StringBuffer("templates/themes/").append(BaseController.THEME).append("/").append(tplName).toString()); byte[] tplContentByte = tplContent.getBytes("UTF-8"); - Files.write(Paths.get(tplPath.getAbsolutePath()),tplContentByte); - }catch (Exception e){ - log.error("文件保存失败:{0}",e.getMessage()); + Files.write(Paths.get(tplPath.getAbsolutePath()), tplContentByte); + } catch (Exception e) { + log.error("文件保存失败:{0}", e.getMessage()); return false; } return true; diff --git a/src/main/java/cc/ryanc/halo/web/controller/admin/UserController.java b/src/main/java/cc/ryanc/halo/web/controller/admin/UserController.java index 005a9cc9c..bfb98748a 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/admin/UserController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/admin/UserController.java @@ -34,30 +34,30 @@ public class UserController { * @return 模板路径admin/admin_profile */ @GetMapping - public String profile(){ + public String profile() { return "admin/admin_profile"; } /** * 处理修改用户资料的请求 * - * @param user user + * @param user user * @param session session * @return true:修改成功,false:修改失败 */ @PostMapping(value = "save") @ResponseBody - public boolean saveProfile(@ModelAttribute User user,HttpSession session){ - try{ - if(null!=user){ + public boolean saveProfile(@ModelAttribute User user, HttpSession session) { + try { + if (null != user) { userService.saveByUser(user); - configuration.setSharedVariable("user",userService.findUser()); + configuration.setSharedVariable("user", userService.findUser()); session.invalidate(); - }else{ + } else { return false; } - }catch (Exception e){ - log.error("未知错误:{0}",e.getMessage()); + } catch (Exception e) { + log.error("未知错误:{0}", e.getMessage()); return false; } return true; @@ -67,28 +67,28 @@ public class UserController { * 处理修改密码的请求 * * @param beforePass 旧密码 - * @param newPass 新密码 - * @param userId 用户编号 - * @param session session + * @param newPass 新密码 + * @param userId 用户编号 + * @param session session * @return true:修改密码成功,false:修改密码失败 */ @PostMapping(value = "changePass") @ResponseBody public boolean changePass(@ModelAttribute("beforePass") String beforePass, - @ModelAttribute("newPass") String newPass, - @ModelAttribute("userId") Long userId, - HttpSession session){ + @ModelAttribute("newPass") String newPass, + @ModelAttribute("userId") Long userId, + HttpSession session) { try { - User user = userService.findByUserIdAndUserPass(userId,HaloUtil.getMD5(beforePass)); - if(null!=user){ + User user = userService.findByUserIdAndUserPass(userId, HaloUtil.getMD5(beforePass)); + if (null != user) { user.setUserPass(HaloUtil.getMD5(newPass)); userService.saveByUser(user); session.invalidate(); - }else{ + } else { return false; } - }catch (Exception e){ - log.error("修改密码:未知错误,{0}",e.getMessage()); + } catch (Exception e) { + log.error("修改密码:未知错误,{0}", e.getMessage()); return false; } return true; diff --git a/src/main/java/cc/ryanc/halo/web/controller/core/BaseController.java b/src/main/java/cc/ryanc/halo/web/controller/core/BaseController.java index 0e106bd5f..a0e733b83 100755 --- a/src/main/java/cc/ryanc/halo/web/controller/core/BaseController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/core/BaseController.java @@ -19,7 +19,7 @@ public abstract class BaseController { * @param pageName pageName * @return 返回拼接好的模板路径 */ - public String render(String pageName){ + public String render(String pageName) { StringBuffer themeStr = new StringBuffer("themes/"); themeStr.append(THEME); themeStr.append("/"); diff --git a/src/main/java/cc/ryanc/halo/web/controller/core/CommonController.java b/src/main/java/cc/ryanc/halo/web/controller/core/CommonController.java index 7939c45d2..9b53a0de5 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/core/CommonController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/core/CommonController.java @@ -8,6 +8,7 @@ import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import javax.servlet.http.HttpServletRequest; + /** * @author : RYAN0UP * @date : 2017/12/26 @@ -16,7 +17,7 @@ import javax.servlet.http.HttpServletRequest; */ @Slf4j @Controller -public class CommonController implements ErrorController{ +public class CommonController implements ErrorController { private static final String ERROR_PATH = "/error"; @@ -27,11 +28,11 @@ public class CommonController implements ErrorController{ * @return string */ @GetMapping(value = ERROR_PATH) - public String handleError(HttpServletRequest request){ + public String handleError(HttpServletRequest request) { Integer statusCode = (Integer) request.getAttribute("javax.servlet.error.status_code"); - if(statusCode==404) { + if (statusCode == 404) { return "redirect:/404"; - }else{ + } else { return "redirect:/500"; } } @@ -43,7 +44,7 @@ public class CommonController implements ErrorController{ * @return string */ @GetMapping(value = "/404") - public String fourZeroFour(Model model){ + public String fourZeroFour(Model model) { //设置选项 model.addAttribute("options", HaloConst.OPTIONS); return "common/404"; @@ -56,7 +57,7 @@ public class CommonController implements ErrorController{ * @return string */ @GetMapping(value = "/500") - public String fiveZeroZero(Model model){ + public String fiveZeroZero(Model model) { //设置选项 model.addAttribute("options", HaloConst.OPTIONS); return "common/500"; diff --git a/src/main/java/cc/ryanc/halo/web/controller/core/InstallController.java b/src/main/java/cc/ryanc/halo/web/controller/core/InstallController.java index eb1d76706..76aa9660c 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/core/InstallController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/core/InstallController.java @@ -60,14 +60,14 @@ public class InstallController { * @return 模板路径 */ @GetMapping - public String install(Model model){ - try{ - if(StringUtils.equals("true",HaloConst.OPTIONS.get("is_install"))){ - model.addAttribute("isInstall",true); - }else{ - model.addAttribute("isInstall",false); + public String install(Model model) { + try { + if (StringUtils.equals("true", HaloConst.OPTIONS.get("is_install"))) { + model.addAttribute("isInstall", true); + } else { + model.addAttribute("isInstall", false); } - }catch (Exception e){ + } catch (Exception e) { log.error(e.getMessage()); } return "common/install"; @@ -76,32 +76,32 @@ public class InstallController { /** * 执行安装 * - * @param siteTitle 博客标题 - * @param siteUrl 博客网址 - * @param userName 用户名 + * @param siteTitle 博客标题 + * @param siteUrl 博客网址 + * @param userName 用户名 * @param userDisplayName 用户名显示名 - * @param userEmail 用户邮箱 - * @param userPwd 用户密码 - * @param request request + * @param userEmail 用户邮箱 + * @param userPwd 用户密码 + * @param request request * @return true:安装成功,false:安装失败 */ @PostMapping(value = "/do") @ResponseBody public boolean doInstall(@RequestParam("blogTitle") String blogTitle, - @RequestParam("blogUrl") String blogUrl, - @RequestParam("userName") String userName, - @RequestParam("userDisplayName") String userDisplayName, - @RequestParam("userEmail") String userEmail, - @RequestParam("userPwd") String userPwd, - HttpServletRequest request){ - try{ - if(StringUtils.equals("true",HaloConst.OPTIONS.get("is_install"))){ + @RequestParam("blogUrl") String blogUrl, + @RequestParam("userName") String userName, + @RequestParam("userDisplayName") String userDisplayName, + @RequestParam("userEmail") String userEmail, + @RequestParam("userPwd") String userPwd, + HttpServletRequest request) { + try { + if (StringUtils.equals("true", HaloConst.OPTIONS.get("is_install"))) { return false; } //创建新的用户 - User user= new User(); + User user = new User(); user.setUserName(userName); - if(StringUtils.isBlank(userDisplayName)){ + if (StringUtils.isBlank(userDisplayName)) { userDisplayName = userName; } user.setUserDisplayName(userDisplayName); @@ -146,28 +146,28 @@ public class InstallController { comment.setIsAdmin(0); commentService.saveByComment(comment); - optionsService.saveOption("is_install","true"); + optionsService.saveOption("is_install", "true"); //保存博客标题和博客地址设置 - optionsService.saveOption("blog_title",blogTitle); - optionsService.saveOption("blog_url",blogUrl); + optionsService.saveOption("blog_title", blogTitle); + optionsService.saveOption("blog_url", blogUrl); //设置默认主题 - optionsService.saveOption("theme","anatole"); + optionsService.saveOption("theme", "anatole"); //建立网站时间 - optionsService.saveOption("blog_start",HaloUtil.getStringDate("yyyy-MM-dd")); + optionsService.saveOption("blog_start", HaloUtil.getStringDate("yyyy-MM-dd")); //默认评论系统 - optionsService.saveOption("comment_system","native"); + optionsService.saveOption("comment_system", "native"); //默认不配置邮件系统 - optionsService.saveOption("smtp_email_enable","false"); + optionsService.saveOption("smtp_email_enable", "false"); //新评论,审核通过,回复,默认不通知 - optionsService.saveOption("new_comment_notice","false"); - optionsService.saveOption("comment_pass_notice","false"); - optionsService.saveOption("comment_reply_notice","false"); + optionsService.saveOption("new_comment_notice", "false"); + optionsService.saveOption("comment_pass_notice", "false"); + optionsService.saveOption("comment_reply_notice", "false"); //更新日志 logsService.saveByLogs( @@ -196,9 +196,9 @@ public class InstallController { HaloConst.OPTIONS.clear(); HaloConst.OPTIONS = optionsService.findAllOptions(); - configuration.setSharedVariable("options",optionsService.findAllOptions()); - configuration.setSharedVariable("user",userService.findUser()); - }catch (Exception e){ + configuration.setSharedVariable("options", optionsService.findAllOptions()); + configuration.setSharedVariable("user", userService.findUser()); + } catch (Exception e) { log.error(e.getMessage()); return false; } diff --git a/src/main/java/cc/ryanc/halo/web/controller/front/ArchivesController.java b/src/main/java/cc/ryanc/halo/web/controller/front/ArchivesController.java index 6e1a603b8..1a903ad9d 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/front/ArchivesController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/front/ArchivesController.java @@ -1,7 +1,9 @@ package cc.ryanc.halo.web.controller.front; +import cc.ryanc.halo.model.domain.Comment; import cc.ryanc.halo.model.domain.Post; import cc.ryanc.halo.model.dto.HaloConst; +import cc.ryanc.halo.service.CommentService; import cc.ryanc.halo.service.PostService; import cc.ryanc.halo.web.controller.core.BaseController; import lombok.extern.slf4j.Slf4j; @@ -32,6 +34,9 @@ public class ArchivesController extends BaseController { @Autowired private PostService postService; + @Autowired + private CommentService commentService; + /** * 文章归档 * @@ -39,26 +44,26 @@ public class ArchivesController extends BaseController { * @return 模板路径 */ @GetMapping - public String archives(Model model){ - return this.archives(model,1); + public String archives(Model model) { + return this.archives(model, 1); } /** * 文章归档分页 * * @param model model - * @param page page 当前页码 + * @param page page 当前页码 * @return 模板路径/themes/{theme}/archives */ @GetMapping(value = "page/{page}") public String archives(Model model, - @PathVariable(value = "page") Integer page){ + @PathVariable(value = "page") Integer page) { //所有文章数据,分页,material主题适用 - Sort sort = new Sort(Sort.Direction.DESC,"postDate"); - Pageable pageable = new PageRequest(page-1,5,sort); - Page posts = postService.findPostByStatus(0,HaloConst.POST_TYPE_POST,pageable); - model.addAttribute("posts",posts); + Sort sort = new Sort(Sort.Direction.DESC, "postDate"); + Pageable pageable = new PageRequest(page - 1, 5, sort); + Page posts = postService.findPostByStatus(0, HaloConst.POST_TYPE_POST, pageable); + model.addAttribute("posts", posts); return this.render("archives"); } @@ -66,16 +71,16 @@ public class ArchivesController extends BaseController { * 文章归档,根据年月 * * @param model model - * @param year year 年份 + * @param year year 年份 * @param month month 月份 * @return 模板路径/themes/{theme}/archives */ @GetMapping(value = "{year}/{month}") public String archives(Model model, @PathVariable(value = "year") String year, - @PathVariable(value = "month") String month){ - Page posts = postService.findPostByYearAndMonth(year,month,null); - model.addAttribute("posts",posts); + @PathVariable(value = "month") String month) { + Page posts = postService.findPostByYearAndMonth(year, month, null); + model.addAttribute("posts", posts); return this.render("archives"); } @@ -83,31 +88,32 @@ public class ArchivesController extends BaseController { * 渲染文章详情 * * @param postUrl 文章路径名 - * @param model model + * @param model model * @return 模板路径/themes/{theme}/post */ @GetMapping(value = "{postUrl}") - public String getPost(@PathVariable String postUrl, Model model){ - Post post = postService.findByPostUrl(postUrl,HaloConst.POST_TYPE_POST); + public String getPost(@PathVariable String postUrl, Model model) { + Post post = postService.findByPostUrl(postUrl, HaloConst.POST_TYPE_POST); //获得当前文章的发布日期 Date postDate = post.getPostDate(); - try { - //查询当前文章日期之前的所有文章 - List beforePosts = postService.findByPostDateBefore(postDate); + //查询当前文章日期之前的所有文章 + List beforePosts = postService.findByPostDateBefore(postDate); - //查询当前文章日期之后的所有文章 - List afterPosts = postService.findByPostDateAfter(postDate); + //查询当前文章日期之后的所有文章 + List afterPosts = postService.findByPostDateAfter(postDate); - if(null!=beforePosts&&beforePosts.size()>0){ - model.addAttribute("beforePost",beforePosts.get(beforePosts.size()-1)); - } - if(null!=afterPosts&&afterPosts.size()>0){ - model.addAttribute("afterPost",afterPosts.get(afterPosts.size()-1)); - } - }catch (Exception e){ - log.error("未知错误:{0}",e.getMessage()); + if (null != beforePosts && beforePosts.size() > 0) { + model.addAttribute("beforePost", beforePosts.get(beforePosts.size() - 1)); } - model.addAttribute("post",post); + if (null != afterPosts && afterPosts.size() > 0) { + model.addAttribute("afterPost", afterPosts.get(afterPosts.size() - 1)); + } + Sort sort = new Sort(Sort.Direction.DESC,"commentDate"); + Pageable pageable = new PageRequest(0,999,sort); + Page comments = commentService.findCommentsByPostAndCommentStatus(post,pageable,2); + + model.addAttribute("post", post); + model.addAttribute("comments",comments); return this.render("post"); } diff --git a/src/main/java/cc/ryanc/halo/web/controller/front/CategoriesController.java b/src/main/java/cc/ryanc/halo/web/controller/front/CategoriesController.java index 0a3992739..3dbc6321f 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/front/CategoriesController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/front/CategoriesController.java @@ -21,13 +21,13 @@ public class CategoriesController { /** * 根据分类路径查询文章 * - * @param model model + * @param model model * @param cateUrl cateUrl * @return string */ @GetMapping(value = "{cateUrl}") public String categories(Model model, - @PathVariable("cateUrl") String cateUrl){ + @PathVariable("cateUrl") String cateUrl) { List posts; return null; } diff --git a/src/main/java/cc/ryanc/halo/web/controller/front/CommentsController.java b/src/main/java/cc/ryanc/halo/web/controller/front/CommentsController.java index 9e49d64dc..ad8af4378 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/front/CommentsController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/front/CommentsController.java @@ -48,14 +48,14 @@ public class CommentsController { * @param postId postId 文章编号 * @return List集合 */ - @GetMapping(value = "/getComment/{postId}",produces = MediaType.APPLICATION_JSON_UTF8_VALUE) + @GetMapping(value = "/getComment/{postId}", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @ResponseBody - public List getComment(@PathVariable Long postId){ + public List getComment(@PathVariable Long postId) { Optional post = postService.findByPostId(postId); - Sort sort = new Sort(Sort.Direction.DESC,"commentDate"); - Pageable pageable = new PageRequest(0,10,sort); - List comments = commentService.findCommentsByPostAndCommentStatus(post.get(),pageable,2).getContent(); - if(null==comments){ + Sort sort = new Sort(Sort.Direction.DESC, "commentDate"); + Pageable pageable = new PageRequest(0, 10, sort); + List comments = commentService.findCommentsByPostAndCommentStatus(post.get(), pageable, 2).getContent(); + if (null == comments) { return null; } return comments; @@ -65,7 +65,7 @@ public class CommentsController { * 提交新评论 * * @param comment comment实体 - * @param post post实体 + * @param post post实体 * @param request request * @return true:评论成功,false:评论失败 */ @@ -73,8 +73,8 @@ public class CommentsController { @ResponseBody public boolean newComment(@ModelAttribute("comment") Comment comment, @ModelAttribute("post") Post post, - HttpServletRequest request){ - if(StringUtils.isBlank(comment.getCommentAuthor())){ + HttpServletRequest request) { + if (StringUtils.isBlank(comment.getCommentAuthor())) { comment.setCommentAuthor("小猪佩琪"); } comment.setCommentAuthorEmail(comment.getCommentAuthorEmail().toLowerCase()); @@ -84,18 +84,18 @@ public class CommentsController { comment.setIsAdmin(0); commentService.saveByComment(comment); - if(StringUtils.equals(HaloConst.OPTIONS.get("smtp_email_enable"),"true") && StringUtils.equals(HaloConst.OPTIONS.get("new_comment_notice"),"true")){ + if (StringUtils.equals(HaloConst.OPTIONS.get("smtp_email_enable"), "true") && StringUtils.equals(HaloConst.OPTIONS.get("new_comment_notice"), "true")) { try { //发送邮件到博主 - Map map = new HashMap<>(); - map.put("author",userService.findUser().getUserDisplayName()); - map.put("pageName",postService.findByPostId(post.getPostId()).get().getPostTitle()); - map.put("blogUrl",HaloConst.OPTIONS.get("blog_url")); - map.put("visitor",comment.getCommentAuthor()); - map.put("commentContent",comment.getCommentContent()); - mailService.sendTemplateMail(userService.findUser().getUserEmail(),"有新的评论",map,"common/mail/mail_admin.ftl"); - }catch (Exception e){ - log.error("邮件服务器未配置:{0}",e.getMessage()); + Map map = new HashMap<>(); + map.put("author", userService.findUser().getUserDisplayName()); + map.put("pageName", postService.findByPostId(post.getPostId()).get().getPostTitle()); + map.put("pageUrl", HaloConst.OPTIONS.get("blog_url")+"/archives/"+post.getPostUrl()+"#comment-id-"+comment.getCommentId()); + map.put("visitor", comment.getCommentAuthor()); + map.put("commentContent", comment.getCommentContent()); + mailService.sendTemplateMail(userService.findUser().getUserEmail(), "有新的评论", map, "common/mail/mail_admin.ftl"); + } catch (Exception e) { + log.error("邮件服务器未配置:{0}", e.getMessage()); } } return true; diff --git a/src/main/java/cc/ryanc/halo/web/controller/front/IndexController.java b/src/main/java/cc/ryanc/halo/web/controller/front/IndexController.java index 327db1b19..a17fd5624 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/front/IndexController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/front/IndexController.java @@ -28,7 +28,7 @@ import java.util.List; */ @Slf4j @Controller -@RequestMapping(value = {"/","index"}) +@RequestMapping(value = {"/", "index"}) public class IndexController extends BaseController { @Autowired @@ -42,34 +42,33 @@ public class IndexController extends BaseController { * @return 模板路径 */ @GetMapping - public String index(Model model){ + public String index(Model model) { //调用方法渲染首页 - return this.index(model,1); + return this.index(model, 1); } /** * 首页分页 * * @param model model - * @param page 当前页码 - * @param size 每页数量 + * @param page 当前页码 + * @param size 每页数量 * @return 模板路径/themes/{theme}/index */ @GetMapping(value = "page/{page}") public String index(Model model, - @PathVariable(value = "page") Integer page){ - Sort sort = new Sort(Sort.Direction.DESC,"postDate"); + @PathVariable(value = "page") Integer page) { + Sort sort = new Sort(Sort.Direction.DESC, "postDate"); //默认显示10条 Integer size = 10; //尝试加载设置选项,用于设置显示条数 - if(!StringUtils.isBlank(HaloConst.OPTIONS.get("index_posts"))){ + if (!StringUtils.isBlank(HaloConst.OPTIONS.get("index_posts"))) { size = Integer.parseInt(HaloConst.OPTIONS.get("index_posts")); } //所有文章数据,分页 - Pageable pageable = new PageRequest(page-1,size,sort); - Page posts = postService.findPostByStatus(0,HaloConst.POST_TYPE_POST,pageable); - model.addAttribute("posts",posts); - + Pageable pageable = new PageRequest(page - 1, size, sort); + Page posts = postService.findPostByStatus(0, HaloConst.POST_TYPE_POST, pageable); + model.addAttribute("posts", posts); return this.render("index"); } @@ -81,18 +80,18 @@ public class IndexController extends BaseController { */ @GetMapping(value = "next") @ResponseBody - public List ajaxIndex(@PathParam(value = "page") Integer page){ - Sort sort = new Sort(Sort.Direction.DESC,"postDate"); + public List ajaxIndex(@PathParam(value = "page") Integer page) { + Sort sort = new Sort(Sort.Direction.DESC, "postDate"); //默认显示10条 Integer size = 10; //尝试加载设置选项,用于设置显示条数 - if(!StringUtils.isBlank(HaloConst.OPTIONS.get("index_posts"))){ + if (!StringUtils.isBlank(HaloConst.OPTIONS.get("index_posts"))) { size = Integer.parseInt(HaloConst.OPTIONS.get("index_posts")); } //文章数据,只获取文章,没有分页 - Pageable pageable = new PageRequest(page-1,size,sort); - List posts = postService.findPostByStatus(0,HaloConst.POST_TYPE_POST,pageable).getContent(); + Pageable pageable = new PageRequest(page - 1, size, sort); + List posts = postService.findPostByStatus(0, HaloConst.POST_TYPE_POST, pageable).getContent(); return posts; } } diff --git a/src/main/java/cc/ryanc/halo/web/controller/front/OthersController.java b/src/main/java/cc/ryanc/halo/web/controller/front/OthersController.java index fd9941c6c..40df87c2f 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/front/OthersController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/front/OthersController.java @@ -31,17 +31,17 @@ public class OthersController { * * @return rss */ - @GetMapping(value = {"feed","feed.xml","atom","atom.xml"},produces = "application/xml;charset=UTF-8") + @GetMapping(value = {"feed", "feed.xml", "atom", "atom.xml"}, produces = "application/xml;charset=UTF-8") @ResponseBody - public String feed(){ + public String feed() { String rssPosts = HaloConst.OPTIONS.get("rss_posts"); - if(StringUtils.isBlank(rssPosts)){ + if (StringUtils.isBlank(rssPosts)) { rssPosts = "20"; } //获取文章列表并根据时间排序 - Sort sort = new Sort(Sort.Direction.DESC,"postDate"); - Pageable pageable = new PageRequest(0,Integer.parseInt(rssPosts),sort); - Page postsPage = postService.findPostByStatus(0,HaloConst.POST_TYPE_POST,pageable); + Sort sort = new Sort(Sort.Direction.DESC, "postDate"); + Pageable pageable = new PageRequest(0, Integer.parseInt(rssPosts), sort); + Page postsPage = postService.findPostByStatus(0, HaloConst.POST_TYPE_POST, pageable); List posts = postsPage.getContent(); return postService.buildRss(posts); } @@ -51,13 +51,13 @@ public class OthersController { * * @return sitemap */ - @GetMapping(value = {"sitemap","sitemap.xml"},produces = "application/xml;charset=UTF-8") + @GetMapping(value = {"sitemap", "sitemap.xml"}, produces = "application/xml;charset=UTF-8") @ResponseBody - public String siteMap(){ + public String siteMap() { //获取文章列表并根据时间排序 - Sort sort = new Sort(Sort.Direction.DESC,"postDate"); - Pageable pageable = new PageRequest(0,999,sort); - Page postsPage = postService.findPostByStatus(0,HaloConst.POST_TYPE_POST,pageable); + Sort sort = new Sort(Sort.Direction.DESC, "postDate"); + Pageable pageable = new PageRequest(0, 999, sort); + Page postsPage = postService.findPostByStatus(0, HaloConst.POST_TYPE_POST, pageable); List posts = postsPage.getContent(); return postService.buildSiteMap(posts); } diff --git a/src/main/java/cc/ryanc/halo/web/controller/front/PagesController.java b/src/main/java/cc/ryanc/halo/web/controller/front/PagesController.java index 2372ea8eb..4ab0e5c24 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/front/PagesController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/front/PagesController.java @@ -1,14 +1,20 @@ package cc.ryanc.halo.web.controller.front; +import cc.ryanc.halo.model.domain.Comment; import cc.ryanc.halo.model.domain.Gallery; import cc.ryanc.halo.model.domain.Link; import cc.ryanc.halo.model.domain.Post; import cc.ryanc.halo.model.dto.HaloConst; +import cc.ryanc.halo.service.CommentService; import cc.ryanc.halo.service.GalleryService; import cc.ryanc.halo.service.LinkService; import cc.ryanc.halo.service.PostService; import cc.ryanc.halo.web.controller.core.BaseController; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; @@ -33,15 +39,18 @@ public class PagesController extends BaseController { @Autowired private LinkService linkService; + @Autowired + private CommentService commentService; + /** * 跳转到图库页面 * * @return 模板路径/themes/{theme}/gallery */ @GetMapping(value = "/gallery") - public String gallery(Model model){ + public String gallery(Model model) { List galleries = galleryService.findAllGalleries(); - model.addAttribute("galleries",galleries); + model.addAttribute("galleries", galleries); return this.render("gallery"); } @@ -52,10 +61,10 @@ public class PagesController extends BaseController { * @return 模板路径/themes/{theme}/links */ @GetMapping(value = "/links") - public String links(Model model){ + public String links(Model model) { //所有友情链接 List links = linkService.findAllLinks(); - model.addAttribute("links",links); + model.addAttribute("links", links); return this.render("links"); } @@ -63,13 +72,19 @@ public class PagesController extends BaseController { * 渲染自定义页面 * * @param postUrl 页面路径 - * @param model model + * @param model model * @return 模板路径/themes/{theme}/post */ @GetMapping(value = "/p/{postUrl}") - public String getPage(@PathVariable(value = "postUrl") String postUrl,Model model){ - Post post = postService.findByPostUrl(postUrl,HaloConst.POST_TYPE_PAGE); - model.addAttribute("post",post); + public String getPage(@PathVariable(value = "postUrl") String postUrl, Model model) { + Post post = postService.findByPostUrl(postUrl, HaloConst.POST_TYPE_PAGE); + + Sort sort = new Sort(Sort.Direction.DESC,"commentDate"); + Pageable pageable = new PageRequest(0,999,sort); + Page comments = commentService.findCommentsByPostAndCommentStatus(post,pageable,2); + + model.addAttribute("comments",comments); + model.addAttribute("post", post); return this.render("post"); } } diff --git a/src/main/java/cc/ryanc/halo/web/controller/front/TagsController.java b/src/main/java/cc/ryanc/halo/web/controller/front/TagsController.java index e7fde2210..cd8b16ad9 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/front/TagsController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/front/TagsController.java @@ -27,7 +27,7 @@ import java.util.List; */ @Controller @RequestMapping(value = "/tags") -public class TagsController extends BaseController { +public class TagsController extends BaseController { @Autowired private TagService tagService; @@ -42,10 +42,10 @@ public class TagsController extends BaseController { * @return 模板路径/themes/{theme}/tags */ @GetMapping - public String tags(Model model){ + public String tags(Model model) { //所有标签 List tags = tagService.findAllTags(); - model.addAttribute("tags",tags); + model.addAttribute("tags", tags); return this.render("tags"); } @@ -53,36 +53,37 @@ public class TagsController extends BaseController { * 根据标签路径查询所有文章 * * @param tagUrl 标签路径 - * @param model model + * @param model model * @return string */ @GetMapping(value = "{tagUrl}") public String tags(Model model, - @PathVariable("tagUrl") String tagUrl){ - return this.tags(model,tagUrl,1); + @PathVariable("tagUrl") String tagUrl) { + return this.tags(model, tagUrl, 1); } /** * 根据标签路径查询所有文章 分页 - * @param model model + * + * @param model model * @param tagUrl 标签路径 - * @param page 页码 + * @param page 页码 * @return string */ @GetMapping(value = "{tagUrl}/page/{page}") public String tags(Model model, @PathVariable("tagUrl") String tagUrl, - @PathVariable("page") Integer page){ + @PathVariable("page") Integer page) { Tag tag = tagService.findByTagUrl(tagUrl); - Sort sort = new Sort(Sort.Direction.DESC,"postDate"); + Sort sort = new Sort(Sort.Direction.DESC, "postDate"); Integer size = 10; - if(!StringUtils.isBlank(HaloConst.OPTIONS.get("index_posts"))){ + if (!StringUtils.isBlank(HaloConst.OPTIONS.get("index_posts"))) { size = Integer.parseInt(HaloConst.OPTIONS.get("index_posts")); } - Pageable pageable = new PageRequest(page-1,size,sort); - Page posts = postService.findPostsByTags(tag,pageable); - model.addAttribute("posts",posts); - model.addAttribute("tag",tag); + Pageable pageable = new PageRequest(page - 1, size, sort); + Page posts = postService.findPostsByTags(tag, pageable); + model.addAttribute("posts", posts); + model.addAttribute("tag", tag); return this.render("index"); } } diff --git a/src/main/java/cc/ryanc/halo/web/interceptor/InstallInterceptor.java b/src/main/java/cc/ryanc/halo/web/interceptor/InstallInterceptor.java index 359c721e8..a06372d1d 100644 --- a/src/main/java/cc/ryanc/halo/web/interceptor/InstallInterceptor.java +++ b/src/main/java/cc/ryanc/halo/web/interceptor/InstallInterceptor.java @@ -1,9 +1,7 @@ package cc.ryanc.halo.web.interceptor; import cc.ryanc.halo.model.dto.HaloConst; -import cc.ryanc.halo.service.OptionsService; import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; @@ -20,12 +18,9 @@ import javax.servlet.http.HttpServletResponse; @Component public class InstallInterceptor implements HandlerInterceptor { - @Autowired - private OptionsService optionsService; - @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception { - if(StringUtils.equals("true",HaloConst.OPTIONS.get("is_install"))){ + if (StringUtils.equals("true", HaloConst.OPTIONS.get("is_install"))) { return true; } response.sendRedirect("/install"); @@ -33,8 +28,10 @@ public class InstallInterceptor implements HandlerInterceptor { } @Override - public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception { } + public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception { + } @Override - public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception { } + public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception { + } } diff --git a/src/main/java/cc/ryanc/halo/web/interceptor/LoginInterceptor.java b/src/main/java/cc/ryanc/halo/web/interceptor/LoginInterceptor.java index f30a1e4fb..1b182527d 100755 --- a/src/main/java/cc/ryanc/halo/web/interceptor/LoginInterceptor.java +++ b/src/main/java/cc/ryanc/halo/web/interceptor/LoginInterceptor.java @@ -15,12 +15,12 @@ import javax.servlet.http.HttpServletResponse; * description: 登录拦截器 */ @Component -public class LoginInterceptor implements HandlerInterceptor{ +public class LoginInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { Object obj = request.getSession().getAttribute(HaloConst.USER_SESSION_KEY); //如果user不为空则放行 - if(null!=obj){ + if (null != obj) { return true; } //否则拦截并跳转到登录 @@ -29,8 +29,10 @@ public class LoginInterceptor implements HandlerInterceptor{ } @Override - public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } + public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { + } @Override - public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { } + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { + } } diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index eb022cbbd..57f53c377 100755 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -7,22 +7,28 @@ server: spring: datasource: type: com.alibaba.druid.pool.DruidDataSource + # H2database 配置 - driver-class-name: org.h2.Driver - url: jdbc:h2:file:~/halo/halo - username: admin + #driver-class-name: org.h2.Driver + #url: jdbc:h2:file:~/halo/halo + #username: admin + #password: 123456 + + # MySql配置 + driver-class-name: com.mysql.jdbc.Driver + url: jdbc:mysql://127.0.0.1:3306/halodb?characterEncoding=utf8&useSSL=false + username: root password: 123456 - h2: - console: - settings: - web-allow-others: true - path: /h2-console - enabled: true + #h2: + #console: + #settings: + #web-allow-others: true + #path: /h2-console + #enabled: true jpa: hibernate: ddl-auto: update - show-sql: true - database-platform: org.hibernate.dialect.H2Dialect + show-sql: false freemarker: allow-request-override: false cache: false diff --git a/src/main/resources/static/js/app.js b/src/main/resources/static/js/app.js index 4a1776443..038abda5f 100755 --- a/src/main/resources/static/js/app.js +++ b/src/main/resources/static/js/app.js @@ -33,4 +33,19 @@ function stringEncode(str){ div.textContent=str; } return div.innerHTML; +} + +/** + * 保存设置选项 + */ +function saveOptions(option) { + var param = $('#'+option).serialize(); + $.ajax({ + type: 'post', + url: '/admin/option/save', + data: param, + success: function (result) { + showMsg("保存成功!","success",1000); + } + }); } \ No newline at end of file diff --git a/src/main/resources/templates/admin/admin_comment.ftl b/src/main/resources/templates/admin/admin_comment.ftl index 6a18fdae3..abadcd2f1 100755 --- a/src/main/resources/templates/admin/admin_comment.ftl +++ b/src/main/resources/templates/admin/admin_comment.ftl @@ -58,12 +58,12 @@ <#switch comment.commentStatus> <#case 0> - + <#break > <#case 1> 通过 - + <#break > <#case 2> 还原 diff --git a/src/main/resources/templates/admin/admin_index.ftl b/src/main/resources/templates/admin/admin_index.ftl index 54c6af036..9487a4ea9 100755 --- a/src/main/resources/templates/admin/admin_index.ftl +++ b/src/main/resources/templates/admin/admin_index.ftl @@ -333,6 +333,7 @@ + <#include "module/_footer.ftl"> diff --git a/src/main/resources/templates/admin/admin_option.ftl b/src/main/resources/templates/admin/admin_option.ftl index 19ec26d1b..1fa692297 100755 --- a/src/main/resources/templates/admin/admin_option.ftl +++ b/src/main/resources/templates/admin/admin_option.ftl @@ -76,11 +76,7 @@
- +
@@ -121,14 +117,14 @@
- +
@@ -432,17 +428,17 @@
@@ -457,32 +453,32 @@
-
- -
- -
-
-
- -
- -
-
+ <#--
--> + <#----> + <#--
--> + <#----> + <#--
--> + <#--
--> + <#--
--> + <#----> + <#--
--> + <#----> + <#--
--> + <#--
-->