🎨 代码优化

pull/137/head
ruibaby 2019-03-09 11:30:38 +08:00
parent 4f00dace1e
commit 590a0ffa6c
11 changed files with 148 additions and 31 deletions

View File

@ -0,0 +1,28 @@
package cc.ryanc.halo.model.dto;
import cc.ryanc.halo.model.domain.Comment;
import cc.ryanc.halo.model.domain.Post;
import cc.ryanc.halo.model.dto.base.AbstractOutputConverter;
import lombok.Data;
import java.util.Date;
/**
* @author : RYAN0UP
* @date : 2019-03-09
*/
@Data
public class CommentViewOutputDTO extends AbstractOutputConverter<CommentViewOutputDTO, Comment> {
private Long commentId;
private Post post;
private String commentAuthor;
private Date commentDate;
private String commentContent;
private Integer commentStatus;
}

View File

@ -0,0 +1,35 @@
package cc.ryanc.halo.model.dto;
import cc.ryanc.halo.model.domain.Comment;
import cc.ryanc.halo.model.domain.Post;
import cc.ryanc.halo.model.dto.base.AbstractOutputConverter;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @author : RYAN0UP
* @date : 2019-03-09
*/
@Data
public class PageAdminOutputDTO extends AbstractOutputConverter<PageAdminOutputDTO, Post> {
private Long postId;
private String postTitle;
private String postType;
private String postUrl;
private List<Comment> comments;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private Date postDate;
private Integer postStatus;
private Long postViews;
}

View File

