From 09c6822640012b8089cdc42f752255b3448e3a22 Mon Sep 17 00:00:00 2001 From: ruibaby Date: Sat, 29 Dec 2018 15:34:41 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../halo/config/WebMvcAutoConfiguration.java | 4 +- .../ryanc/halo/listener/StartedListener.java | 8 +- .../halo/model/tag/ArticleTagDirective.java | 2 +- .../halo/model/tag/CommonTagDirective.java | 2 +- .../service/impl/AttachmentServiceImpl.java | 108 ++++++------- .../service/impl/CategoryServiceImpl.java | 4 +- .../halo/service/impl/CommentServiceImpl.java | 4 +- .../halo/service/impl/GalleryServiceImpl.java | 2 +- .../halo/service/impl/LinkServiceImpl.java | 2 +- .../halo/service/impl/LogsServiceImpl.java | 2 +- .../halo/service/impl/MailServiceImpl.java | 4 +- .../halo/service/impl/MenuServiceImpl.java | 2 +- .../halo/service/impl/OptionsServiceImpl.java | 6 +- .../halo/service/impl/PostServiceImpl.java | 24 +-- .../halo/service/impl/TagServiceImpl.java | 8 +- .../halo/service/impl/UserServiceImpl.java | 10 +- .../java/cc/ryanc/halo/task/PostSyncTask.java | 2 +- .../java/cc/ryanc/halo/utils/CommentUtil.java | 4 +- .../java/cc/ryanc/halo/utils/HaloUtils.java | 95 ++++++------ .../cc/ryanc/halo/utils/MarkdownUtils.java | 8 +- .../java/cc/ryanc/halo/utils/Md5Util.java | 38 +++-- .../web/controller/admin/AdminController.java | 60 ++++---- .../admin/AttachmentController.java | 25 +-- .../controller/admin/BackupController.java | 32 ++-- .../controller/admin/CategoryController.java | 2 +- .../controller/admin/CommentController.java | 39 ++--- .../web/controller/admin/MenuController.java | 2 +- .../controller/admin/OptionController.java | 6 +- .../web/controller/admin/PageController.java | 26 ++-- .../web/controller/admin/PostController.java | 40 ++--- .../web/controller/admin/ThemeController.java | 52 ++++--- .../web/controller/admin/UserController.java | 2 +- .../controller/api/ApiArchivesController.java | 4 +- .../controller/api/ApiCategoryController.java | 2 +- .../controller/api/ApiGalleryController.java | 4 +- .../web/controller/api/ApiLinkController.java | 2 +- .../web/controller/api/ApiMenuController.java | 2 +- .../controller/api/ApiOptionController.java | 13 +- .../web/controller/api/ApiPageController.java | 7 +- .../web/controller/api/ApiPostController.java | 18 ++- .../web/controller/api/ApiTagController.java | 4 +- .../web/controller/api/ApiUserController.java | 2 +- .../web/controller/core/BaseController.java | 82 +++++----- .../web/controller/core/CommonController.java | 144 +++++++++--------- .../controller/core/InstallController.java | 16 +- .../front/FrontArchiveController.java | 24 +-- .../front/FrontCategoryController.java | 19 ++- .../front/FrontCommentController.java | 33 ++-- .../front/FrontIndexController.java | 11 +- .../front/FrontOthersController.java | 16 +- .../controller/front/FrontPageController.java | 9 +- .../controller/front/FrontTagController.java | 18 ++- .../halo/web/interceptor/ApiInterceptor.java | 4 +- .../web/interceptor/LocaleInterceptor.java | 4 + .../web/interceptor/LoginInterceptor.java | 2 +- .../templates/admin/admin_page_md_editor.ftl | 2 +- .../templates/admin/admin_post_edit.ftl | 2 +- 57 files changed, 571 insertions(+), 498 deletions(-) diff --git a/src/main/java/cc/ryanc/halo/config/WebMvcAutoConfiguration.java b/src/main/java/cc/ryanc/halo/config/WebMvcAutoConfiguration.java index f7f7ed5ef..621ffe815 100644 --- a/src/main/java/cc/ryanc/halo/config/WebMvcAutoConfiguration.java +++ b/src/main/java/cc/ryanc/halo/config/WebMvcAutoConfiguration.java @@ -120,7 +120,7 @@ public class WebMvcAutoConfiguration implements WebMvcConfigurer { */ @Bean public LocaleResolver localeResolver() { - SessionLocaleResolver slr = new SessionLocaleResolver(); + final SessionLocaleResolver slr = new SessionLocaleResolver(); slr.setDefaultLocale(Locale.CHINA); return slr; } @@ -132,7 +132,7 @@ public class WebMvcAutoConfiguration implements WebMvcConfigurer { */ @Bean public LocaleChangeInterceptor localeChangeInterceptor() { - LocaleChangeInterceptor lci = new LocaleChangeInterceptor(); + final LocaleChangeInterceptor lci = new LocaleChangeInterceptor(); lci.setParamName("lang"); return lci; } diff --git a/src/main/java/cc/ryanc/halo/listener/StartedListener.java b/src/main/java/cc/ryanc/halo/listener/StartedListener.java index e94f34783..646c5ef7f 100644 --- a/src/main/java/cc/ryanc/halo/listener/StartedListener.java +++ b/src/main/java/cc/ryanc/halo/listener/StartedListener.java @@ -56,7 +56,7 @@ public class StartedListener implements ApplicationListener options = optionsService.findAllOptions(); + final Map options = optionsService.findAllOptions(); if (options != null && !options.isEmpty()) { HaloConst.OPTIONS = options; } @@ -81,7 +81,7 @@ public class StartedListener implements ApplicationListener themes = HaloUtils.getThemes(); + final List themes = HaloUtils.getThemes(); if (null != themes) { HaloConst.THEMES = themes; } @@ -91,7 +91,7 @@ public class StartedListener implements ApplicationListener map = new HashMap<>(135); + final Map map = new HashMap<>(135); map.put("@[nico]", "nico.png"); map.put("@[OK]", "OK.png"); map.put("@[what]", "what.png"); 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 2554d315c..d1cb94687 100644 --- a/src/main/java/cc/ryanc/halo/model/tag/ArticleTagDirective.java +++ b/src/main/java/cc/ryanc/halo/model/tag/ArticleTagDirective.java @@ -29,7 +29,7 @@ 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); + final DefaultObjectWrapperBuilder builder = new DefaultObjectWrapperBuilder(Configuration.VERSION_2_3_25); if (map.containsKey(METHOD_KEY)) { String method = map.get(METHOD_KEY).toString(); switch (method) { 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 1cfc643c1..d671d419b 100644 --- a/src/main/java/cc/ryanc/halo/model/tag/CommonTagDirective.java +++ b/src/main/java/cc/ryanc/halo/model/tag/CommonTagDirective.java @@ -39,7 +39,7 @@ 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); + final DefaultObjectWrapperBuilder builder = new DefaultObjectWrapperBuilder(Configuration.VERSION_2_3_25); if (map.containsKey(METHOD_KEY)) { String method = map.get(METHOD_KEY).toString(); switch (method) { 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 10c5a0924..8cb3b0d82 100644 --- a/src/main/java/cc/ryanc/halo/service/impl/AttachmentServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/AttachmentServiceImpl.java @@ -157,17 +157,17 @@ public class AttachmentServiceImpl implements AttachmentService { */ @Override public Map attachUpload(MultipartFile file, HttpServletRequest request) { - Map resultMap = new HashMap<>(6); - String dateString = DateUtil.format(DateUtil.date(), "yyyyMMddHHmmss"); + final Map resultMap = new HashMap<>(6); + final String dateString = DateUtil.format(DateUtil.date(), "yyyyMMddHHmmss"); try { //用户目录 - StrBuilder uploadPath = new StrBuilder(System.getProperties().getProperty("user.home")); + final StrBuilder uploadPath = new StrBuilder(System.getProperties().getProperty("user.home")); uploadPath.append("/halo/"); uploadPath.append("upload/"); //获取当前年月以创建目录,如果没有该目录则创建 uploadPath.append(DateUtil.thisYear()).append("/").append(DateUtil.thisMonth()).append("/"); - File mediaPath = new File(uploadPath.toString()); + final File mediaPath = new File(uploadPath.toString()); if (!mediaPath.exists()) { if (!mediaPath.mkdirs()) { resultMap.put("success", "0"); @@ -176,27 +176,27 @@ public class AttachmentServiceImpl implements AttachmentService { } //不带后缀 - StrBuilder nameWithOutSuffix = new StrBuilder(file.getOriginalFilename().substring(0, file.getOriginalFilename().lastIndexOf('.')).replaceAll(" ", "_").replaceAll(",", "")); + final StrBuilder nameWithOutSuffix = new StrBuilder(file.getOriginalFilename().substring(0, file.getOriginalFilename().lastIndexOf('.')).replaceAll(" ", "_").replaceAll(",", "")); nameWithOutSuffix.append(dateString); nameWithOutSuffix.append(new Random().nextInt(1000)); //文件后缀 - String fileSuffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf('.') + 1); + final String fileSuffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf('.') + 1); //带后缀 - StrBuilder fileName = new StrBuilder(nameWithOutSuffix); + final StrBuilder fileName = new StrBuilder(nameWithOutSuffix); fileName.append("."); fileName.append(fileSuffix); file.transferTo(new File(mediaPath.getAbsoluteFile(), fileName.toString())); //文件原路径 - StrBuilder fullPath = new StrBuilder(mediaPath.getAbsolutePath()); + final StrBuilder fullPath = new StrBuilder(mediaPath.getAbsolutePath()); fullPath.append("/"); fullPath.append(fileName); //压缩文件路径 - StrBuilder fullSmallPath = new StrBuilder(mediaPath.getAbsolutePath()); + final StrBuilder fullSmallPath = new StrBuilder(mediaPath.getAbsolutePath()); fullSmallPath.append("/"); fullSmallPath.append(nameWithOutSuffix); fullSmallPath.append("_small."); @@ -206,7 +206,7 @@ public class AttachmentServiceImpl implements AttachmentService { Thumbnails.of(fullPath.toString()).size(256, 256).keepAspectRatio(false).toFile(fullSmallPath.toString()); //映射路径 - StrBuilder filePath = new StrBuilder("/upload/"); + final StrBuilder filePath = new StrBuilder("/upload/"); filePath.append(DateUtil.thisYear()); filePath.append("/"); filePath.append(DateUtil.thisMonth()); @@ -214,7 +214,7 @@ public class AttachmentServiceImpl implements AttachmentService { filePath.append(fileName); //缩略图映射路径 - StrBuilder fileSmallPath = new StrBuilder("/upload/"); + final StrBuilder fileSmallPath = new StrBuilder("/upload/"); fileSmallPath.append(DateUtil.thisYear()); fileSmallPath.append("/"); fileSmallPath.append(DateUtil.thisMonth()); @@ -223,8 +223,8 @@ public class AttachmentServiceImpl implements AttachmentService { fileSmallPath.append("_small."); fileSmallPath.append(fileSuffix); - String size = HaloUtils.parseSize(new File(fullPath.toString()).length()); - String wh = HaloUtils.getImageWh(new File(fullPath.toString())); + final String size = HaloUtils.parseSize(new File(fullPath.toString()).length()); + final String wh = HaloUtils.getImageWh(new File(fullPath.toString())); resultMap.put("fileName", fileName.toString()); resultMap.put("filePath", filePath.toString()); @@ -248,32 +248,32 @@ public class AttachmentServiceImpl implements AttachmentService { */ @Override public Map attachQiNiuUpload(MultipartFile file, HttpServletRequest request) { - Map resultMap = new HashMap<>(6); + final Map resultMap = new HashMap<>(6); try { - Configuration cfg = new Configuration(Zone.zone0()); - String key = Md5Util.getMD5Checksum(file); - String accessKey = HaloConst.OPTIONS.get("qiniu_access_key"); - String secretKey = HaloConst.OPTIONS.get("qiniu_secret_key"); - String domain = HaloConst.OPTIONS.get("qiniu_domain"); - String bucket = HaloConst.OPTIONS.get("qiniu_bucket"); - String smallUrl = HaloConst.OPTIONS.get("qiniu_small_url"); + final Configuration cfg = new Configuration(Zone.zone0()); + final String key = Md5Util.getMD5Checksum(file); + final String accessKey = HaloConst.OPTIONS.get("qiniu_access_key"); + final String secretKey = HaloConst.OPTIONS.get("qiniu_secret_key"); + final String domain = HaloConst.OPTIONS.get("qiniu_domain"); + final String bucket = HaloConst.OPTIONS.get("qiniu_bucket"); + final String smallUrl = HaloConst.OPTIONS.get("qiniu_small_url"); if (StrUtil.isEmpty(accessKey) || StrUtil.isEmpty(secretKey) || StrUtil.isEmpty(domain) || StrUtil.isEmpty(bucket)) { return resultMap; } - Auth auth = Auth.create(accessKey, secretKey); - StringMap putPolicy = new StringMap(); + final Auth auth = Auth.create(accessKey, secretKey); + final StringMap putPolicy = new StringMap(); putPolicy.put("returnBody", "{\"size\":$(fsize),\"w\":$(imageInfo.width),\"h\":$(imageInfo.height)}"); - String upToken = auth.uploadToken(bucket, null, 3600, putPolicy); - String localTempDir = Paths.get(System.getenv("java.io.tmpdir"), bucket).toString(); + final String upToken = auth.uploadToken(bucket, null, 3600, putPolicy); + final String localTempDir = Paths.get(System.getenv("java.io.tmpdir"), bucket).toString(); QiNiuPutSet putSet = new QiNiuPutSet(); try { - FileRecorder fileRecorder = new FileRecorder(localTempDir); - UploadManager uploadManager = new UploadManager(cfg, fileRecorder); - Response response = uploadManager.put(file.getInputStream(), key, upToken, null, null); + final FileRecorder fileRecorder = new FileRecorder(localTempDir); + final UploadManager uploadManager = new UploadManager(cfg, fileRecorder); + final Response response = uploadManager.put(file.getInputStream(), key, upToken, null, null); //解析上传成功的结果 putSet = new Gson().fromJson(response.bodyString(), QiNiuPutSet.class); } catch (QiniuException e) { - Response r = e.response; + final Response r = e.response; System.err.println(r.toString()); try { System.err.println(r.bodyString()); @@ -285,7 +285,7 @@ public class AttachmentServiceImpl implements AttachmentService { } catch (IOException e) { e.printStackTrace(); } - String filePath = domain.trim() + "/" + key; + final String filePath = domain.trim() + "/" + key; resultMap.put("fileName", file.getOriginalFilename()); resultMap.put("filePath", filePath.trim()); resultMap.put("smallPath", smallUrl == null ? filePath.trim() : (filePath + smallUrl).trim()); @@ -308,31 +308,31 @@ public class AttachmentServiceImpl implements AttachmentService { */ @Override public Map attachUpYunUpload(MultipartFile file, HttpServletRequest request) { - Map resultMap = new HashMap<>(6); + final Map resultMap = new HashMap<>(6); try { - String key = Md5Util.getMD5Checksum(file); - String ossSrc = HaloConst.OPTIONS.get("upyun_oss_src"); - String ossPwd = HaloConst.OPTIONS.get("upyun_oss_pwd"); - String bucket = HaloConst.OPTIONS.get("upyun_oss_bucket"); - String domain = HaloConst.OPTIONS.get("upyun_oss_domain"); - String operator = HaloConst.OPTIONS.get("upyun_oss_operator"); - String smallUrl = HaloConst.OPTIONS.get("upyun_oss_small"); + final String key = Md5Util.getMD5Checksum(file); + final String ossSrc = HaloConst.OPTIONS.get("upyun_oss_src"); + final String ossPwd = HaloConst.OPTIONS.get("upyun_oss_pwd"); + final String bucket = HaloConst.OPTIONS.get("upyun_oss_bucket"); + final String domain = HaloConst.OPTIONS.get("upyun_oss_domain"); + final String operator = HaloConst.OPTIONS.get("upyun_oss_operator"); + final String smallUrl = HaloConst.OPTIONS.get("upyun_oss_small"); if (StrUtil.isEmpty(ossSrc) || StrUtil.isEmpty(ossPwd) || StrUtil.isEmpty(domain) || StrUtil.isEmpty(bucket) || StrUtil.isEmpty(operator)) { return resultMap; } - String fileName = file.getOriginalFilename(); - String fileSuffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf('.')); - UpYun upYun = new UpYun(bucket, operator, ossPwd); + final String fileName = file.getOriginalFilename(); + final String fileSuffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf('.')); + final UpYun upYun = new UpYun(bucket, operator, ossPwd); upYun.setTimeout(60); upYun.setApiDomain(UpYun.ED_AUTO); upYun.setDebug(true); upYun.writeFile(ossSrc + key + fileSuffix, file.getBytes(), true, null); - String filePath = domain.trim() + ossSrc + key + fileSuffix; + final String filePath = domain.trim() + ossSrc + key + fileSuffix; String smallPath = filePath; if (smallUrl != null) { smallPath += smallUrl; } - BufferedImage image = ImageIO.read(file.getInputStream()); + final BufferedImage image = ImageIO.read(file.getInputStream()); if (image != null) { resultMap.put("wh", image.getWidth() + "x" + image.getHeight()); } @@ -358,15 +358,15 @@ public class AttachmentServiceImpl implements AttachmentService { @Override public boolean deleteQiNiuAttachment(String key) { boolean flag = true; - Configuration cfg = new Configuration(Zone.zone0()); - String accessKey = HaloConst.OPTIONS.get("qiniu_access_key"); - String secretKey = HaloConst.OPTIONS.get("qiniu_secret_key"); - String bucket = HaloConst.OPTIONS.get("qiniu_bucket"); + final Configuration cfg = new Configuration(Zone.zone0()); + final String accessKey = HaloConst.OPTIONS.get("qiniu_access_key"); + final String secretKey = HaloConst.OPTIONS.get("qiniu_secret_key"); + final String bucket = HaloConst.OPTIONS.get("qiniu_bucket"); if (StrUtil.isEmpty(accessKey) || StrUtil.isEmpty(secretKey) || StrUtil.isEmpty(bucket)) { return false; } - Auth auth = Auth.create(accessKey, secretKey); - BucketManager bucketManager = new BucketManager(auth, cfg); + final Auth auth = Auth.create(accessKey, secretKey); + final BucketManager bucketManager = new BucketManager(auth, cfg); try { bucketManager.delete(bucket, key); } catch (QiniuException ex) { @@ -386,14 +386,14 @@ public class AttachmentServiceImpl implements AttachmentService { @Override public boolean deleteUpYunAttachment(String fileName) { boolean flag = true; - String ossSrc = HaloConst.OPTIONS.get("upyun_oss_src"); - String ossPwd = HaloConst.OPTIONS.get("upyun_oss_pwd"); - String bucket = HaloConst.OPTIONS.get("upyun_oss_bucket"); - String operator = HaloConst.OPTIONS.get("upyun_oss_operator"); + final String ossSrc = HaloConst.OPTIONS.get("upyun_oss_src"); + final String ossPwd = HaloConst.OPTIONS.get("upyun_oss_pwd"); + final String bucket = HaloConst.OPTIONS.get("upyun_oss_bucket"); + final String operator = HaloConst.OPTIONS.get("upyun_oss_operator"); if (StrUtil.isEmpty(ossSrc) || StrUtil.isEmpty(ossPwd) || StrUtil.isEmpty(bucket) || StrUtil.isEmpty(operator)) { return false; } - UpYun upYun = new UpYun(bucket, operator, ossPwd); + final UpYun upYun = new UpYun(bucket, operator, ossPwd); upYun.setApiDomain(UpYun.ED_AUTO); try { flag = upYun.deleteFile(ossSrc + fileName); 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 3f0496793..ce22e7028 100755 --- a/src/main/java/cc/ryanc/halo/service/impl/CategoryServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/CategoryServiceImpl.java @@ -48,7 +48,7 @@ public class CategoryServiceImpl implements CategoryService { @Override @CacheEvict(value = POSTS_CACHE_NAME, allEntries = true, beforeInvocation = true) public Category remove(Long cateId) { - Optional category = this.findByCateId(cateId); + final Optional category = this.findByCateId(cateId); categoryRepository.delete(category.get()); return category.get(); } @@ -107,7 +107,7 @@ public class CategoryServiceImpl implements CategoryService { if (null == strings) { return null; } - List categories = new ArrayList<>(); + final List categories = new ArrayList<>(); Optional category = null; for (String str : strings) { category = findByCateId(Long.parseLong(str)); 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 c4b496ad8..51121efee 100644 --- a/src/main/java/cc/ryanc/halo/service/impl/CommentServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/CommentServiceImpl.java @@ -53,7 +53,7 @@ public class CommentServiceImpl implements CommentService { @Override @CacheEvict(value = {COMMENTS_CACHE_NAME, POSTS_CACHE_NAME}, allEntries = true, beforeInvocation = true) public Optional remove(Long commentId) { - Optional comment = this.findCommentById(commentId); + final Optional comment = this.findCommentById(commentId); commentRepository.delete(comment.get()); return comment; } @@ -102,7 +102,7 @@ public class CommentServiceImpl implements CommentService { @Override @CacheEvict(value = COMMENTS_CACHE_NAME, allEntries = true, beforeInvocation = true) public Comment updateCommentStatus(Long commentId, Integer status) { - Optional comment = findCommentById(commentId); + final Optional comment = findCommentById(commentId); comment.get().setCommentStatus(status); return commentRepository.save(comment.get()); } 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 6340b85f9..e58625fd4 100644 --- a/src/main/java/cc/ryanc/halo/service/impl/GalleryServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/GalleryServiceImpl.java @@ -50,7 +50,7 @@ public class GalleryServiceImpl implements GalleryService { @Override @CacheEvict(value = GALLERIES_CACHE_NAME, allEntries = true, beforeInvocation = true) public Gallery remove(Long galleryId) { - Optional gallery = this.findByGalleryId(galleryId); + final Optional gallery = this.findByGalleryId(galleryId); galleryRepository.delete(gallery.get()); return gallery.get(); } 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 ba42191f3..8ac598757 100755 --- a/src/main/java/cc/ryanc/halo/service/impl/LinkServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/LinkServiceImpl.java @@ -50,7 +50,7 @@ public class LinkServiceImpl implements LinkService { @Override @CacheEvict(value = LINKS_CACHE_NAME, allEntries = true, beforeInvocation = true) public Link remove(Long linkId) { - Optional link = this.findByLinkId(linkId); + final Optional link = this.findByLinkId(linkId); linkRepository.delete(link.get()); return link.get(); } 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 6bd0c7da9..078296b26 100644 --- a/src/main/java/cc/ryanc/halo/service/impl/LogsServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/LogsServiceImpl.java @@ -36,7 +36,7 @@ public class LogsServiceImpl implements LogsService { */ @Override public void save(String logTitle, String logContent, HttpServletRequest request) { - Logs logs = new Logs(); + final Logs logs = new Logs(); logs.setLogTitle(logTitle); logs.setLogContent(logContent); logs.setLogCreated(new Date()); 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 caed6d170..06768cf9d 100644 --- a/src/main/java/cc/ryanc/halo/service/impl/MailServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/MailServiceImpl.java @@ -70,7 +70,7 @@ public class MailServiceImpl implements MailService { HaloConst.OPTIONS.get(BlogPropertiesEnum.MAIL_SMTP_PASSWORD.getProp())); String text = ""; try { - Template template = freeMarker.getConfiguration().getTemplate(templateName); + final Template template = freeMarker.getConfiguration().getTemplate(templateName); text = FreeMarkerTemplateUtils.processTemplateIntoString(template, content); OhMyEmail.subject(subject) .from(HaloConst.OPTIONS.get(BlogPropertiesEnum.MAIL_FROM_NAME.getProp())) @@ -101,7 +101,7 @@ public class MailServiceImpl implements MailService { File file = new File(attachSrc); String text = ""; try { - Template template = freeMarker.getConfiguration().getTemplate(templateName); + final Template template = freeMarker.getConfiguration().getTemplate(templateName); text = FreeMarkerTemplateUtils.processTemplateIntoString(template, content); OhMyEmail.subject(subject) .from(HaloConst.OPTIONS.get(BlogPropertiesEnum.MAIL_FROM_NAME.getProp())) 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 f0fb2178c..da1d98be5 100644 --- a/src/main/java/cc/ryanc/halo/service/impl/MenuServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/MenuServiceImpl.java @@ -61,7 +61,7 @@ public class MenuServiceImpl implements MenuService { @Override @CacheEvict(value = MENUS_CACHE_NAME, allEntries = true, beforeInvocation = true) public Menu remove(Long menuId) { - Optional menu = this.findByMenuId(menuId); + final Optional menu = this.findByMenuId(menuId); menuRepository.delete(menu.get()); return menu.get(); } 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 993317c5a..b806cb4aa 100755 --- a/src/main/java/cc/ryanc/halo/service/impl/OptionsServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/OptionsServiceImpl.java @@ -88,8 +88,8 @@ public class OptionsServiceImpl implements OptionsService { */ @Override public Map findAllOptions() { - Map options = new HashMap<>(); - List optionsList = optionsRepository.findAll(); + final Map options = new HashMap<>(); + final List optionsList = optionsRepository.findAll(); if (null != optionsList) { optionsList.forEach(option -> options.put(option.getOptionName(), option.getOptionValue())); } @@ -104,7 +104,7 @@ public class OptionsServiceImpl implements OptionsService { */ @Override public String findOneOption(String key) { - Options options = optionsRepository.findOptionsByOptionName(key); + final Options options = optionsRepository.findOptionsByOptionName(key); if (null != options) { return options.getOptionValue(); } 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 5b67c90ed..e4083b4fa 100755 --- a/src/main/java/cc/ryanc/halo/service/impl/PostServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/PostServiceImpl.java @@ -72,7 +72,7 @@ public class PostServiceImpl implements PostService { @Override @CacheEvict(value = {POSTS_CACHE_NAME, COMMENTS_CACHE_NAME}, allEntries = true, beforeInvocation = true) public Post remove(Long postId) { - Optional post = this.findByPostId(postId); + final Optional post = this.findByPostId(postId); postRepository.delete(post.get()); return post.get(); } @@ -87,7 +87,7 @@ public class PostServiceImpl implements PostService { @Override @CacheEvict(value = POSTS_CACHE_NAME, allEntries = true, beforeInvocation = true) public Post updatePostStatus(Long postId, Integer status) { - Optional post = this.findByPostId(postId); + final Optional post = this.findByPostId(postId); post.get().setPostStatus(status); return postRepository.save(post.get()); } @@ -100,7 +100,7 @@ public class PostServiceImpl implements PostService { @Override @CacheEvict(value = POSTS_CACHE_NAME, allEntries = true, beforeInvocation = true) public void updateAllSummary(Integer postSummary) { - List posts = this.findAll(PostTypeEnum.POST_TYPE_POST.getDesc()); + final List posts = this.findAll(PostTypeEnum.POST_TYPE_POST.getDesc()); for (Post post : posts) { String text = StrUtil.cleanBlank(HtmlUtil.cleanHtmlTag(post.getPostContent())); if (text.length() > postSummary) { @@ -251,8 +251,8 @@ public class PostServiceImpl implements PostService { @Override @Cacheable(value = POSTS_CACHE_NAME, key = "'archives_year_month'") public List findPostGroupByYearAndMonth() { - List objects = postRepository.findPostGroupByYearAndMonth(); - List archives = new ArrayList<>(); + final List objects = postRepository.findPostGroupByYearAndMonth(); + final List archives = new ArrayList<>(); Archive archive = null; for (Object[] obj : objects) { archive = new Archive(); @@ -273,8 +273,8 @@ public class PostServiceImpl implements PostService { @Override @Cacheable(value = POSTS_CACHE_NAME, key = "'archives_year'") public List findPostGroupByYear() { - List objects = postRepository.findPostGroupByYear(); - List archives = new ArrayList<>(); + final List objects = postRepository.findPostGroupByYear(); + final List archives = new ArrayList<>(); Archive archive = null; for (Object[] obj : objects) { archive = new Archive(); @@ -385,15 +385,15 @@ public class PostServiceImpl implements PostService { @CachePut(value = POSTS_CACHE_NAME, key = "'posts_related_'+#post.getPostId()") public List relatedPosts(Post post) { //获取当前文章的所有标签 - List tags = post.getTags(); - List tempPosts = new ArrayList<>(); + final List tags = post.getTags(); + final List tempPosts = new ArrayList<>(); for (Tag tag : tags) { tempPosts.addAll(postRepository.findPostsByTags(tag)); } //去掉当前的文章 tempPosts.remove(post); //去掉重复的文章 - List allPosts = new ArrayList<>(); + final List allPosts = new ArrayList<>(); for (int i = 0; i < tempPosts.size(); i++) { if (!allPosts.contains(tempPosts.get(i))) { allPosts.add(tempPosts.get(i)); @@ -475,10 +475,10 @@ public class PostServiceImpl implements PostService { */ @Override public Post buildCategoriesAndTags(Post post, List cateList, String tagList) { - List categories = categoryService.strListToCateList(cateList); + final List categories = categoryService.strListToCateList(cateList); post.setCategories(categories); if (StrUtil.isNotEmpty(tagList)) { - List tags = tagService.strListToTagList(StrUtil.trim(tagList)); + final List tags = tagService.strListToTagList(StrUtil.trim(tagList)); post.setTags(tags); } return post; 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 2fef59252..711beb20c 100644 --- a/src/main/java/cc/ryanc/halo/service/impl/TagServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/TagServiceImpl.java @@ -48,7 +48,7 @@ public class TagServiceImpl implements TagService { @Override @CacheEvict(value = POSTS_CACHE_NAME, allEntries = true, beforeInvocation = true) public Tag remove(Long tagId) { - Optional tag = findByTagId(tagId); + final Optional tag = findByTagId(tagId); tagRepository.delete(tag.get()); return tag.get(); } @@ -104,10 +104,10 @@ public class TagServiceImpl implements TagService { */ @Override public List strListToTagList(String tagList) { - String[] tags = tagList.split(","); - List tagsList = new ArrayList<>(); + final String[] tags = tagList.split(","); + final List tagsList = new ArrayList<>(); for (String tag : tags) { - Tag t = findTagByTagName(tag); + final Tag t = findTagByTagName(tag); Tag nt = null; if (null != t) { tagsList.add(t); 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 4147424fc..80cc9a091 100755 --- a/src/main/java/cc/ryanc/halo/service/impl/UserServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/UserServiceImpl.java @@ -65,7 +65,7 @@ public class UserServiceImpl implements UserService { */ @Override public User findUser() { - List users = userRepository.findAll(); + final List users = userRepository.findAll(); if (users != null && users.size() > 0) { return users.get(0); } else { @@ -92,7 +92,7 @@ public class UserServiceImpl implements UserService { */ @Override public void updateUserLoginEnable(String enable) { - User user = this.findUser(); + final User user = this.findUser(); user.setLoginEnable(enable); userRepository.save(user); } @@ -105,7 +105,7 @@ public class UserServiceImpl implements UserService { */ @Override public User updateUserLoginLast(Date lastDate) { - User user = this.findUser(); + final User user = this.findUser(); user.setLoginLast(lastDate); userRepository.save(user); return user; @@ -118,7 +118,7 @@ public class UserServiceImpl implements UserService { */ @Override public Integer updateUserLoginError() { - User user = this.findUser(); + final User user = this.findUser(); user.setLoginError((user.getLoginError() == null ? 0 : user.getLoginError()) + 1); userRepository.save(user); return user.getLoginError(); @@ -131,7 +131,7 @@ public class UserServiceImpl implements UserService { */ @Override public User updateUserNormal() { - User user = this.findUser(); + final User user = this.findUser(); user.setLoginEnable(TrueFalseEnum.TRUE.getDesc()); user.setLoginError(0); user.setLoginLast(new Date()); diff --git a/src/main/java/cc/ryanc/halo/task/PostSyncTask.java b/src/main/java/cc/ryanc/halo/task/PostSyncTask.java index d7ef74d56..bb01797eb 100644 --- a/src/main/java/cc/ryanc/halo/task/PostSyncTask.java +++ b/src/main/java/cc/ryanc/halo/task/PostSyncTask.java @@ -17,7 +17,7 @@ public class PostSyncTask { * 将缓存的图文浏览数写入数据库 */ public void postSync() { - PostService postService = SpringUtil.getBean(PostService.class); + final PostService postService = SpringUtil.getBean(PostService.class); Post post = null; int count = 0; for (Long key : HaloConst.POSTS_VIEWS.keySet()) { diff --git a/src/main/java/cc/ryanc/halo/utils/CommentUtil.java b/src/main/java/cc/ryanc/halo/utils/CommentUtil.java index aabbebcb1..bc4d99917 100644 --- a/src/main/java/cc/ryanc/halo/utils/CommentUtil.java +++ b/src/main/java/cc/ryanc/halo/utils/CommentUtil.java @@ -29,7 +29,7 @@ public class CommentUtil { return Collections.emptyList(); } - List commentsResult = new ArrayList<>(); + final List commentsResult = new ArrayList<>(); for (Comment comment : commentsRoot) { if (comment.getCommentParent() == 0) { @@ -59,7 +59,7 @@ public class CommentUtil { return null; } - List commentsChild = new ArrayList<>(); + final List commentsChild = new ArrayList<>(); for (Comment comment : commentsRoot) { if (comment.getCommentParent() != 0) { if (comment.getCommentParent().equals(id)) { diff --git a/src/main/java/cc/ryanc/halo/utils/HaloUtils.java b/src/main/java/cc/ryanc/halo/utils/HaloUtils.java index 6c461657e..d11273f71 100755 --- a/src/main/java/cc/ryanc/halo/utils/HaloUtils.java +++ b/src/main/java/cc/ryanc/halo/utils/HaloUtils.java @@ -48,15 +48,16 @@ public class HaloUtils { * 获取备份文件信息 * * @param dir dir + * * @return List */ public static List getBackUps(String dir) { - StrBuilder srcPathStr = new StrBuilder(System.getProperties().getProperty("user.home")); + final StrBuilder srcPathStr = new StrBuilder(System.getProperties().getProperty("user.home")); srcPathStr.append("/halo/backup/"); srcPathStr.append(dir); - File srcPath = new File(srcPathStr.toString()); - File[] files = srcPath.listFiles(); - List backupDtos = new ArrayList<>(); + final File srcPath = new File(srcPathStr.toString()); + final File[] files = srcPath.listFiles(); + final List backupDtos = new ArrayList<>(); BackupDto backupDto = null; // 遍历文件 if (null != files) { @@ -82,25 +83,26 @@ public class HaloUtils { * 转换文件大小 * * @param size size + * * @return String */ public static String parseSize(long size) { if (size < CommonParamsEnum.BYTE.getValue()) { - return String.valueOf(size) + "B"; + return size + "B"; } else { size = size / 1024; } if (size < CommonParamsEnum.BYTE.getValue()) { - return String.valueOf(size) + "KB"; + return size + "KB"; } else { size = size / 1024; } if (size < CommonParamsEnum.BYTE.getValue()) { size = size * 100; - return String.valueOf((size / 100)) + "." + String.valueOf((size % 100)) + "MB"; + return size / 100 + "." + size % 100 + "MB"; } else { size = size * 100 / 1024; - return String.valueOf((size / 100)) + "." + String.valueOf((size % 100)) + "GB"; + return size / 100 + "." + size % 100 + "GB"; } } @@ -108,21 +110,21 @@ public class HaloUtils { * 获取文件创建时间 * * @param srcPath 文件绝对路径 + * * @return 时间 */ public static Date getCreateTime(String srcPath) { - Path path = Paths.get(srcPath); - BasicFileAttributeView basicview = Files.getFileAttributeView(path, BasicFileAttributeView.class, - LinkOption.NOFOLLOW_LINKS); + final Path path = Paths.get(srcPath); + final BasicFileAttributeView basicview = Files.getFileAttributeView(path, BasicFileAttributeView.class, LinkOption.NOFOLLOW_LINKS); BasicFileAttributes attr; try { attr = basicview.readAttributes(); - Date createDate = new Date(attr.creationTime().toMillis()); + final Date createDate = new Date(attr.creationTime().toMillis()); return createDate; } catch (Exception e) { e.printStackTrace(); } - Calendar cal = Calendar.getInstance(); + final Calendar cal = Calendar.getInstance(); cal.set(1970, 0, 1, 0, 0, 0); return cal.getTime(); } @@ -131,11 +133,12 @@ public class HaloUtils { * 获取文件长和宽 * * @param file file + * * @return String */ public static String getImageWh(File file) { try { - BufferedImage image = ImageIO.read(new FileInputStream(file)); + final BufferedImage image = ImageIO.read(new FileInputStream(file)); return image.getWidth() + "x" + image.getHeight(); } catch (Exception e) { e.printStackTrace(); @@ -149,13 +152,13 @@ public class HaloUtils { * @return List */ public static List getThemes() { - List themes = new ArrayList<>(); + final List themes = new ArrayList<>(); try { // 获取项目根路径 - File basePath = new File(ResourceUtils.getURL("classpath:").getPath()); + final File basePath = new File(ResourceUtils.getURL("classpath:").getPath()); // 获取主题路径 - File themesPath = new File(basePath.getAbsolutePath(), "templates/themes"); - File[] files = themesPath.listFiles(); + final File themesPath = new File(basePath.getAbsolutePath(), "templates/themes"); + final File[] files = themesPath.listFiles(); if (null != files) { Theme theme = null; for (File file : files) { @@ -192,18 +195,19 @@ public class HaloUtils { * 获取主题下的模板文件名 * * @param theme theme + * * @return List */ public static List getTplName(String theme) { - List tpls = new ArrayList<>(); + final List tpls = new ArrayList<>(); try { // 获取项目根路径 - File basePath = new File(ResourceUtils.getURL("classpath:").getPath()); + final File basePath = new File(ResourceUtils.getURL("classpath:").getPath()); // 获取主题路径 - File themesPath = new File(basePath.getAbsolutePath(), "templates/themes/" + theme); - File modulePath = new File(themesPath.getAbsolutePath(), "module"); - File[] baseFiles = themesPath.listFiles(); - File[] moduleFiles = modulePath.listFiles(); + final File themesPath = new File(basePath.getAbsolutePath(), "templates/themes/" + theme); + final File modulePath = new File(themesPath.getAbsolutePath(), "module"); + final File[] baseFiles = themesPath.listFiles(); + final File[] moduleFiles = modulePath.listFiles(); if (null != moduleFiles) { for (File file : moduleFiles) { if (file.isFile() && file.getName().endsWith(".ftl")) { @@ -230,12 +234,12 @@ public class HaloUtils { * @return List */ public static List getCustomTpl(String theme) { - List tpls = new ArrayList<>(); + final List tpls = new ArrayList<>(); try { - File basePath = new File(ResourceUtils.getURL("classpath:").getPath()); + final File basePath = new File(ResourceUtils.getURL("classpath:").getPath()); // 获取主题路径 - File themePath = new File(basePath.getAbsolutePath(), "templates/themes/" + theme); - File[] themeFiles = themePath.listFiles(); + final File themePath = new File(basePath.getAbsolutePath(), "templates/themes/" + theme); + final File[] themeFiles = themePath.listFiles(); if (null != themeFiles && themeFiles.length > 0) { for (File file : themeFiles) { String[] split = StrUtil.removeSuffix(file.getName(), ".ftl").split("_"); @@ -261,7 +265,7 @@ public class HaloUtils { FileWriter fileWriter = null; BufferedWriter bufferedWriter = null; try { - File file = new File(filePath); + final File file = new File(filePath); if (!file.exists()) { file.mkdirs(); } @@ -284,13 +288,15 @@ public class HaloUtils { * 生成rss * * @param posts posts + * * @return String + * * @throws FeedException FeedException */ public static String getRss(List posts) throws FeedException { Assert.notEmpty(posts, "posts must not be empty"); - Channel channel = new Channel("rss_2.0"); + final Channel channel = new Channel("rss_2.0"); if (null == HaloConst.OPTIONS.get(BlogPropertiesEnum.BLOG_TITLE.getProp())) { channel.setTitle(""); } else { @@ -307,13 +313,13 @@ public class HaloUtils { channel.setDescription(HaloConst.OPTIONS.get(BlogPropertiesEnum.SEO_DESC.getProp())); } channel.setLanguage("zh-CN"); - List items = new ArrayList<>(); + final List items = new ArrayList<>(); for (Post post : posts) { - Item item = new Item(); + final Item item = new Item(); item.setTitle(post.getPostTitle()); - Content content = new Content(); + final Content content = new Content(); String value = post.getPostContent(); - char[] xmlChar = value.toCharArray(); + final char[] xmlChar = value.toCharArray(); for (int i = 0; i < xmlChar.length; ++i) { if (xmlChar[i] > 0xFFFD) { xmlChar[i] = ' '; @@ -324,13 +330,12 @@ public class HaloUtils { value = new String(xmlChar); content.setValue(value); item.setContent(content); - item.setLink( - HaloConst.OPTIONS.get(BlogPropertiesEnum.BLOG_URL.getProp()) + "/archives/" + post.getPostUrl()); + item.setLink(HaloConst.OPTIONS.get(BlogPropertiesEnum.BLOG_URL.getProp()) + "/archives/" + post.getPostUrl()); item.setPubDate(post.getPostDate()); items.add(item); } channel.setItems(items); - WireFeedOutput out = new WireFeedOutput(); + final WireFeedOutput out = new WireFeedOutput(); return out.outputString(channel); } @@ -338,13 +343,14 @@ public class HaloUtils { * 获取sitemap * * @param posts posts + * * @return String */ public static String getSiteMap(List posts) { Assert.notEmpty(posts, "post mut not be empty"); - StrBuilder head = new StrBuilder("\n"); - StrBuilder urlBody = new StrBuilder(); - String urlPath = HaloConst.OPTIONS.get(BlogPropertiesEnum.BLOG_URL.getProp()) + "/archives/"; + final StrBuilder head = new StrBuilder("\n"); + final StrBuilder urlBody = new StrBuilder(); + final String urlPath = HaloConst.OPTIONS.get(BlogPropertiesEnum.BLOG_URL.getProp()) + "/archives/"; for (Post post : posts) { urlBody.append(""); urlBody.append(urlPath); @@ -364,7 +370,7 @@ public class HaloUtils { * @param password password */ public static void configMail(String smtpHost, String userName, String password) { - Properties properties = OhMyEmail.defaultConfig(false); + final Properties properties = OhMyEmail.defaultConfig(false); properties.setProperty("mail.smtp.host", smtpHost); OhMyEmail.config(properties, userName, password); } @@ -375,6 +381,7 @@ public class HaloUtils { * @param blogUrl 博客地址 * @param token 百度推送token * @param urls 文章路径 + * * @return String */ public static String baiduPost(String blogUrl, String token, String urls) { @@ -382,17 +389,17 @@ public class HaloUtils { Assert.hasText(token, "token must not be blank"); Assert.hasText(urls, "urls must not be blank"); - StrBuilder url = new StrBuilder("http://data.zz.baidu.com/urls?site="); + final StrBuilder url = new StrBuilder("http://data.zz.baidu.com/urls?site="); url.append(blogUrl); url.append("&token="); url.append(token); - StrBuilder result = new StrBuilder(); + final StrBuilder result = new StrBuilder(); PrintWriter out = null; BufferedReader in = null; try { // 建立URL之间的连接 - URLConnection conn = new URL(url.toString()).openConnection(); + final URLConnection conn = new URL(url.toString()).openConnection(); // 设置通用的请求属性 conn.setRequestProperty("Host", "data.zz.baidu.com"); conn.setRequestProperty("User-Agent", "curl/7.12.1"); diff --git a/src/main/java/cc/ryanc/halo/utils/MarkdownUtils.java b/src/main/java/cc/ryanc/halo/utils/MarkdownUtils.java index d9bfb73a9..96e149dd4 100644 --- a/src/main/java/cc/ryanc/halo/utils/MarkdownUtils.java +++ b/src/main/java/cc/ryanc/halo/utils/MarkdownUtils.java @@ -43,10 +43,11 @@ public class MarkdownUtils { * 渲染Markdown * * @param content content + * * @return String */ public static String renderMarkdown(String content) { - Node document = PARSER.parse(content); + final Node document = PARSER.parse(content); return RENDERER.render(document); } @@ -54,11 +55,12 @@ public class MarkdownUtils { * 获取元数据 * * @param content content + * * @return Map */ public static Map> getFrontMatter(String content) { - YamlFrontMatterVisitor visitor = new YamlFrontMatterVisitor(); - Node document = PARSER.parse(content); + final YamlFrontMatterVisitor visitor = new YamlFrontMatterVisitor(); + final Node document = PARSER.parse(content); document.accept(visitor); return visitor.getData(); } diff --git a/src/main/java/cc/ryanc/halo/utils/Md5Util.java b/src/main/java/cc/ryanc/halo/utils/Md5Util.java index f1c5fd31d..75b36be9b 100644 --- a/src/main/java/cc/ryanc/halo/utils/Md5Util.java +++ b/src/main/java/cc/ryanc/halo/utils/Md5Util.java @@ -1,5 +1,6 @@ package cc.ryanc.halo.utils; +import cn.hutool.core.text.StrBuilder; import org.springframework.web.multipart.MultipartFile; import java.io.InputStream; @@ -17,15 +18,18 @@ public class Md5Util { /** * 计算文件MD5编码 - * @param file - * @return - * @throws Exception + * + * @param file file + * + * @return byte + * + * @throws Exception Exception */ - public static byte[] createChecksum(MultipartFile file) throws Exception { - InputStream fis = file.getInputStream(); + private static byte[] createChecksum(MultipartFile file) throws Exception { + final InputStream fis = file.getInputStream(); - byte[] buffer = new byte[1024]; - MessageDigest complete = MessageDigest.getInstance("MD5"); + final byte[] buffer = new byte[1024]; + final MessageDigest complete = MessageDigest.getInstance("MD5"); int numRead; do { @@ -41,18 +45,20 @@ public class Md5Util { /** * 生成文件hash值 - * @param file - * @return - * @throws Exception + * + * @param file file + * + * @return String + * + * @throws Exception Exception */ public static String getMD5Checksum(MultipartFile file) throws Exception { - byte[] b = createChecksum(file); - String result = ""; + final byte[] b = createChecksum(file); + StrBuilder result = new StrBuilder(); - for (int i=0; i < b.length; i++) { - result += Integer.toString( ( b[i] & 0xff ) + 0x100, 16).substring( 1 ); + for (int i = 0; i < b.length; i++) { + result.append(Integer.toString((b[i] & 0xff) + 0x100, 16).substring(1)); } - return result; + return result.toString(); } - } 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 48daad117..030b24714 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 @@ -78,38 +78,39 @@ public class AdminController extends BaseController { * * @param model model * @param session session + * * @return 模板路径admin/admin_index */ @GetMapping(value = {"", "/index"}) public String index(Model model) { //查询评论的条数 - Long commentCount = commentService.getCount(); + final Long commentCount = commentService.getCount(); model.addAttribute("commentCount", commentCount); //查询最新的文章 - List postsLatest = postService.findPostLatest(); + final List postsLatest = postService.findPostLatest(); model.addAttribute("postTopFive", postsLatest); //查询最新的日志 - List logsLatest = logsService.findLogsLatest(); + final List logsLatest = logsService.findLogsLatest(); model.addAttribute("logs", logsLatest); //查询最新的评论 - List comments = commentService.findCommentsLatest(); + final List comments = commentService.findCommentsLatest(); model.addAttribute("comments", comments); //附件数量 model.addAttribute("mediaCount", attachmentService.getCount()); //文章阅读总数 - Long postViewsSum = postService.getPostViews(); + final Long postViewsSum = postService.getPostViews(); model.addAttribute("postViewsSum", postViewsSum); //成立天数 - Date blogStart = DateUtil.parse(HaloConst.OPTIONS.get(BlogPropertiesEnum.BLOG_START.getProp())); - long hadDays = DateUtil.between(blogStart, DateUtil.date(), DateUnit.DAY); - model.addAttribute("hadDays",hadDays); + final Date blogStart = DateUtil.parse(HaloConst.OPTIONS.get(BlogPropertiesEnum.BLOG_START.getProp())); + final long hadDays = DateUtil.between(blogStart, DateUtil.date(), DateUnit.DAY); + model.addAttribute("hadDays", hadDays); return "admin/admin_index"; } @@ -117,11 +118,12 @@ public class AdminController extends BaseController { * 处理跳转到登录页的请求 * * @param session session + * * @return 模板路径admin/admin_login */ @GetMapping(value = "/login") public String login(HttpSession session) { - User user = (User) session.getAttribute(HaloConst.USER_SESSION_KEY); + final User user = (User) session.getAttribute(HaloConst.USER_SESSION_KEY); //如果session存在,跳转到后台首页 if (null != user) { return "redirect:/admin"; @@ -135,6 +137,7 @@ public class AdminController extends BaseController { * @param loginName 登录名:邮箱/用户名 * @param loginPwd loginPwd 密码 * @param session session session + * * @return JsonResult JsonResult */ @PostMapping(value = "/getLogin") @@ -143,13 +146,13 @@ public class AdminController extends BaseController { @ModelAttribute("loginPwd") String loginPwd, HttpSession session) { //已注册账号,单用户,只有一个 - User aUser = userService.findUser(); + final User aUser = userService.findUser(); //首先判断是否已经被禁用已经是否已经过了10分钟 Date loginLast = DateUtil.date(); if (null != aUser.getLoginLast()) { loginLast = aUser.getLoginLast(); } - Long between = DateUtil.between(loginLast, DateUtil.date(), DateUnit.MINUTE); + final Long between = DateUtil.between(loginLast, DateUtil.date(), DateUnit.MINUTE); if (StrUtil.equals(aUser.getLoginEnable(), TrueFalseEnum.FALSE.getDesc()) && (between < CommonParamsEnum.TEN.getValue())) { return new JsonResult(ResultCodeEnum.FAIL.getCode(), localeMessageUtil.getMessage("code.admin.login.disabled")); } @@ -171,13 +174,13 @@ public class AdminController extends BaseController { return new JsonResult(ResultCodeEnum.SUCCESS.getCode(), localeMessageUtil.getMessage("code.admin.login.success")); } else { //更新失败次数 - Integer errorCount = userService.updateUserLoginError(); + final Integer errorCount = userService.updateUserLoginError(); //超过五次禁用账户 if (errorCount >= CommonParamsEnum.FIVE.getValue()) { userService.updateUserLoginEnable(TrueFalseEnum.FALSE.getDesc()); } logsService.save(LogsRecord.LOGIN, LogsRecord.LOGIN_ERROR + "[" + HtmlUtil.escape(loginName) + "," + HtmlUtil.escape(loginPwd) + "]", request); - Object[] args = {(5 - errorCount)}; + final Object[] args = {(5 - errorCount)}; return new JsonResult(ResultCodeEnum.FAIL.getCode(), localeMessageUtil.getMessage("code.admin.login.failed", args)); } } @@ -186,11 +189,12 @@ public class AdminController extends BaseController { * 退出登录 销毁session * * @param session session + * * @return 重定向到/admin/login */ @GetMapping(value = "/logOut") public String logOut(HttpSession session) { - User user = (User) session.getAttribute(HaloConst.USER_SESSION_KEY); + final User user = (User) session.getAttribute(HaloConst.USER_SESSION_KEY); session.removeAttribute(HaloConst.USER_SESSION_KEY); logsService.save(LogsRecord.LOGOUT, user.getUserName(), request); log.info("User {} has logged out", user.getUserName()); @@ -203,15 +207,16 @@ public class AdminController extends BaseController { * @param model model model * @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 = PageRequest.of(page, size, sort); - Page logs = logsService.findAll(pageable); + final Sort sort = new Sort(Sort.Direction.DESC, "logId"); + final Pageable pageable = PageRequest.of(page, size, sort); + final Page logs = logsService.findAll(pageable); model.addAttribute("logs", logs); return "admin/widget/_logs-all"; } @@ -249,7 +254,7 @@ public class AdminController extends BaseController { @GetMapping(value = "/getToken") @ResponseBody public JsonResult getToken() { - String token = (System.currentTimeMillis() + new Random().nextInt(999999999)) + ""; + final String token = (System.currentTimeMillis() + new Random().nextInt(999999999)) + ""; return new JsonResult(ResultCodeEnum.SUCCESS.getCode(), ResponseStatusEnum.SUCCESS.getMsg(), SecureUtil.md5(token)); } @@ -279,6 +284,7 @@ public class AdminController extends BaseController { * * @param file file * @param request request + * * @return JsonResult */ @PostMapping(value = "/tools/markdownImport") @@ -286,14 +292,14 @@ public class AdminController extends BaseController { public JsonResult markdownImport(@RequestParam("file") MultipartFile file, HttpServletRequest request, HttpSession session) throws IOException { - User user = (User) session.getAttribute(HaloConst.USER_SESSION_KEY); - String markdown = IoUtil.read(file.getInputStream(), "UTF-8"); - String content = MarkdownUtils.renderMarkdown(markdown); - Map> frontMatters = MarkdownUtils.getFrontMatter(markdown); - Post post = new Post(); + final User user = (User) session.getAttribute(HaloConst.USER_SESSION_KEY); + final String markdown = IoUtil.read(file.getInputStream(), "UTF-8"); + final String content = MarkdownUtils.renderMarkdown(markdown); + final Map> frontMatters = MarkdownUtils.getFrontMatter(markdown); + final Post post = new Post(); List elementValue = null; - List tags = new ArrayList<>(); - List categories = new ArrayList<>(); + final List tags = new ArrayList<>(); + final List categories = new ArrayList<>(); Tag tag = null; Category category = null; if (frontMatters.size() > 0) { @@ -345,9 +351,9 @@ public class AdminController extends BaseController { if (StrUtil.isNotEmpty(HaloConst.OPTIONS.get(BlogPropertiesEnum.POST_SUMMARY.getProp()))) { postSummary = Integer.parseInt(HaloConst.OPTIONS.get(BlogPropertiesEnum.POST_SUMMARY.getProp())); } - String summaryText = StrUtil.cleanBlank(HtmlUtil.cleanHtmlTag(post.getPostContent())); + final String summaryText = StrUtil.cleanBlank(HtmlUtil.cleanHtmlTag(post.getPostContent())); if (summaryText.length() > postSummary) { - String summary = summaryText.substring(0, postSummary); + final String summary = summaryText.substring(0, postSummary); post.setPostSummary(summary); } else { post.setPostSummary(summaryText); 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 cd9d06973..e41d2f94d 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 @@ -55,15 +55,16 @@ public class AttachmentController { * 复印件列表 * * @param model model + * * @return 模板路径admin/admin_attachment */ @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 = PageRequest.of(page, size, sort); - Page attachments = attachmentService.findAll(pageable); + final Sort sort = new Sort(Sort.Direction.DESC, "attachId"); + final Pageable pageable = PageRequest.of(page, size, sort); + final Page attachments = attachmentService.findAll(pageable); model.addAttribute("attachments", attachments); return "admin/admin_attachment"; } @@ -73,6 +74,7 @@ public class AttachmentController { * * @param model model * @param page page 当前页码 + * * @return 模板路径admin/widget/_attachment-select */ @GetMapping(value = "/select") @@ -80,9 +82,9 @@ public class AttachmentController { @RequestParam(value = "page", defaultValue = "0") Integer page, @RequestParam(value = "id", defaultValue = "none") String id, @RequestParam(value = "type", defaultValue = "normal") String type) { - Sort sort = new Sort(Sort.Direction.DESC, "attachId"); - Pageable pageable = PageRequest.of(page, 18, sort); - Page attachments = attachmentService.findAll(pageable); + final Sort sort = new Sort(Sort.Direction.DESC, "attachId"); + final Pageable pageable = PageRequest.of(page, 18, sort); + final Page attachments = attachmentService.findAll(pageable); model.addAttribute("attachments", attachments); model.addAttribute("id", id); if (StrUtil.equals(type, PostTypeEnum.POST_TYPE_POST.getDesc())) { @@ -107,16 +109,17 @@ public class AttachmentController { * * @param file file * @param request request + * * @return Map */ @PostMapping(value = "/upload", produces = {"application/json;charset=UTF-8"}) @ResponseBody public Map upload(@RequestParam("file") MultipartFile file, HttpServletRequest request) { - Map result = new HashMap<>(3); + final Map result = new HashMap<>(3); if (!file.isEmpty()) { try { - Map resultMap = attachmentService.upload(file, request); + final Map resultMap = attachmentService.upload(file, request); if (resultMap == null || resultMap.isEmpty()) { log.error("File upload failed"); result.put("success", ResultCodeEnum.FAIL.getCode()); @@ -157,12 +160,13 @@ public class AttachmentController { * * @param model model * @param attachId 附件编号 + * * @return 模板路径admin/widget/_attachment-detail */ @GetMapping(value = "/attachment") public String attachmentDetail(Model model, @RequestParam("attachId") Long attachId) { - Optional attachment = attachmentService.findByAttachId(attachId); - model.addAttribute("attachment", attachment.get()); + final Optional attachment = attachmentService.findByAttachId(attachId); + model.addAttribute("attachment", attachment.orElse(new Attachment())); return "admin/widget/_attachment-detail"; } @@ -171,6 +175,7 @@ public class AttachmentController { * * @param attachId 附件编号 * @param request request + * * @return JsonResult */ @GetMapping(value = "/remove") 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 9ad01e8f6..a81521e07 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 @@ -57,6 +57,7 @@ public class BackupController { * 渲染备份页面 * * @param model model + * * @return 模板路径admin/admin_backup */ @GetMapping @@ -80,6 +81,7 @@ public class BackupController { * 执行备份 * * @param type 备份类型 + * * @return JsonResult */ @GetMapping(value = "doBackup") @@ -106,8 +108,8 @@ public class BackupController { if (HaloUtils.getBackUps(BackupTypeEnum.DATABASES.getDesc()).size() > CommonParamsEnum.TEN.getValue()) { FileUtil.del(System.getProperties().getProperty("user.home") + "/halo/backup/databases/"); } - String srcPath = System.getProperties().getProperty("user.home") + "/halo/"; - String distName = "databases_backup_" + DateUtil.format(DateUtil.date(), "yyyyMMddHHmmss"); + final String srcPath = System.getProperties().getProperty("user.home") + "/halo/"; + final String distName = "databases_backup_" + DateUtil.format(DateUtil.date(), "yyyyMMddHHmmss"); //压缩文件 ZipUtil.zip(srcPath + "halo.mv.db", System.getProperties().getProperty("user.home") + "/halo/backup/databases/" + distName + ".zip"); log.info("Current time: {}, database backup was performed.", DateUtil.now()); @@ -128,9 +130,9 @@ public class BackupController { if (HaloUtils.getBackUps(BackupTypeEnum.RESOURCES.getDesc()).size() > CommonParamsEnum.TEN.getValue()) { FileUtil.del(System.getProperties().getProperty("user.home") + "/halo/backup/resources/"); } - File path = new File(ResourceUtils.getURL("classpath:").getPath()); - String srcPath = path.getAbsolutePath(); - String distName = "resources_backup_" + DateUtil.format(DateUtil.date(), "yyyyMMddHHmmss"); + final File path = new File(ResourceUtils.getURL("classpath:").getPath()); + final String srcPath = path.getAbsolutePath(); + final String distName = "resources_backup_" + DateUtil.format(DateUtil.date(), "yyyyMMddHHmmss"); //执行打包 ZipUtil.zip(srcPath, System.getProperties().getProperty("user.home") + "/halo/backup/resources/" + distName + ".zip"); log.info("Current time: {}, the resource file backup was performed.", DateUtil.now()); @@ -147,15 +149,15 @@ public class BackupController { * @return JsonResult */ public JsonResult backupPosts() { - List posts = postService.findAll(PostTypeEnum.POST_TYPE_POST.getDesc()); + final List posts = postService.findAll(PostTypeEnum.POST_TYPE_POST.getDesc()); posts.addAll(postService.findAll(PostTypeEnum.POST_TYPE_PAGE.getDesc())); try { if (HaloUtils.getBackUps(BackupTypeEnum.POSTS.getDesc()).size() > CommonParamsEnum.TEN.getValue()) { FileUtil.del(System.getProperties().getProperty("user.home") + "/halo/backup/posts/"); } //打包好的文件名 - String distName = "posts_backup_" + DateUtil.format(DateUtil.date(), "yyyyMMddHHmmss"); - String srcPath = System.getProperties().getProperty("user.home") + "/halo/backup/posts/" + distName; + final String distName = "posts_backup_" + DateUtil.format(DateUtil.date(), "yyyyMMddHHmmss"); + final String srcPath = System.getProperties().getProperty("user.home") + "/halo/backup/posts/" + distName; for (Post post : posts) { HaloUtils.postToFile(post.getPostContentMd(), srcPath, post.getPostTitle() + ".md"); } @@ -175,13 +177,14 @@ public class BackupController { * * @param fileName 文件名 * @param type 备份类型 + * * @return JsonResult */ @GetMapping(value = "delBackup") @ResponseBody public JsonResult delBackup(@RequestParam("fileName") String fileName, @RequestParam("type") String type) { - String srcPath = System.getProperties().getProperty("user.home") + "/halo/backup/" + type + "/" + fileName; + final String srcPath = System.getProperties().getProperty("user.home") + "/halo/backup/" + type + "/" + fileName; try { FileUtil.del(srcPath); return new JsonResult(ResultCodeEnum.SUCCESS.getCode(), localeMessageUtil.getMessage("code.admin.common.delete-success")); @@ -195,6 +198,7 @@ public class BackupController { * * @param fileName 文件名 * @param type 备份类型 + * * @return JsonResult */ @GetMapping(value = "sendToEmail") @@ -202,9 +206,9 @@ public class BackupController { public JsonResult sendToEmail(@RequestParam("fileName") String fileName, @RequestParam("type") String type, HttpSession session) { - String srcPath = System.getProperties().getProperty("user.home") + "/halo/backup/" + type + "/" + fileName; - User user = (User) session.getAttribute(HaloConst.USER_SESSION_KEY); - if (null == user.getUserEmail() || StrUtil.equals(user.getUserEmail(), "")) { + final String srcPath = System.getProperties().getProperty("user.home") + "/halo/backup/" + type + "/" + fileName; + final User user = (User) session.getAttribute(HaloConst.USER_SESSION_KEY); + if (null == user.getUserEmail() || StrUtil.isEmpty(user.getUserEmail())) { return new JsonResult(ResultCodeEnum.FAIL.getCode(), localeMessageUtil.getMessage("code.admin.backup.no-email")); } if (StrUtil.equals(HaloConst.OPTIONS.get(BlogPropertiesEnum.SMTP_EMAIL_ENABLE.getProp()), TrueFalseEnum.FALSE.getDesc())) { @@ -228,8 +232,8 @@ public class BackupController { @Override public void run() { - File file = new File(srcPath); - Map content = new HashMap<>(3); + final File file = new File(srcPath); + final Map content = new HashMap<>(3); try { content.put("fileName", file.getName()); content.put("createAt", HaloUtils.getCreateTime(srcPath)); 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 b829950c0..34c577262 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 @@ -104,7 +104,7 @@ public class CategoryController { */ @GetMapping(value = "/edit") public String toEditCategory(Model model, @RequestParam("cateId") Long cateId) { - Optional category = categoryService.findByCateId(cateId); + final Optional category = categoryService.findByCateId(cateId); model.addAttribute("updateCategory", category.orElse(new Category())); 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 fb455577e..675929a2d 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 @@ -62,6 +62,7 @@ public class CommentController extends BaseController { * @param status status 评论状态 * @param page page 当前页码 * @param size size 每页显示条数 + * * @return 模板路径admin/admin_comment */ @GetMapping @@ -69,9 +70,9 @@ public class CommentController extends BaseController { @RequestParam(value = "status", defaultValue = "0") Integer status, @RequestParam(value = "page", defaultValue = "0") Integer page, @RequestParam(value = "size", defaultValue = "10") Integer size) { - Sort sort = new Sort(Sort.Direction.DESC, "commentDate"); - Pageable pageable = PageRequest.of(page, size, sort); - Page comments = commentService.findAll(status,pageable); + final Sort sort = new Sort(Sort.Direction.DESC, "commentDate"); + final Pageable pageable = PageRequest.of(page, size, sort); + final Page comments = commentService.findAll(status, pageable); model.addAttribute("comments", comments); model.addAttribute("publicCount", commentService.getCountByStatus(CommentStatusEnum.PUBLISHED.getCode())); model.addAttribute("checkCount", commentService.getCountByStatus(CommentStatusEnum.CHECKING.getCode())); @@ -85,6 +86,7 @@ public class CommentController extends BaseController { * * @param commentId 评论编号 * @param status 评论状态 + * * @return 重定向到/admin/comments */ @GetMapping(value = "/throw") @@ -105,15 +107,16 @@ public class CommentController extends BaseController { * @param commentId 评论编号 * @param status 评论状态 * @param session session + * * @return 重定向到/admin/comments */ @GetMapping(value = "/revert") public String moveToPublish(@RequestParam("commentId") Long commentId, @RequestParam("status") Integer status, HttpSession session) { - Comment comment = commentService.updateCommentStatus(commentId, CommentStatusEnum.PUBLISHED.getCode()); - Post post = comment.getPost(); - User user = (User) session.getAttribute(HaloConst.USER_SESSION_KEY); + final Comment comment = commentService.updateCommentStatus(commentId, CommentStatusEnum.PUBLISHED.getCode()); + final Post post = comment.getPost(); + final User user = (User) session.getAttribute(HaloConst.USER_SESSION_KEY); //判断是否启用邮件服务 new NoticeToAuthor(comment, post, user, status).start(); @@ -126,6 +129,7 @@ public class CommentController extends BaseController { * @param commentId commentId 评论编号 * @param status status 评论状态 * @param page 当前页码 + * * @return string 重定向到/admin/comments */ @GetMapping(value = "/remove") @@ -146,6 +150,7 @@ public class CommentController extends BaseController { * * @param commentId 被回复的评论 * @param commentContent 回复的内容 + * * @return JsonResult */ @PostMapping(value = "/reply") @@ -157,20 +162,20 @@ public class CommentController extends BaseController { HttpServletRequest request, HttpSession session) { try { - Post post = postService.findByPostId(postId).orElse(new Post()); + final Post post = postService.findByPostId(postId).orElse(new Post()); //博主信息 - User user = (User) session.getAttribute(HaloConst.USER_SESSION_KEY); + final User user = (User) session.getAttribute(HaloConst.USER_SESSION_KEY); //被回复的评论 - Comment lastComment = commentService.findCommentById(commentId).orElse(new Comment()); + final Comment lastComment = commentService.findCommentById(commentId).orElse(new Comment()); //修改被回复的评论的状态 lastComment.setCommentStatus(CommentStatusEnum.PUBLISHED.getCode()); commentService.save(lastComment); //保存评论 - Comment comment = new Comment(); + final Comment comment = new Comment(); comment.setPost(post); comment.setCommentAuthor(user.getUserDisplayName()); comment.setCommentAuthorEmail(user.getUserEmail()); @@ -179,7 +184,7 @@ public class CommentController extends BaseController { comment.setCommentAuthorAvatarMd5(SecureUtil.md5(user.getUserEmail())); comment.setCommentDate(DateUtil.date()); - StrBuilder buildContent = new StrBuilder("@"); buildContent.append(lastComment.getCommentAuthor()); @@ -225,12 +230,12 @@ public class CommentController extends BaseController { public void run() { if (StrUtil.equals(HaloConst.OPTIONS.get(BlogPropertiesEnum.SMTP_EMAIL_ENABLE.getProp()), TrueFalseEnum.TRUE.getDesc()) && StrUtil.equals(HaloConst.OPTIONS.get(BlogPropertiesEnum.COMMENT_REPLY_NOTICE.getProp()), TrueFalseEnum.TRUE.getDesc())) { if (Validator.isEmail(lastComment.getCommentAuthorEmail())) { - Map map = new HashMap<>(8); + final Map map = new HashMap<>(8); map.put("blogTitle", HaloConst.OPTIONS.get(BlogPropertiesEnum.BLOG_TITLE.getProp())); map.put("commentAuthor", lastComment.getCommentAuthor()); map.put("pageName", lastComment.getPost().getPostTitle()); - StrBuilder pageUrl = new StrBuilder(HaloConst.OPTIONS.get(BlogPropertiesEnum.BLOG_URL.getProp())); + final StrBuilder pageUrl = new StrBuilder(HaloConst.OPTIONS.get(BlogPropertiesEnum.BLOG_URL.getProp())); if (StrUtil.equals(post.getPostType(), PostTypeEnum.POST_TYPE_POST.getDesc())) { pageUrl.append("/archives/"); } else { @@ -240,7 +245,7 @@ public class CommentController extends BaseController { pageUrl.append("#comment-id-"); pageUrl.append(comment.getCommentId()); - map.put("pageUrl",pageUrl.toString()); + map.put("pageUrl", pageUrl.toString()); map.put("commentContent", lastComment.getCommentContent()); map.put("replyAuthor", user.getUserDisplayName()); map.put("replyContent", commentContent); @@ -274,9 +279,9 @@ public class CommentController extends BaseController { if (StrUtil.equals(HaloConst.OPTIONS.get(BlogPropertiesEnum.SMTP_EMAIL_ENABLE.getProp()), TrueFalseEnum.TRUE.getDesc()) && StrUtil.equals(HaloConst.OPTIONS.get(BlogPropertiesEnum.COMMENT_REPLY_NOTICE.getProp()), TrueFalseEnum.TRUE.getDesc())) { try { if (status == 1 && Validator.isEmail(comment.getCommentAuthorEmail())) { - Map map = new HashMap<>(6); + final Map map = new HashMap<>(6); - StrBuilder pageUrl = new StrBuilder(HaloConst.OPTIONS.get(BlogPropertiesEnum.BLOG_URL.getProp())); + final StrBuilder pageUrl = new StrBuilder(HaloConst.OPTIONS.get(BlogPropertiesEnum.BLOG_URL.getProp())); if (StrUtil.equals(post.getPostType(), PostTypeEnum.POST_TYPE_POST.getDesc())) { pageUrl.append("/archives/"); } else { @@ -286,7 +291,7 @@ public class CommentController extends BaseController { pageUrl.append("#comment-id-"); pageUrl.append(comment.getCommentId()); - map.put("pageUrl",pageUrl.toString()); + map.put("pageUrl", pageUrl.toString()); map.put("pageName", post.getPostTitle()); map.put("commentContent", comment.getCommentContent()); map.put("blogUrl", HaloConst.OPTIONS.get(BlogPropertiesEnum.BLOG_URL.getProp())); 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 d5f05ab85..793981e0e 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 @@ -75,7 +75,7 @@ public class MenuController { */ @GetMapping(value = "/edit") public String updateMenu(@RequestParam("menuId") Long menuId, Model model) { - Menu menu = menuService.findByMenuId(menuId).orElse(new Menu()); + final Menu menu = menuService.findByMenuId(menuId).orElse(new Menu()); model.addAttribute("updateMenu", menu); return "/admin/admin_menu"; } 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 db0f94acf..a4ac70c04 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 @@ -10,7 +10,9 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.i18n.SessionLocaleResolver; +import javax.servlet.http.HttpSession; import java.util.Map; /** @@ -49,17 +51,19 @@ public class OptionController { * 保存设置选项 * * @param options options + * * @return JsonResult */ @PostMapping(value = "/save") @ResponseBody - public JsonResult saveOptions(@RequestParam Map options) { + public JsonResult saveOptions(@RequestParam Map options, HttpSession session) { try { optionsService.saveOptions(options); //刷新options configuration.setSharedVariable("options", optionsService.findAllOptions()); HaloConst.OPTIONS.clear(); HaloConst.OPTIONS = optionsService.findAllOptions(); + session.removeAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME); log.info("List of saved options: " + options); return new JsonResult(ResultCodeEnum.SUCCESS.getCode(), localeMessageUtil.getMessage("code.admin.common.save-success")); } catch (Exception e) { 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 5b0efefc4..2a2ef2c42 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 @@ -77,7 +77,7 @@ public class PageController { */ @GetMapping public String pages(Model model) { - List posts = postService.findAll(PostTypeEnum.POST_TYPE_PAGE.getDesc()); + final List posts = postService.findAll(PostTypeEnum.POST_TYPE_PAGE.getDesc()); model.addAttribute("pages", posts); return "admin/admin_page"; } @@ -102,7 +102,7 @@ public class PageController { */ @GetMapping(value = "/links/edit") public String toEditLink(Model model, @RequestParam("linkId") Long linkId) { - Optional link = linkService.findByLinkId(linkId); + final Optional link = linkService.findByLinkId(linkId); model.addAttribute("updateLink", link.orElse(new Link())); return "admin/admin_page_link"; } @@ -159,9 +159,9 @@ public class PageController { 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 = PageRequest.of(page, size, sort); - Page galleries = galleryService.findAll(pageable); + final Sort sort = new Sort(Sort.Direction.DESC, "galleryId"); + final Pageable pageable = PageRequest.of(page, size, sort); + final Page galleries = galleryService.findAll(pageable); model.addAttribute("galleries", galleries); return "admin/admin_page_gallery"; } @@ -196,8 +196,8 @@ public class PageController { */ @GetMapping(value = "/gallery") public String gallery(Model model, @RequestParam("galleryId") Long galleryId) { - Optional gallery = galleryService.findByGalleryId(galleryId); - model.addAttribute("gallery", gallery.get()); + final Optional gallery = galleryService.findByGalleryId(galleryId); + model.addAttribute("gallery", gallery.orElse(new Gallery())); return "admin/widget/_gallery-detail"; } @@ -229,7 +229,7 @@ public class PageController { */ @GetMapping(value = "/new") public String newPage(Model model) { - List customTpls = HaloUtils.getCustomTpl(HaloConst.OPTIONS.get(BlogPropertiesEnum.THEME.getProp())); + final List customTpls = HaloUtils.getCustomTpl(HaloConst.OPTIONS.get(BlogPropertiesEnum.THEME.getProp())); model.addAttribute("customTpls", customTpls); return "admin/admin_page_md_editor"; } @@ -246,11 +246,11 @@ public class PageController { String msg = localeMessageUtil.getMessage("code.admin.common.save-success"); try { //发表用户 - User user = (User) session.getAttribute(HaloConst.USER_SESSION_KEY); + final User user = (User) session.getAttribute(HaloConst.USER_SESSION_KEY); post.setUser(user); post.setPostType(PostTypeEnum.POST_TYPE_PAGE.getDesc()); if (null != post.getPostId()) { - Post oldPost = postService.findByPostId(post.getPostId()).get(); + final Post oldPost = postService.findByPostId(post.getPostId()).get(); if (null == post.getPostDate()) { post.setPostDate(DateUtil.date()); } @@ -284,8 +284,8 @@ public class PageController { */ @GetMapping(value = "/edit") public String editPage(@RequestParam("pageId") Long pageId, Model model) { - Optional post = postService.findByPostId(pageId); - List customTpls = HaloUtils.getCustomTpl(HaloConst.OPTIONS.get(BlogPropertiesEnum.THEME.getProp())); + final Optional post = postService.findByPostId(pageId); + final List customTpls = HaloUtils.getCustomTpl(HaloConst.OPTIONS.get(BlogPropertiesEnum.THEME.getProp())); model.addAttribute("post", post.orElse(new Post())); model.addAttribute("customTpls", customTpls); return "admin/admin_page_md_editor"; @@ -301,7 +301,7 @@ public class PageController { @GetMapping(value = "/checkUrl") @ResponseBody public JsonResult checkUrlExists(@RequestParam("postUrl") String postUrl) { - Post post = postService.findByPostUrl(postUrl, PostTypeEnum.POST_TYPE_PAGE.getDesc()); + final Post post = postService.findByPostUrl(postUrl, PostTypeEnum.POST_TYPE_PAGE.getDesc()); if (null != post) { return new JsonResult(ResultCodeEnum.FAIL.getCode(), localeMessageUtil.getMessage("code.admin.common.url-is-exists")); } 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 85037113f..41b42478c 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 @@ -92,9 +92,9 @@ public class PostController extends BaseController { @RequestParam(value = "status", defaultValue = "0") Integer status, @RequestParam(value = "page", defaultValue = "0") Integer page, @RequestParam(value = "size", defaultValue = "10") Integer size) { - Sort sort = new Sort(Sort.Direction.DESC, "postDate"); - Pageable pageable = PageRequest.of(page, size, sort); - Page posts = postService.findPostByStatus(status, PostTypeEnum.POST_TYPE_POST.getDesc(), pageable); + final Sort sort = new Sort(Sort.Direction.DESC, "postDate"); + final Pageable pageable = PageRequest.of(page, size, sort); + final Page posts = postService.findPostByStatus(status, PostTypeEnum.POST_TYPE_POST.getDesc(), pageable); model.addAttribute("posts", posts); model.addAttribute("publishCount", postService.getCountByStatus(PostStatusEnum.PUBLISHED.getCode())); model.addAttribute("draftCount", postService.getCountByStatus(PostStatusEnum.DRAFT.getCode())); @@ -119,8 +119,8 @@ public class PostController extends BaseController { @RequestParam(value = "size", defaultValue = "10") Integer size) { try { //排序规则 - Sort sort = new Sort(Sort.Direction.DESC, "postId"); - Pageable pageable = PageRequest.of(page, size, sort); + final Sort sort = new Sort(Sort.Direction.DESC, "postId"); + final Pageable pageable = PageRequest.of(page, size, sort); model.addAttribute("posts", postService.searchPosts(keyword, pageable)); } catch (Exception e) { log.error("未知错误:{}", e.getMessage()); @@ -137,7 +137,7 @@ public class PostController extends BaseController { */ @GetMapping(value = "/view") public String viewPost(@RequestParam("postId") Long postId, Model model) { - Optional post = postService.findByPostId(postId); + final Optional post = postService.findByPostId(postId); model.addAttribute("post", post.orElse(new Post())); return this.render("post"); } @@ -161,8 +161,8 @@ public class PostController extends BaseController { */ @GetMapping(value = "/edit") public String editPost(@RequestParam("postId") Long postId, Model model) { - Optional post = postService.findByPostId(postId); - model.addAttribute("post", post.get()); + final Optional post = postService.findByPostId(postId); + model.addAttribute("post", post.orElse(new Post())); return "admin/admin_post_edit"; } @@ -180,7 +180,7 @@ public class PostController extends BaseController { @RequestParam("cateList") List cateList, @RequestParam("tagList") String tagList, HttpSession session) { - User user = (User) session.getAttribute(HaloConst.USER_SESSION_KEY); + final User user = (User) session.getAttribute(HaloConst.USER_SESSION_KEY); try { post.setPostContent(MarkdownUtils.renderMarkdown(post.getPostContentMd())); //摘要字数 @@ -189,9 +189,9 @@ public class PostController extends BaseController { postSummary = Integer.parseInt(HaloConst.OPTIONS.get(BlogPropertiesEnum.POST_SUMMARY.getProp())); } //设置文章摘要 - String summaryText = StrUtil.cleanBlank(HtmlUtil.cleanHtmlTag(post.getPostContent())); + final String summaryText = StrUtil.cleanBlank(HtmlUtil.cleanHtmlTag(post.getPostContent())); if (summaryText.length() > postSummary) { - String summary = summaryText.substring(0, postSummary); + final String summary = summaryText.substring(0, postSummary); post.setPostSummary(summary); } else { post.setPostSummary(summaryText); @@ -231,7 +231,7 @@ public class PostController extends BaseController { @RequestParam("cateList") List cateList, @RequestParam("tagList") String tagList) { //old data - Post oldPost = postService.findByPostId(post.getPostId()).orElse(new Post()); + final Post oldPost = postService.findByPostId(post.getPostId()).orElse(new Post()); post.setPostUpdate(new Date()); post.setPostViews(oldPost.getPostViews()); post.setPostContent(MarkdownUtils.renderMarkdown(post.getPostContentMd())); @@ -245,9 +245,9 @@ public class PostController extends BaseController { postSummary = Integer.parseInt(HaloConst.OPTIONS.get(BlogPropertiesEnum.POST_SUMMARY.getProp())); } //设置文章摘要 - String summaryText = StrUtil.cleanBlank(HtmlUtil.cleanHtmlTag(post.getPostContent())); + final String summaryText = StrUtil.cleanBlank(HtmlUtil.cleanHtmlTag(post.getPostContent())); if (summaryText.length() > postSummary) { - String summary = summaryText.substring(0, postSummary); + final String summary = summaryText.substring(0, postSummary); post.setPostSummary(summary); } else { post.setPostSummary(summaryText); @@ -309,7 +309,7 @@ public class PostController extends BaseController { @GetMapping(value = "/remove") public String removePost(@RequestParam("postId") Long postId, @RequestParam("postType") String postType) { try { - Optional post = postService.findByPostId(postId); + final Optional post = postService.findByPostId(postId); postService.remove(postId); logsService.save(LogsRecord.REMOVE_POST, post.get().getPostTitle(), request); } catch (Exception e) { @@ -350,7 +350,7 @@ public class PostController extends BaseController { @ResponseBody public JsonResult checkUrlExists(@RequestParam("postUrl") String postUrl) { postUrl = urlFilter(postUrl); - Post post = postService.findByPostUrl(postUrl, PostTypeEnum.POST_TYPE_POST.getDesc()); + final Post post = postService.findByPostUrl(postUrl, PostTypeEnum.POST_TYPE_POST.getDesc()); if (null != post) { return new JsonResult(ResultCodeEnum.FAIL.getCode(), localeMessageUtil.getMessage("code.admin.common.url-is-exists")); } @@ -369,16 +369,16 @@ public class PostController extends BaseController { if (StrUtil.isBlank(baiduToken)) { return new JsonResult(ResultCodeEnum.FAIL.getCode(), localeMessageUtil.getMessage("code.admin.post.no-baidu-token")); } - String blogUrl = HaloConst.OPTIONS.get(BlogPropertiesEnum.BLOG_URL.getProp()); - List posts = postService.findAll(PostTypeEnum.POST_TYPE_POST.getDesc()); - StringBuilder urls = new StringBuilder(); + final String blogUrl = HaloConst.OPTIONS.get(BlogPropertiesEnum.BLOG_URL.getProp()); + final List posts = postService.findAll(PostTypeEnum.POST_TYPE_POST.getDesc()); + final StringBuilder urls = new StringBuilder(); for (Post post : posts) { urls.append(blogUrl); urls.append("/archives/"); urls.append(post.getPostUrl()); urls.append("\n"); } - String result = HaloUtils.baiduPost(blogUrl, baiduToken, urls.toString()); + final String result = HaloUtils.baiduPost(blogUrl, baiduToken, urls.toString()); if (StrUtil.isEmpty(result)) { return new JsonResult(ResultCodeEnum.FAIL.getCode(), localeMessageUtil.getMessage("code.admin.post.push-to-baidu-failed")); } 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 5a3df144f..254d8e67d 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 @@ -14,6 +14,7 @@ import cc.ryanc.halo.web.controller.core.BaseController; import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.file.FileReader; import cn.hutool.core.io.file.FileWriter; +import cn.hutool.core.text.StrBuilder; import cn.hutool.core.util.RuntimeUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.ZipUtil; @@ -63,6 +64,7 @@ public class ThemeController extends BaseController { * 渲染主题设置页面 * * @param model model + * * @return 模板路径admin/admin_theme */ @GetMapping @@ -79,6 +81,7 @@ public class ThemeController extends BaseController { * * @param siteTheme 主题名称 * @param request request + * * @return JsonResult */ @GetMapping(value = "/set") @@ -108,6 +111,7 @@ public class ThemeController extends BaseController { * 上传主题 * * @param file 文件 + * * @return JsonResult */ @RequestMapping(value = "/upload", method = RequestMethod.POST) @@ -117,8 +121,8 @@ public class ThemeController extends BaseController { try { 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()); + final File basePath = new File(ResourceUtils.getURL("classpath:").getPath()); + final File themePath = new File(basePath.getAbsolutePath(), new StringBuffer("templates/themes/").append(file.getOriginalFilename()).toString()); file.transferTo(themePath); log.info("Upload topic success, path is " + themePath.getAbsolutePath()); logsService.save(LogsRecord.UPLOAD_THEME, file.getOriginalFilename(), request); @@ -141,13 +145,14 @@ public class ThemeController extends BaseController { * 删除主题 * * @param themeName 主题文件夹名 + * * @return string 重定向到/admin/themes */ @GetMapping(value = "/remove") 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); + final File basePath = new File(ResourceUtils.getURL("classpath:").getPath()); + final File themePath = new File(basePath.getAbsolutePath(), "templates/themes/" + themeName); FileUtil.del(themePath); HaloConst.THEMES.clear(); HaloConst.THEMES = HaloUtils.getThemes(); @@ -172,6 +177,7 @@ public class ThemeController extends BaseController { * * @param remoteAddr 远程地址 * @param themeName 主题名称 + * * @return JsonResult */ @PostMapping(value = "/clone") @@ -182,9 +188,9 @@ public class ThemeController extends BaseController { return new JsonResult(ResultCodeEnum.FAIL.getCode(), localeMessageUtil.getMessage("code.admin.common.info-no-complete")); } try { - File basePath = new File(ResourceUtils.getURL("classpath:").getPath()); - File themePath = new File(basePath.getAbsolutePath(), "templates/themes"); - String cmdResult = RuntimeUtil.execForStr("git clone " + remoteAddr + " " + themePath.getAbsolutePath() + "/" + themeName); + final File basePath = new File(ResourceUtils.getURL("classpath:").getPath()); + final File themePath = new File(basePath.getAbsolutePath(), "templates/themes"); + final String cmdResult = RuntimeUtil.execForStr("git clone " + remoteAddr + " " + themePath.getAbsolutePath() + "/" + themeName); if (NOT_FOUND_GIT.equals(cmdResult)) { return new JsonResult(ResultCodeEnum.FAIL.getCode(), localeMessageUtil.getMessage("code.admin.theme.no-git")); } @@ -201,15 +207,16 @@ public class ThemeController extends BaseController { * 更新主题 * * @param themeName 主题名 + * * @return JsonResult */ @GetMapping(value = "/pull") @ResponseBody public JsonResult pullFromRemote(@RequestParam(value = "themeName") String themeName) { try { - File basePath = new File(ResourceUtils.getURL("classpath:").getPath()); - File themePath = new File(basePath.getAbsolutePath(), "templates/themes"); - String cmdResult = RuntimeUtil.execForStr("cd " + themePath.getAbsolutePath() + "/" + themeName + " && git pull"); + final File basePath = new File(ResourceUtils.getURL("classpath:").getPath()); + final File themePath = new File(basePath.getAbsolutePath(), "templates/themes"); + final String cmdResult = RuntimeUtil.execForStr("cd " + themePath.getAbsolutePath() + "/" + themeName, "git pull"); if (NOT_FOUND_GIT.equals(cmdResult)) { return new JsonResult(ResultCodeEnum.FAIL.getCode(), localeMessageUtil.getMessage("code.admin.theme.no-git")); } @@ -244,11 +251,12 @@ public class ThemeController extends BaseController { * 编辑主题 * * @param model model + * * @return 模板路径admin/admin_theme-editor */ @GetMapping(value = "/editor") public String editor(Model model) { - List tpls = HaloUtils.getTplName(BaseController.THEME); + final List tpls = HaloUtils.getTplName(BaseController.THEME); model.addAttribute("tpls", tpls); return "admin/admin_theme-editor"; } @@ -257,6 +265,7 @@ public class ThemeController extends BaseController { * 获取模板文件内容 * * @param tplName 模板文件名 + * * @return 模板内容 */ @GetMapping(value = "/getTpl", produces = "text/text;charset=UTF-8") @@ -265,10 +274,14 @@ public class ThemeController extends BaseController { String tplContent = ""; try { //获取项目根路径 - File basePath = new File(ResourceUtils.getURL("classpath:").getPath()); + final 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()); - FileReader fileReader = new FileReader(themesPath); + final StrBuilder themePath = new StrBuilder("templates/themes/"); + themePath.append(BaseController.THEME); + themePath.append("/"); + themePath.append(tplName); + final File themesPath = new File(basePath.getAbsolutePath(), themePath.toString()); + final FileReader fileReader = new FileReader(themesPath); tplContent = fileReader.readString(); } catch (Exception e) { log.error("Get template file error: {}", e.getMessage()); @@ -281,6 +294,7 @@ public class ThemeController extends BaseController { * * @param tplName 模板名称 * @param tplContent 模板内容 + * * @return JsonResult */ @PostMapping(value = "/editor/save") @@ -292,10 +306,14 @@ public class ThemeController extends BaseController { } try { //获取项目根路径 - File basePath = new File(ResourceUtils.getURL("classpath:").getPath()); + final 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()); - FileWriter fileWriter = new FileWriter(tplPath); + final StrBuilder themePath = new StrBuilder("templates/themes/"); + themePath.append(BaseController.THEME); + themePath.append("/"); + themePath.append(tplName); + final File tplPath = new File(basePath.getAbsolutePath(), themePath.toString()); + final FileWriter fileWriter = new FileWriter(tplPath); fileWriter.write(tplContent); } catch (Exception e) { log.error("Template save failed: {}", e.getMessage()); 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 f1dc521f4..ca98297bd 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 @@ -92,7 +92,7 @@ public class UserController { @ModelAttribute("userId") Long userId, HttpSession session) { try { - User user = userService.findByUserIdAndUserPass(userId, SecureUtil.md5(beforePass)); + final User user = userService.findByUserIdAndUserPass(userId, SecureUtil.md5(beforePass)); if (null != user) { user.setUserPass(SecureUtil.md5(newPass)); userService.save(user); diff --git a/src/main/java/cc/ryanc/halo/web/controller/api/ApiArchivesController.java b/src/main/java/cc/ryanc/halo/web/controller/api/ApiArchivesController.java index ad79cc410..0448ce0b8 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/api/ApiArchivesController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/api/ApiArchivesController.java @@ -74,7 +74,7 @@ public class ApiArchivesController { */ @GetMapping(value = "/year") public JsonResult archivesYear() { - List archives = postService.findPostGroupByYear(); + final List archives = postService.findPostGroupByYear(); if (null != archives && archives.size() > 0) { return new JsonResult(ResponseStatusEnum.SUCCESS.getCode(), ResponseStatusEnum.SUCCESS.getMsg(), archives); } else { @@ -128,7 +128,7 @@ public class ApiArchivesController { */ @GetMapping(value = "/year/month") public JsonResult archivesYearAndMonth() { - List archives = postService.findPostGroupByYearAndMonth(); + final List archives = postService.findPostGroupByYearAndMonth(); if (null != archives && archives.size() > 0) { return new JsonResult(ResponseStatusEnum.SUCCESS.getCode(), ResponseStatusEnum.SUCCESS.getMsg(), archives); } else { diff --git a/src/main/java/cc/ryanc/halo/web/controller/api/ApiCategoryController.java b/src/main/java/cc/ryanc/halo/web/controller/api/ApiCategoryController.java index e24398d6d..3b477b258 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/api/ApiCategoryController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/api/ApiCategoryController.java @@ -82,7 +82,7 @@ public class ApiCategoryController { */ @GetMapping(value = "/{cateUrl}") public JsonResult categories(@PathVariable("cateUrl") String cateUrl) { - Category category = categoryService.findByCateUrl(cateUrl); + final Category category = categoryService.findByCateUrl(cateUrl); if (null != category) { return new JsonResult(ResponseStatusEnum.SUCCESS.getCode(), ResponseStatusEnum.SUCCESS.getMsg(), category); } else { diff --git a/src/main/java/cc/ryanc/halo/web/controller/api/ApiGalleryController.java b/src/main/java/cc/ryanc/halo/web/controller/api/ApiGalleryController.java index 7c9441ce7..2f24bf301 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/api/ApiGalleryController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/api/ApiGalleryController.java @@ -54,7 +54,7 @@ public class ApiGalleryController { */ @GetMapping public JsonResult galleries() { - List galleries = galleryService.findAll(); + final List galleries = galleryService.findAll(); if (null != galleries && galleries.size() > 0) { return new JsonResult(ResponseStatusEnum.SUCCESS.getCode(), ResponseStatusEnum.SUCCESS.getMsg(), galleries); } else { @@ -91,7 +91,7 @@ public class ApiGalleryController { */ @GetMapping(value = "/{id}") public JsonResult galleries(@PathVariable("id") Long id) { - Optional gallery = galleryService.findByGalleryId(id); + final Optional gallery = galleryService.findByGalleryId(id); if (gallery.isPresent()) { return new JsonResult(ResponseStatusEnum.SUCCESS.getCode(), ResponseStatusEnum.SUCCESS.getMsg(), gallery.get()); } else { diff --git a/src/main/java/cc/ryanc/halo/web/controller/api/ApiLinkController.java b/src/main/java/cc/ryanc/halo/web/controller/api/ApiLinkController.java index dc6f5a7ba..cf4f159d9 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/api/ApiLinkController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/api/ApiLinkController.java @@ -54,7 +54,7 @@ public class ApiLinkController { */ @GetMapping public JsonResult links() { - List links = linkService.findAll(); + final List links = linkService.findAll(); if (null != links && links.size() > 0) { return new JsonResult(ResponseStatusEnum.SUCCESS.getCode(), ResponseStatusEnum.SUCCESS.getMsg(), links); } else { diff --git a/src/main/java/cc/ryanc/halo/web/controller/api/ApiMenuController.java b/src/main/java/cc/ryanc/halo/web/controller/api/ApiMenuController.java index d67cfd726..66ee74c96 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/api/ApiMenuController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/api/ApiMenuController.java @@ -55,7 +55,7 @@ public class ApiMenuController { */ @GetMapping public JsonResult menus() { - List menus = menuService.findAll(); + final List menus = menuService.findAll(); if (null != menus && menus.size() > 0) { return new JsonResult(ResponseStatusEnum.SUCCESS.getCode(), ResponseStatusEnum.SUCCESS.getMsg(), menus); } else { diff --git a/src/main/java/cc/ryanc/halo/web/controller/api/ApiOptionController.java b/src/main/java/cc/ryanc/halo/web/controller/api/ApiOptionController.java index a140aa7b1..7af077bb1 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/api/ApiOptionController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/api/ApiOptionController.java @@ -29,8 +29,8 @@ public class ApiOptionController { * 获取所有设置选项 * *

- * result json: - *

+     * result json:
+     * 
      * {
      *     "code": 200,
      *     "msg": "OK",
@@ -57,7 +57,7 @@ public class ApiOptionController {
      */
     @GetMapping
     public JsonResult options() {
-        Map options = optionsService.findAllOptions();
+        final Map options = optionsService.findAllOptions();
         //去掉隐私元素
         options.remove(BlogPropertiesEnum.MAIL_SMTP_HOST.getProp());
         options.remove(BlogPropertiesEnum.MAIL_FROM_NAME.getProp());
@@ -71,8 +71,8 @@ public class ApiOptionController {
      * 获取单个设置项
      *
      * 

- * result json: - *

+     * result json:
+     * 
      * {
      *     "code": 200,
      *     "msg": "OK",
@@ -82,11 +82,12 @@ public class ApiOptionController {
      * 

* * @param optionName 设置选项名称 + * * @return JsonResult */ @GetMapping(value = "/{optionName}") public JsonResult option(@PathVariable(value = "optionName") String optionName) { - String optionValue = optionsService.findOneOption(optionName); + final String optionValue = optionsService.findOneOption(optionName); return new JsonResult(ResponseStatusEnum.SUCCESS.getCode(), ResponseStatusEnum.SUCCESS.getMsg(), optionValue); } } diff --git a/src/main/java/cc/ryanc/halo/web/controller/api/ApiPageController.java b/src/main/java/cc/ryanc/halo/web/controller/api/ApiPageController.java index f2cc6c97a..0f0126ad1 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/api/ApiPageController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/api/ApiPageController.java @@ -28,8 +28,8 @@ public class ApiPageController { * 获取单个页面 * *

- * result json: - *

+     * result json:
+     * 
      * {
      *     "code": 200,
      *     "msg": "OK",
@@ -58,11 +58,12 @@ public class ApiPageController {
      * 

* * @param postId postId + * * @return JsonResult */ @GetMapping(value = "/{postId}") public JsonResult pages(@PathVariable(value = "postId") Long postId) { - Post post = postService.findByPostId(postId, PostTypeEnum.POST_TYPE_PAGE.getDesc()); + final Post post = postService.findByPostId(postId, PostTypeEnum.POST_TYPE_PAGE.getDesc()); if (null != post) { postService.cacheViews(post.getPostId()); return new JsonResult(ResponseStatusEnum.SUCCESS.getCode(), ResponseStatusEnum.SUCCESS.getMsg(), post); diff --git a/src/main/java/cc/ryanc/halo/web/controller/api/ApiPostController.java b/src/main/java/cc/ryanc/halo/web/controller/api/ApiPostController.java index 3bc667068..afdf492e9 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/api/ApiPostController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/api/ApiPostController.java @@ -36,8 +36,8 @@ public class ApiPostController { * 获取文章列表 分页 * *

- * result api - *

+     * result api
+     * 
      * {
      *     "code": 200,
      *     "msg": "OK",
@@ -95,17 +95,18 @@ public class ApiPostController {
      * 

* * @param page 页码 + * * @return JsonResult */ @GetMapping(value = "/page/{page}") public JsonResult posts(@PathVariable(value = "page") Integer page) { - Sort sort = new Sort(Sort.Direction.DESC, "postDate"); + final Sort sort = new Sort(Sort.Direction.DESC, "postDate"); int size = 10; if (StrUtil.isNotBlank(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp()))) { size = Integer.parseInt(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp())); } - Pageable pageable = PageRequest.of(page - 1, size, sort); - Page posts = postService.findPostByStatus(PostStatusEnum.PUBLISHED.getCode(), PostTypeEnum.POST_TYPE_POST.getDesc(), pageable); + final Pageable pageable = PageRequest.of(page - 1, size, sort); + final Page posts = postService.findPostByStatus(PostStatusEnum.PUBLISHED.getCode(), PostTypeEnum.POST_TYPE_POST.getDesc(), pageable); if (null == posts) { return new JsonResult(ResponseStatusEnum.EMPTY.getCode(), ResponseStatusEnum.EMPTY.getMsg()); } @@ -116,8 +117,8 @@ public class ApiPostController { * 获取单个文章信息 * *

- * result json: - *

+     * result json:
+     * 
      * {
      *     "code": 200,
      *     "msg": "OK",
@@ -146,11 +147,12 @@ public class ApiPostController {
      * 

* * @param postId 文章编号 + * * @return JsonResult */ @GetMapping(value = "/{postId}") public JsonResult posts(@PathVariable(value = "postId") Long postId) { - Post post = postService.findByPostId(postId, PostTypeEnum.POST_TYPE_POST.getDesc()); + final Post post = postService.findByPostId(postId, PostTypeEnum.POST_TYPE_POST.getDesc()); if (null != post) { postService.cacheViews(post.getPostId()); return new JsonResult(ResponseStatusEnum.SUCCESS.getCode(), ResponseStatusEnum.SUCCESS.getMsg(), post); diff --git a/src/main/java/cc/ryanc/halo/web/controller/api/ApiTagController.java b/src/main/java/cc/ryanc/halo/web/controller/api/ApiTagController.java index 174d54113..a3362504e 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/api/ApiTagController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/api/ApiTagController.java @@ -49,7 +49,7 @@ public class ApiTagController { */ @GetMapping public JsonResult tags() { - List tags = tagService.findAll(); + final List tags = tagService.findAll(); if (null != tags && tags.size() > 0) { return new JsonResult(ResponseStatusEnum.SUCCESS.getCode(), ResponseStatusEnum.SUCCESS.getMsg(), tags); } else { @@ -80,7 +80,7 @@ public class ApiTagController { */ @GetMapping(value = "/{tagUrl}") public JsonResult tags(@PathVariable("tagUrl") String tagUrl) { - Tag tag = tagService.findByTagUrl(tagUrl); + final Tag tag = tagService.findByTagUrl(tagUrl); if (null != tag) { return new JsonResult(ResponseStatusEnum.SUCCESS.getCode(), ResponseStatusEnum.SUCCESS.getMsg(), tag); } else { diff --git a/src/main/java/cc/ryanc/halo/web/controller/api/ApiUserController.java b/src/main/java/cc/ryanc/halo/web/controller/api/ApiUserController.java index edf679246..ca3bd74d2 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/api/ApiUserController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/api/ApiUserController.java @@ -50,7 +50,7 @@ public class ApiUserController { */ @GetMapping public JsonResult user() { - User user = userService.findUser(); + final User user = userService.findUser(); return new JsonResult(ResponseStatusEnum.SUCCESS.getCode(), ResponseStatusEnum.SUCCESS.getMsg(), user); } } 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 1b02f573c..2c28ebaf2 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 @@ -1,41 +1,41 @@ -package cc.ryanc.halo.web.controller.core; - -import cn.hutool.core.text.StrBuilder; - -/** - *
- *     Controller抽象类
- * 
- * - * @author : RYAN0UP - * @date : 2017/12/15 - */ -public abstract class BaseController { - - /** - * 定义默认主题 - */ - public static String THEME = "anatole"; - - /** - * 根据主题名称渲染页面 - * - * @param pageName pageName - * @return 返回拼接好的模板路径 - */ - public String render(String pageName) { - StrBuilder themeStr = new StrBuilder("themes/"); - themeStr.append(THEME); - themeStr.append("/"); - return themeStr.append(pageName).toString(); - } - - /** - * 渲染404页面 - * - * @return redirect:/404 - */ - public String renderNotFound() { - return "redirect:/404"; - } -} +package cc.ryanc.halo.web.controller.core; + +import cn.hutool.core.text.StrBuilder; + +/** + *
+ *     Controller抽象类
+ * 
+ * + * @author : RYAN0UP + * @date : 2017/12/15 + */ +public abstract class BaseController { + + /** + * 定义默认主题 + */ + public static String THEME = "anatole"; + + /** + * 根据主题名称渲染页面 + * + * @param pageName pageName + * @return 返回拼接好的模板路径 + */ + public String render(String pageName) { + final StrBuilder themeStr = new StrBuilder("themes/"); + themeStr.append(THEME); + themeStr.append("/"); + return themeStr.append(pageName).toString(); + } + + /** + * 渲染404页面 + * + * @return redirect:/404 + */ + public String renderNotFound() { + return "redirect:/404"; + } +} 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 c86e1295d..43b6f1afa 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 @@ -1,72 +1,72 @@ -package cc.ryanc.halo.web.controller.core; - -import cc.ryanc.halo.model.enums.CommonParamsEnum; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.web.servlet.error.ErrorController; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; - -import javax.servlet.http.HttpServletRequest; - -/** - *
- *     错误页面控制器
- * 
- * - * @author : RYAN0UP - * @date : 2017/12/26 - */ -@Slf4j -@Controller -public class CommonController implements ErrorController { - - private static final String ERROR_PATH = "/error"; - - /** - * 渲染404,500 - * - * @param request request - * @return String - */ - @GetMapping(value = ERROR_PATH) - public String handleError(HttpServletRequest request) { - Integer statusCode = (Integer) request.getAttribute("javax.servlet.error.status_code"); - if (statusCode.equals(CommonParamsEnum.NOT_FOUND.getValue())) { - return "redirect:/404"; - } else { - return "redirect:/500"; - } - } - - /** - * 渲染404页面 - * - * @param model model - * @return String - */ - @GetMapping(value = "/404") - public String fourZeroFour() { - return "common/error/404"; - } - - /** - * 渲染500页面 - * - * @param model model - * @return String - */ - @GetMapping(value = "/500") - public String fiveZeroZero() { - return "common/error/500"; - } - - /** - * Returns the path of the error page. - * - * @return the error path - */ - @Override - public String getErrorPath() { - return ERROR_PATH; - } -} +package cc.ryanc.halo.web.controller.core; + +import cc.ryanc.halo.model.enums.CommonParamsEnum; +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.web.servlet.error.ErrorController; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; + +import javax.servlet.http.HttpServletRequest; + +/** + *
+ *     错误页面控制器
+ * 
+ * + * @author : RYAN0UP + * @date : 2017/12/26 + */ +@Slf4j +@Controller +public class CommonController implements ErrorController { + + private static final String ERROR_PATH = "/error"; + + /** + * 渲染404,500 + * + * @param request request + * @return String + */ + @GetMapping(value = ERROR_PATH) + public String handleError(HttpServletRequest request) { + final Integer statusCode = (Integer) request.getAttribute("javax.servlet.error.status_code"); + if (statusCode.equals(CommonParamsEnum.NOT_FOUND.getValue())) { + return "redirect:/404"; + } else { + return "redirect:/500"; + } + } + + /** + * 渲染404页面 + * + * @param model model + * @return String + */ + @GetMapping(value = "/404") + public String fourZeroFour() { + return "common/error/404"; + } + + /** + * 渲染500页面 + * + * @param model model + * @return String + */ + @GetMapping(value = "/500") + public String fiveZeroZero() { + return "common/error/500"; + } + + /** + * Returns the path of the error page. + * + * @return the error path + */ + @Override + public String getErrorPath() { + return ERROR_PATH; + } +} 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 0ddb90b5d..32478c3c8 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 @@ -110,7 +110,7 @@ public class InstallController { return new JsonResult(ResultCodeEnum.FAIL.getCode(), "该博客已初始化,不能再次安装!"); } //创建新的用户 - User user = new User(); + final User user = new User(); user.setUserName(userName); if (StrUtil.isBlank(userDisplayName)) { userDisplayName = userName; @@ -121,15 +121,15 @@ public class InstallController { userService.save(user); //默认分类 - Category category = new Category(); + final Category category = new Category(); category.setCateName("未分类"); category.setCateUrl("default"); category.setCateDesc("未分类"); categoryService.save(category); //第一篇文章 - Post post = new Post(); - List categories = new ArrayList<>(); + final Post post = new Post(); + final List categories = new ArrayList<>(); categories.add(category); post.setPostTitle("Hello Halo!"); post.setPostContentMd("# Hello Halo!\n" + @@ -145,7 +145,7 @@ public class InstallController { postService.save(post); //第一个评论 - Comment comment = new Comment(); + final Comment comment = new Comment(); comment.setPost(post); comment.setCommentAuthor("ruibaby"); comment.setCommentAuthorEmail("i@ryanc.cc"); @@ -159,7 +159,7 @@ public class InstallController { comment.setIsAdmin(0); commentService.save(comment); - Map options = new HashMap<>(); + final Map options = new HashMap<>(); options.put(BlogPropertiesEnum.IS_INSTALL.getProp(), TrueFalseEnum.TRUE.getDesc()); options.put(BlogPropertiesEnum.BLOG_LOCALE.getProp(), blogLocale); options.put(BlogPropertiesEnum.BLOG_TITLE.getProp(), blogTitle); @@ -176,14 +176,14 @@ public class InstallController { //更新日志 logsService.save(LogsRecord.INSTALL, "安装成功,欢迎使用Halo。", request); - Menu menuIndex = new Menu(); + final Menu menuIndex = new Menu(); menuIndex.setMenuName("首页"); menuIndex.setMenuUrl("/"); menuIndex.setMenuSort(1); menuIndex.setMenuIcon(" "); menuService.save(menuIndex); - Menu menuArchive = new Menu(); + final Menu menuArchive = new Menu(); menuArchive.setMenuName("归档"); menuArchive.setMenuUrl("/archives"); menuArchive.setMenuSort(2); diff --git a/src/main/java/cc/ryanc/halo/web/controller/front/FrontArchiveController.java b/src/main/java/cc/ryanc/halo/web/controller/front/FrontArchiveController.java index 84b37b4df..e2c4e2241 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/front/FrontArchiveController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/front/FrontArchiveController.java @@ -74,9 +74,9 @@ public class FrontArchiveController extends BaseController { @PathVariable(value = "page") Integer page) { //所有文章数据,分页,material主题适用 - Sort sort = new Sort(Sort.Direction.DESC, "postDate"); - Pageable pageable = PageRequest.of(page - 1, 5, sort); - Page posts = postService.findPostByStatus(PostStatusEnum.PUBLISHED.getCode(), PostTypeEnum.POST_TYPE_POST.getDesc(), pageable); + final Sort sort = new Sort(Sort.Direction.DESC, "postDate"); + final Pageable pageable = PageRequest.of(page - 1, 5, sort); + final Page posts = postService.findPostByStatus(PostStatusEnum.PUBLISHED.getCode(), PostTypeEnum.POST_TYPE_POST.getDesc(), pageable); if (null == posts) { return this.renderNotFound(); } @@ -98,7 +98,7 @@ public class FrontArchiveController extends BaseController { public String archives(Model model, @PathVariable(value = "year") String year, @PathVariable(value = "month") String month) { - Page posts = postService.findPostByYearAndMonth(year, month, null); + final Page posts = postService.findPostByYearAndMonth(year, month, null); if (null == posts) { return this.renderNotFound(); } @@ -119,16 +119,16 @@ public class FrontArchiveController extends BaseController { public String getPost(@PathVariable String postUrl, @RequestParam(value = "cp", defaultValue = "1") Integer cp, Model model) { - Post post = postService.findByPostUrl(postUrl, PostTypeEnum.POST_TYPE_POST.getDesc()); + final Post post = postService.findByPostUrl(postUrl, PostTypeEnum.POST_TYPE_POST.getDesc()); if (null == post || !post.getPostStatus().equals(PostStatusEnum.PUBLISHED.getCode())) { return this.renderNotFound(); } //获得当前文章的发布日期 - Date postDate = post.getPostDate(); + final Date postDate = post.getPostDate(); //查询当前文章日期之前的所有文章 - List beforePosts = postService.findByPostDateBefore(postDate); + final List beforePosts = postService.findByPostDateBefore(postDate); //查询当前文章日期之后的所有文章 - List afterPosts = postService.findByPostDateAfter(postDate); + final List afterPosts = postService.findByPostDateAfter(postDate); if (null != beforePosts && beforePosts.size() > 0) { model.addAttribute("beforePost", beforePosts.get(beforePosts.size() - 1)); @@ -143,8 +143,8 @@ public class FrontArchiveController extends BaseController { comments = commentService.findCommentsByPostAndCommentStatusNot(post, CommentStatusEnum.RECYCLE.getCode()); } //获取文章的标签用作keywords - List tags = post.getTags(); - List tagWords = new ArrayList<>(); + final List tags = post.getTags(); + final List tagWords = new ArrayList<>(); if (tags != null) { for (Tag tag : tags) { tagWords.add(tag.getTagName()); @@ -157,8 +157,8 @@ public class FrontArchiveController extends BaseController { size = Integer.parseInt(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_COMMENTS.getProp())); } //评论分页 - ListPage commentsPage = new ListPage(CommentUtil.getComments(comments), cp, size); - int[] rainbow = PageUtil.rainbow(cp, commentsPage.getTotalPage(), 3); + final ListPage commentsPage = new ListPage(CommentUtil.getComments(comments), cp, size); + final int[] rainbow = PageUtil.rainbow(cp, commentsPage.getTotalPage(), 3); model.addAttribute("is_post", true); model.addAttribute("post", post); model.addAttribute("comments", commentsPage); diff --git a/src/main/java/cc/ryanc/halo/web/controller/front/FrontCategoryController.java b/src/main/java/cc/ryanc/halo/web/controller/front/FrontCategoryController.java index 5bbb9d1a2..c0c385111 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/front/FrontCategoryController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/front/FrontCategoryController.java @@ -44,11 +44,12 @@ public class FrontCategoryController extends BaseController { * 分类列表页面 * * @param model model + * * @return String */ @GetMapping public String categories(Model model) { - List categories = categoryService.findAll(); + final List categories = categoryService.findAll(); model.addAttribute("categories", categories); return this.render("categories"); } @@ -58,6 +59,7 @@ public class FrontCategoryController extends BaseController { * * @param model model * @param cateUrl cateUrl + * * @return string */ @GetMapping(value = "{cateUrl}") @@ -72,25 +74,26 @@ public class FrontCategoryController extends BaseController { * @param model model * @param cateUrl 分类目录路径 * @param page 页码 + * * @return String */ @GetMapping("{cateUrl}/page/{page}") public String categories(Model model, @PathVariable("cateUrl") String cateUrl, @PathVariable("page") Integer page) { - Category category = categoryService.findByCateUrl(cateUrl); + final Category category = categoryService.findByCateUrl(cateUrl); if (null == category) { return this.renderNotFound(); } - Sort sort = new Sort(Sort.Direction.DESC, "postDate"); - Integer size = 10; + final Sort sort = new Sort(Sort.Direction.DESC, "postDate"); + int size = 10; if (StrUtil.isNotBlank(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp()))) { size = Integer.parseInt(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp())); } - Pageable pageable = PageRequest.of(page - 1, size, sort); - Page posts = postService.findPostByCategories(category, pageable); - int[] rainbow = PageUtil.rainbow(page, posts.getTotalPages(), 3); - model.addAttribute("is_categories",true); + final Pageable pageable = PageRequest.of(page - 1, size, sort); + final Page posts = postService.findPostByCategories(category, pageable); + final int[] rainbow = PageUtil.rainbow(page, posts.getTotalPages(), 3); + model.addAttribute("is_categories", true); model.addAttribute("posts", posts); model.addAttribute("rainbow", rainbow); model.addAttribute("category", category); diff --git a/src/main/java/cc/ryanc/halo/web/controller/front/FrontCommentController.java b/src/main/java/cc/ryanc/halo/web/controller/front/FrontCommentController.java index 9b9d689b4..d8a16fbb5 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/front/FrontCommentController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/front/FrontCommentController.java @@ -65,15 +65,16 @@ public class FrontCommentController { * 获取文章的评论 * * @param postId postId 文章编号 + * * @return List */ @GetMapping(value = "/getComment/{postId}", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @ResponseBody public List getComment(@PathVariable Long postId) { - Optional post = postService.findByPostId(postId); - Sort sort = new Sort(Sort.Direction.DESC, "commentDate"); - Pageable pageable = PageRequest.of(0, 999, sort); - List comments = commentService.findCommentsByPostAndCommentStatus(post.get(), pageable, CommentStatusEnum.PUBLISHED.getCode()).getContent(); + final Optional post = postService.findByPostId(postId); + final Sort sort = new Sort(Sort.Direction.DESC, "commentDate"); + final Pageable pageable = PageRequest.of(0, 999, sort); + final List comments = commentService.findCommentsByPostAndCommentStatus(post.orElse(new Post()), pageable, CommentStatusEnum.PUBLISHED.getCode()).getContent(); return CommentUtil.getComments(comments); } @@ -82,15 +83,16 @@ public class FrontCommentController { * * @param page 页码 * @param post 当前文章 + * * @return List */ @GetMapping(value = "/loadComment") @ResponseBody public List loadComment(@RequestParam(value = "page") Integer page, @RequestParam(value = "post") Post post) { - Sort sort = new Sort(Sort.Direction.DESC, "commentDate"); - Pageable pageable = PageRequest.of(page - 1, 10, sort); - List comments = commentService.findCommentsByPostAndCommentStatus(post, pageable, CommentStatusEnum.PUBLISHED.getCode()).getContent(); + final Sort sort = new Sort(Sort.Direction.DESC, "commentDate"); + final Pageable pageable = PageRequest.of(page - 1, 10, sort); + final List comments = commentService.findCommentsByPostAndCommentStatus(post, pageable, CommentStatusEnum.PUBLISHED.getCode()).getContent(); return comments; } @@ -100,6 +102,7 @@ public class FrontCommentController { * @param comment comment实体 * @param post post实体 * @param request request + * * @return JsonResult */ @PostMapping(value = "/newComment") @@ -115,7 +118,7 @@ public class FrontCommentController { } try { Comment lastComment = null; - post = postService.findByPostId(post.getPostId()).get(); + post = postService.findByPostId(post.getPostId()).orElse(new Post()); comment.setCommentAuthorEmail(HtmlUtil.escape(comment.getCommentAuthorEmail()).toLowerCase()); comment.setPost(post); comment.setCommentDate(DateUtil.date()); @@ -126,8 +129,8 @@ public class FrontCommentController { comment.setCommentAuthorAvatarMd5(SecureUtil.md5(comment.getCommentAuthorEmail())); } if (comment.getCommentParent() > 0) { - lastComment = commentService.findCommentById(comment.getCommentParent()).get(); - StrBuilder buildContent = new StrBuilder("@"); buildContent.append(lastComment.getCommentAuthor()); @@ -175,8 +178,8 @@ public class FrontCommentController { if (StrUtil.equals(HaloConst.OPTIONS.get(BlogPropertiesEnum.SMTP_EMAIL_ENABLE.getProp()), TrueFalseEnum.TRUE.getDesc()) && StrUtil.equals(HaloConst.OPTIONS.get(BlogPropertiesEnum.NEW_COMMENT_NOTICE.getProp()), TrueFalseEnum.TRUE.getDesc())) { try { //发送邮件到博主 - Map map = new HashMap<>(5); - StrBuilder pageUrl = new StrBuilder(HaloConst.OPTIONS.get(BlogPropertiesEnum.BLOG_URL.getProp())); + final Map map = new HashMap<>(5); + final StrBuilder pageUrl = new StrBuilder(HaloConst.OPTIONS.get(BlogPropertiesEnum.BLOG_URL.getProp())); if (StrUtil.equals(post.getPostType(), PostTypeEnum.POST_TYPE_POST.getDesc())) { pageUrl.append("/archives/"); } else { @@ -217,8 +220,8 @@ public class FrontCommentController { //发送通知给对方 if (StrUtil.equals(HaloConst.OPTIONS.get(BlogPropertiesEnum.SMTP_EMAIL_ENABLE.getProp()), TrueFalseEnum.TRUE.getDesc()) && StrUtil.equals(HaloConst.OPTIONS.get(BlogPropertiesEnum.NEW_COMMENT_NOTICE.getProp()), TrueFalseEnum.TRUE.getDesc())) { if (Validator.isEmail(lastComment.getCommentAuthorEmail())) { - Map map = new HashMap<>(8); - StrBuilder pageUrl = new StrBuilder(HaloConst.OPTIONS.get(BlogPropertiesEnum.BLOG_URL.getProp())); + final Map map = new HashMap<>(8); + final StrBuilder pageUrl = new StrBuilder(HaloConst.OPTIONS.get(BlogPropertiesEnum.BLOG_URL.getProp())); if (StrUtil.equals(post.getPostType(), PostTypeEnum.POST_TYPE_POST.getDesc())) { pageUrl.append("/archives/"); @@ -228,7 +231,7 @@ public class FrontCommentController { pageUrl.append(post.getPostUrl()); pageUrl.append("#comment-id-"); pageUrl.append(comment.getCommentId()); - map.put("pageUrl", pageUrl.toString()); + map.put("pageUrl", pageUrl.toString()); map.put("blogTitle", HaloConst.OPTIONS.get(BlogPropertiesEnum.BLOG_TITLE.getProp())); map.put("commentAuthor", lastComment.getCommentAuthor()); map.put("pageName", lastComment.getPost().getPostTitle()); diff --git a/src/main/java/cc/ryanc/halo/web/controller/front/FrontIndexController.java b/src/main/java/cc/ryanc/halo/web/controller/front/FrontIndexController.java index fad513ced..d8d3bbaea 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/front/FrontIndexController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/front/FrontIndexController.java @@ -60,20 +60,19 @@ public class FrontIndexController extends BaseController { @GetMapping(value = "page/{page}") public String index(Model model, @PathVariable(value = "page") Integer page) { - Sort sort = new Sort(Sort.Direction.DESC, "postDate"); + final Sort sort = new Sort(Sort.Direction.DESC, "postDate"); //默认显示10条 int size = 10; - //尝试加载设置选项,用于设置显示条数 if (StrUtil.isNotBlank(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp()))) { size = Integer.parseInt(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp())); } //所有文章数据,分页 - Pageable pageable = PageRequest.of(page - 1, size, sort); - Page posts = postService.findPostByStatus(pageable); + final Pageable pageable = PageRequest.of(page - 1, size, sort); + final Page posts = postService.findPostByStatus(pageable); if (null == posts) { return this.renderNotFound(); } - int[] rainbow = PageUtil.rainbow(page, posts.getTotalPages(), 3); + final int[] rainbow = PageUtil.rainbow(page, posts.getTotalPages(), 3); model.addAttribute("is_index",true); model.addAttribute("posts", posts); model.addAttribute("rainbow", rainbow); @@ -89,7 +88,7 @@ public class FrontIndexController extends BaseController { */ @GetMapping(value = "search") public String search(@RequestParam("keyword") String keyword, Model model) { - Page posts = postService.searchByKeywords(keyword, null); + final Page posts = postService.searchByKeywords(keyword, null); model.addAttribute("posts", posts); return this.render("index"); } diff --git a/src/main/java/cc/ryanc/halo/web/controller/front/FrontOthersController.java b/src/main/java/cc/ryanc/halo/web/controller/front/FrontOthersController.java index 385cb1fbe..5090cda14 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/front/FrontOthersController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/front/FrontOthersController.java @@ -44,10 +44,10 @@ public class FrontOthersController { rssPosts = "20"; } //获取文章列表并根据时间排序 - Sort sort = new Sort(Sort.Direction.DESC, "postDate"); - Pageable pageable = PageRequest.of(0, Integer.parseInt(rssPosts), sort); - Page postsPage = postService.findPostByStatus(0, PostTypeEnum.POST_TYPE_POST.getDesc(), pageable); - List posts = postsPage.getContent(); + final Sort sort = new Sort(Sort.Direction.DESC, "postDate"); + final Pageable pageable = PageRequest.of(0, Integer.parseInt(rssPosts), sort); + final Page postsPage = postService.findPostByStatus(0, PostTypeEnum.POST_TYPE_POST.getDesc(), pageable); + final List posts = postsPage.getContent(); return postService.buildRss(posts); } @@ -60,10 +60,10 @@ public class FrontOthersController { @ResponseBody public String siteMap() { //获取文章列表并根据时间排序 - Sort sort = new Sort(Sort.Direction.DESC, "postDate"); - Pageable pageable = PageRequest.of(0, 999, sort); - Page postsPage = postService.findPostByStatus(0, PostTypeEnum.POST_TYPE_POST.getDesc(), pageable); - List posts = postsPage.getContent(); + final Sort sort = new Sort(Sort.Direction.DESC, "postDate"); + final Pageable pageable = PageRequest.of(0, 999, sort); + final Page postsPage = postService.findPostByStatus(0, PostTypeEnum.POST_TYPE_POST.getDesc(), pageable); + final List posts = postsPage.getContent(); return postService.buildSiteMap(posts); } } diff --git a/src/main/java/cc/ryanc/halo/web/controller/front/FrontPageController.java b/src/main/java/cc/ryanc/halo/web/controller/front/FrontPageController.java index 17947e4f2..c46bcd552 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/front/FrontPageController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/front/FrontPageController.java @@ -49,7 +49,7 @@ public class FrontPageController extends BaseController { */ @GetMapping(value = "/gallery") public String gallery(Model model) { - List galleries = galleryService.findAll(); + final List galleries = galleryService.findAll(); model.addAttribute("galleries", galleries); return this.render("gallery"); } @@ -76,7 +76,7 @@ public class FrontPageController extends BaseController { public String getPage(@PathVariable(value = "postUrl") String postUrl, @RequestParam(value = "cp", defaultValue = "1") Integer cp, Model model) { - Post post = postService.findByPostUrl(postUrl, PostTypeEnum.POST_TYPE_PAGE.getDesc()); + final Post post = postService.findByPostUrl(postUrl, PostTypeEnum.POST_TYPE_PAGE.getDesc()); if (null == post || !post.getPostStatus().equals(PostStatusEnum.PUBLISHED.getCode())) { return this.renderNotFound(); } @@ -88,13 +88,12 @@ public class FrontPageController extends BaseController { } //默认显示10条 int size = 10; - //获取每页评论条数 if (StrUtil.isNotBlank(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_COMMENTS.getProp()))) { size = Integer.parseInt(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_COMMENTS.getProp())); } //评论分页 - ListPage commentsPage = new ListPage(CommentUtil.getComments(comments), cp, size); - int[] rainbow = PageUtil.rainbow(cp, commentsPage.getTotalPage(), 3); + final ListPage commentsPage = new ListPage(CommentUtil.getComments(comments), cp, size); + final int[] rainbow = PageUtil.rainbow(cp, commentsPage.getTotalPage(), 3); model.addAttribute("is_page", true); model.addAttribute("post", post); model.addAttribute("comments", commentsPage); diff --git a/src/main/java/cc/ryanc/halo/web/controller/front/FrontTagController.java b/src/main/java/cc/ryanc/halo/web/controller/front/FrontTagController.java index e38e8ee1f..fce93bbd2 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/front/FrontTagController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/front/FrontTagController.java @@ -53,6 +53,7 @@ public class FrontTagController extends BaseController { * * @param tagUrl 标签路径 * @param model model + * * @return String */ @GetMapping(value = "{tagUrl}") @@ -67,25 +68,26 @@ public class FrontTagController extends BaseController { * @param model model * @param tagUrl 标签路径 * @param page 页码 + * * @return String */ @GetMapping(value = "{tagUrl}/page/{page}") public String tags(Model model, @PathVariable("tagUrl") String tagUrl, @PathVariable("page") Integer page) { - Tag tag = tagService.findByTagUrl(tagUrl); - if(null==tag){ + final Tag tag = tagService.findByTagUrl(tagUrl); + if (null == tag) { return this.renderNotFound(); } - Sort sort = new Sort(Sort.Direction.DESC, "postDate"); - Integer size = 10; + final Sort sort = new Sort(Sort.Direction.DESC, "postDate"); + int size = 10; if (StrUtil.isNotBlank(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp()))) { size = Integer.parseInt(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp())); } - Pageable pageable = PageRequest.of(page - 1, size, sort); - Page posts = postService.findPostsByTags(tag, pageable); - int[] rainbow = PageUtil.rainbow(page, posts.getTotalPages(), 3); - model.addAttribute("is_tags",true); + final Pageable pageable = PageRequest.of(page - 1, size, sort); + final Page posts = postService.findPostsByTags(tag, pageable); + final int[] rainbow = PageUtil.rainbow(page, posts.getTotalPages(), 3); + model.addAttribute("is_tags", true); model.addAttribute("posts", posts); model.addAttribute("rainbow", rainbow); model.addAttribute("tag", tag); diff --git a/src/main/java/cc/ryanc/halo/web/interceptor/ApiInterceptor.java b/src/main/java/cc/ryanc/halo/web/interceptor/ApiInterceptor.java index 3f5f931ac..89841c385 100644 --- a/src/main/java/cc/ryanc/halo/web/interceptor/ApiInterceptor.java +++ b/src/main/java/cc/ryanc/halo/web/interceptor/ApiInterceptor.java @@ -25,10 +25,12 @@ import java.util.Map; @Component public class ApiInterceptor implements HandlerInterceptor { + private static final String TOKEN = "token"; + @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { if (StrUtil.equals(TrueFalseEnum.TRUE.getDesc(), HaloConst.OPTIONS.get(BlogPropertiesEnum.API_STATUS.getProp()))) { - if (StrUtil.equals(request.getHeader("token"), HaloConst.OPTIONS.get(BlogPropertiesEnum.API_TOKEN.getProp()))) { + if (StrUtil.equals(request.getHeader(TOKEN), HaloConst.OPTIONS.get(BlogPropertiesEnum.API_TOKEN.getProp()))) { return true; } else { response.setCharacterEncoding("UTF-8"); diff --git a/src/main/java/cc/ryanc/halo/web/interceptor/LocaleInterceptor.java b/src/main/java/cc/ryanc/halo/web/interceptor/LocaleInterceptor.java index bae4a1dc8..73b301ecb 100644 --- a/src/main/java/cc/ryanc/halo/web/interceptor/LocaleInterceptor.java +++ b/src/main/java/cc/ryanc/halo/web/interceptor/LocaleInterceptor.java @@ -23,6 +23,10 @@ public class LocaleInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + final Object attribute = request.getSession().getAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME); + if (null != attribute) { + return true; + } if (StrUtil.equals(LocaleEnum.EN_US.getValue(), HaloConst.OPTIONS.get(BlogPropertiesEnum.BLOG_LOCALE.getProp()))) { request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, new Locale("en", "US")); } else { 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 4eab588e7..11e618b4c 100755 --- a/src/main/java/cc/ryanc/halo/web/interceptor/LoginInterceptor.java +++ b/src/main/java/cc/ryanc/halo/web/interceptor/LoginInterceptor.java @@ -21,7 +21,7 @@ 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); + final Object obj = request.getSession().getAttribute(HaloConst.USER_SESSION_KEY); //如果user不为空则放行 if (null != obj) { return true; diff --git a/src/main/resources/templates/admin/admin_page_md_editor.ftl b/src/main/resources/templates/admin/admin_page_md_editor.ftl index 7c0e48fe0..ce128cc36 100755 --- a/src/main/resources/templates/admin/admin_page_md_editor.ftl +++ b/src/main/resources/templates/admin/admin_page_md_editor.ftl @@ -159,7 +159,7 @@ autofocus: true, autosave: { enabled: true, - uniqueId: "editor-temp-page-<#if post??>${post.postId}<#else>1", + uniqueId: "editor-temp-page-<#if post??>${post.postId?c}<#else>1", delay: 10000 }, renderingConfig: { diff --git a/src/main/resources/templates/admin/admin_post_edit.ftl b/src/main/resources/templates/admin/admin_post_edit.ftl index b35609de0..b11def893 100644 --- a/src/main/resources/templates/admin/admin_post_edit.ftl +++ b/src/main/resources/templates/admin/admin_post_edit.ftl @@ -177,7 +177,7 @@ autofocus: true, autosave: { enabled: true, - uniqueId: "editor-temp-${post.postId!}", + uniqueId: "editor-temp-${post.postId?c}", delay: 10000 }, renderingConfig: {