@ -3,6 +3,7 @@ package cc.ryanc.halo.model.dto;
import cc.ryanc.halo.model.domain.*; import cc.ryanc.halo.model.domain.*;
import cc.ryanc.halo.model.dto.base.AbstractOutputConverter; import cc.ryanc.halo.model.dto.base.AbstractOutputConverter;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -12,6 +13,7 @@ import java.util.List;
* *
* @author johnniang * @author johnniang
*/ */
@Data
public class PostDetailOutputDTO extends AbstractOutputConverter<PostDetailOutputDTO, Post> { public class PostDetailOutputDTO extends AbstractOutputConverter<PostDetailOutputDTO, Post> {
private Long postId; private Long postId;

View File

@ -0,0 +1,27 @@
package cc.ryanc.halo.model.dto;
import cc.ryanc.halo.model.domain.Post;
import cc.ryanc.halo.model.dto.base.AbstractOutputConverter;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
/**
* @author : RYAN0UP
* @date : 2019-03-09
*/
@Data
public class PostViewOutputDTO extends AbstractOutputConverter<PostViewOutputDTO, Post> {
private Long postId;
private String postTitle;
private String postUrl;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date postDate;
private Integer postStatus;
}

View File

@ -2,6 +2,8 @@ package cc.ryanc.halo.web.controller.admin;
import cc.ryanc.halo.logging.Logger; import cc.ryanc.halo.logging.Logger;
import cc.ryanc.halo.model.domain.*; import cc.ryanc.halo.model.domain.*;
import cc.ryanc.halo.model.dto.CommentViewOutputDTO;
import cc.ryanc.halo.model.dto.PostViewOutputDTO;
import cc.ryanc.halo.model.enums.*; import cc.ryanc.halo.model.enums.*;
import cc.ryanc.halo.model.params.PasswordResetParam; import cc.ryanc.halo.model.params.PasswordResetParam;
import cc.ryanc.halo.model.support.JsonResult; import cc.ryanc.halo.model.support.JsonResult;
@ -34,6 +36,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import java.io.IOException; import java.io.IOException;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
import static cc.ryanc.halo.model.support.HaloConst.OPTIONS; import static cc.ryanc.halo.model.support.HaloConst.OPTIONS;
import static cc.ryanc.halo.model.support.HaloConst.USER_SESSION_KEY; import static cc.ryanc.halo.model.support.HaloConst.USER_SESSION_KEY;
@ -97,18 +100,6 @@ public class AdminController extends BaseController {
final Long commentCount = commentService.count(); final Long commentCount = commentService.count();
model.addAttribute("commentCount", commentCount); model.addAttribute("commentCount", commentCount);
//查询最新的文章
final List<Post> postsLatest = postService.findPostLatest();
model.addAttribute("postTopFive", postsLatest);
//查询最新的日志
final List<Logs> logsLatest = logsService.findLogsLatest();
model.addAttribute("logs", logsLatest);
//查询最新的评论
final List<Comment> comments = commentService.findCommentsLatest();
model.addAttribute("comments", comments);
//附件数量 //附件数量
model.addAttribute("mediaCount", attachmentService.count()); model.addAttribute("mediaCount", attachmentService.count());
@ -116,6 +107,24 @@ public class AdminController extends BaseController {
final Long postViewsSum = postService.getPostViews(); final Long postViewsSum = postService.getPostViews();
model.addAttribute("postViewsSum", postViewsSum); model.addAttribute("postViewsSum", postViewsSum);
//查询最新的文章
final List<PostViewOutputDTO> postsLatest = postService.findPostLatest()
.stream()
.map(post -> new PostViewOutputDTO().convertFrom(post))
.collect(Collectors.toList());
model.addAttribute("postsLatest", postsLatest);
//查询最新的日志
final List<Logs> logsLatest = logsService.findLogsLatest();
model.addAttribute("logsLatest", logsLatest);
//查询最新的评论
final List<CommentViewOutputDTO> commentsLatest = commentService.findCommentsLatest()
.stream()
.map(comment -> new CommentViewOutputDTO().convertFrom(comment))
.collect(Collectors.toList());
model.addAttribute("commentsLatest", commentsLatest);
//成立天数 //成立天数
final Date blogStart = DateUtil.parse(OPTIONS.get(BlogPropertiesEnum.BLOG_START.getProp())); final Date blogStart = DateUtil.parse(OPTIONS.get(BlogPropertiesEnum.BLOG_START.getProp()));
final long hadDays = DateUtil.between(blogStart, DateUtil.date(), DateUnit.DAY); final long hadDays = DateUtil.between(blogStart, DateUtil.date(), DateUnit.DAY);

View File

@ -1,10 +1,10 @@
package cc.ryanc.halo.web.controller.admin; package cc.ryanc.halo.web.controller.admin;
import cc.ryanc.halo.model.domain.Attachment; import cc.ryanc.halo.model.domain.Attachment;
import cc.ryanc.halo.model.support.JsonResult;
import cc.ryanc.halo.model.support.LogsRecord;
import cc.ryanc.halo.model.enums.PostTypeEnum; import cc.ryanc.halo.model.enums.PostTypeEnum;
import cc.ryanc.halo.model.enums.ResultCodeEnum; import cc.ryanc.halo.model.enums.ResultCodeEnum;
import cc.ryanc.halo.model.support.JsonResult;
import cc.ryanc.halo.model.support.LogsRecord;
import cc.ryanc.halo.service.AttachmentService; import cc.ryanc.halo.service.AttachmentService;
import cc.ryanc.halo.service.LogsService; import cc.ryanc.halo.service.LogsService;
import cc.ryanc.halo.utils.LocaleMessageUtil; import cc.ryanc.halo.utils.LocaleMessageUtil;
@ -52,7 +52,7 @@ public class AttachmentController {
private LocaleMessageUtil localeMessageUtil; private LocaleMessageUtil localeMessageUtil;
/** /**
* *
* *
* @param model model * @param model model
* @return admin/admin_attachment * @return admin/admin_attachment

View File

@ -2,6 +2,7 @@ package cc.ryanc.halo.web.controller.admin;
import cc.ryanc.halo.model.domain.Menu; import cc.ryanc.halo.model.domain.Menu;
import cc.ryanc.halo.model.domain.Post; import cc.ryanc.halo.model.domain.Post;
import cc.ryanc.halo.model.dto.PostViewOutputDTO;
import cc.ryanc.halo.model.enums.PostTypeEnum; import cc.ryanc.halo.model.enums.PostTypeEnum;
import cc.ryanc.halo.model.support.JsonResult; import cc.ryanc.halo.model.support.JsonResult;
import cc.ryanc.halo.service.MenuService; import cc.ryanc.halo.service.MenuService;
@ -16,6 +17,7 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* <pre> * <pre>
@ -44,9 +46,12 @@ public class MenuController {
*/ */
@GetMapping @GetMapping
public String menus(Model model) { public String menus(Model model) {
List<Post> posts = postService.findAll(PostTypeEnum.POST_TYPE_PAGE.getDesc()); List<PostViewOutputDTO> posts = postService.findAll(PostTypeEnum.POST_TYPE_PAGE.getDesc())
.stream()
.map(post -> new PostViewOutputDTO().convertFrom(post))
.collect(Collectors.toList());
model.addAttribute("posts",posts); model.addAttribute("posts",posts);
return "/admin/admin_menu"; return "admin/admin_menu";
} }
/** /**
@ -82,7 +87,7 @@ public class MenuController {
public String updateMenu(@RequestParam("menuId") Long menuId, Model model) { public String updateMenu(@RequestParam("menuId") Long menuId, Model model) {
final Menu menu = menuService.fetchById(menuId).orElse(new Menu()); final Menu menu = menuService.fetchById(menuId).orElse(new Menu());
model.addAttribute("updateMenu", menu); model.addAttribute("updateMenu", menu);
return "/admin/admin_menu"; return "admin/admin_menu";
} }
/** /**

View File

@ -4,11 +4,12 @@ import cc.ryanc.halo.model.domain.Gallery;
import cc.ryanc.halo.model.domain.Link; import cc.ryanc.halo.model.domain.Link;
import cc.ryanc.halo.model.domain.Post; import cc.ryanc.halo.model.domain.Post;
import cc.ryanc.halo.model.domain.User; import cc.ryanc.halo.model.domain.User;
import cc.ryanc.halo.model.support.JsonResult; import cc.ryanc.halo.model.dto.PageAdminOutputDTO;
import cc.ryanc.halo.model.support.LogsRecord;
import cc.ryanc.halo.model.enums.BlogPropertiesEnum; import cc.ryanc.halo.model.enums.BlogPropertiesEnum;
import cc.ryanc.halo.model.enums.PostTypeEnum; import cc.ryanc.halo.model.enums.PostTypeEnum;
import cc.ryanc.halo.model.enums.ResultCodeEnum; import cc.ryanc.halo.model.enums.ResultCodeEnum;
import cc.ryanc.halo.model.support.JsonResult;
import cc.ryanc.halo.model.support.LogsRecord;
import cc.ryanc.halo.service.GalleryService; import cc.ryanc.halo.service.GalleryService;
import cc.ryanc.halo.service.LinkService; import cc.ryanc.halo.service.LinkService;
import cc.ryanc.halo.service.LogsService; import cc.ryanc.halo.service.LogsService;
@ -40,6 +41,7 @@ import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.stream.Collectors;
import static cc.ryanc.halo.model.support.HaloConst.OPTIONS; import static cc.ryanc.halo.model.support.HaloConst.OPTIONS;
import static cc.ryanc.halo.model.support.HaloConst.USER_SESSION_KEY; import static cc.ryanc.halo.model.support.HaloConst.USER_SESSION_KEY;
@ -83,7 +85,10 @@ public class PageController {
*/ */
@GetMapping @GetMapping
public String pages(Model model) { public String pages(Model model) {
final List<Post> posts = postService.findAll(PostTypeEnum.POST_TYPE_PAGE.getDesc()); final List<PageAdminOutputDTO> posts = postService.findAll(PostTypeEnum.POST_TYPE_PAGE.getDesc())
.stream()
.map(post -> new PageAdminOutputDTO().convertFrom(post))
.collect(Collectors.toList());
model.addAttribute("pages", posts); model.addAttribute("pages", posts);
return "admin/admin_page"; return "admin/admin_page";
} }

View File

@ -2,6 +2,7 @@ package cc.ryanc.halo.web.controller.admin;
import cc.ryanc.halo.model.domain.Post; import cc.ryanc.halo.model.domain.Post;
import cc.ryanc.halo.model.domain.User; import cc.ryanc.halo.model.domain.User;
import cc.ryanc.halo.model.dto.PostViewOutputDTO;
import cc.ryanc.halo.model.support.JsonResult; import cc.ryanc.halo.model.support.JsonResult;
import cc.ryanc.halo.model.support.LogsRecord; import cc.ryanc.halo.model.support.LogsRecord;
import cc.ryanc.halo.model.enums.BlogPropertiesEnum; import cc.ryanc.halo.model.enums.BlogPropertiesEnum;
@ -35,6 +36,7 @@ import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.stream.Collectors;
import static cc.ryanc.halo.model.support.HaloConst.OPTIONS; import static cc.ryanc.halo.model.support.HaloConst.OPTIONS;
import static cc.ryanc.halo.model.support.HaloConst.USER_SESSION_KEY; import static cc.ryanc.halo.model.support.HaloConst.USER_SESSION_KEY;
@ -304,9 +306,12 @@ public class PostController extends BaseController {
return JsonResult.fail(localeMessageUtil.getMessage("code.admin.post.no-baidu-token")); return JsonResult.fail(localeMessageUtil.getMessage("code.admin.post.no-baidu-token"));
} }
final String blogUrl = OPTIONS.get(BlogPropertiesEnum.BLOG_URL.getProp()); final String blogUrl = OPTIONS.get(BlogPropertiesEnum.BLOG_URL.getProp());
final List<Post> posts = postService.findAll(PostTypeEnum.POST_TYPE_POST.getDesc()); final List<PostViewOutputDTO> posts = postService.findAll(PostTypeEnum.POST_TYPE_POST.getDesc())
.stream()
.map(post -> new PostViewOutputDTO().convertFrom(post))
.collect(Collectors.toList());
final StringBuilder urls = new StringBuilder(); final StringBuilder urls = new StringBuilder();
for (Post post : posts) { for (PostViewOutputDTO post : posts) {
urls.append(blogUrl); urls.append(blogUrl);
urls.append("/archives/"); urls.append("/archives/");
urls.append(post.getPostUrl()); urls.append(post.getPostUrl());

View File

@ -211,8 +211,8 @@
<th><@spring.message code='common.th.status' /></th> <th><@spring.message code='common.th.status' /></th>
<th><@spring.message code='common.th.date' /></th> <th><@spring.message code='common.th.date' /></th>
</tr> </tr>
<#if postTopFive??> <#if postsLatest??>
<#list postTopFive as post> <#list postsLatest as post>
<tr> <tr>
<#if post.postStatus == 0> <#if post.postStatus == 0>
<td><a target="_blank" href="/archives/${post.postUrl}">${post.postTitle}</a></td> <td><a target="_blank" href="/archives/${post.postUrl}">${post.postTitle}</a></td>
@ -261,8 +261,8 @@
<th><@spring.message code='common.th.status' /></th> <th><@spring.message code='common.th.status' /></th>
<th><@spring.message code='common.th.date' /></th> <th><@spring.message code='common.th.date' /></th>
</tr> </tr>
<#if comments??> <#if commentsLatest??>
<#list comments as comment> <#list commentsLatest as comment>
<tr> <tr>
<td>${comment.commentAuthor}</td> <td>${comment.commentAuthor}</td>
<td> <td>
@ -338,8 +338,8 @@
<th>IP</th> <th>IP</th>
<th><@spring.message code='common.th.date' /></th> <th><@spring.message code='common.th.date' /></th>
</tr> </tr>
<#if logs??> <#if logsLatest??>
<#list logs as log> <#list logsLatest as log>
<tr> <tr>
<td>${log.logTitle}</td> <td>${log.logTitle}</td>
<td>${log.logContent}</td> <td>${log.logContent}</td>

View File

@ -74,7 +74,9 @@
<#list pages as page> <#list pages as page>
<tr> <tr>
<td>${page.postTitle}</td> <td>${page.postTitle}</td>
<td>/p/${page.postUrl}</td> <td>
<a href="/p/${page.postUrl}" target="_blank">/p/${page.postUrl}</a>
</td>
<td> <td>
<span class="label" style="background-color: #d6cdcd;">${page.comments?size}</span> <span class="label" style="background-color: #d6cdcd;">${page.comments?size}</span>
</td> </td>
@ -92,7 +94,6 @@
</td> </td>
<td>${page.postDate?string("yyyy-MM-dd HH:mm")}</td> <td>${page.postDate?string("yyyy-MM-dd HH:mm")}</td>
<td> <td>
<a href="/p/${page.postUrl}" class="btn btn-info btn-xs " target="_blank"><@spring.message code='common.btn.view' /></a>
<a data-pjax="true" href="/admin/page/edit?pageId=${page.postId?c}" class="btn btn-primary btn-xs "><@spring.message code='common.btn.edit' /></a> <a data-pjax="true" href="/admin/page/edit?pageId=${page.postId?c}" class="btn btn-primary btn-xs "><@spring.message code='common.btn.edit' /></a>
<button class="btn btn-danger btn-xs " onclick="modelShow('/admin/posts/remove?postId=${page.postId?c}&postType=${page.postType}','<@spring.message code="common.text.tips.to-delete" />')"><@spring.message code='common.btn.delete' /></button> <button class="btn btn-danger btn-xs " onclick="modelShow('/admin/posts/remove?postId=${page.postId?c}&postType=${page.postType}','<@spring.message code="common.text.tips.to-delete" />')"><@spring.message code='common.btn.delete' /></button>
</td> </td>