complete list latest logs service

pull/137/head
johnniang 2019-03-14 15:32:09 +08:00
parent 5a1327ade7
commit 00d0670ac6
4 changed files with 78 additions and 1 deletions

View File

@ -0,0 +1,46 @@
package cc.ryanc.halo.model.dto;
import cc.ryanc.halo.model.dto.base.OutputConverter;
import cc.ryanc.halo.model.entity.Log;
import cc.ryanc.halo.model.enums.LogType;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import java.util.Date;
@Data
@ToString
@EqualsAndHashCode
public class LogOutputDTO implements OutputConverter<LogOutputDTO, Log> {
/**
* Log id.
*/
private Long id;
/**
*
*/
private String logKey;
/**
*
*/
private LogType type;
/**
*
*/
private String content;
/**
* IP
*/
private String ipAddress;
/**
*
*/
private Date createTime;
}

View File

@ -1,7 +1,9 @@
package cc.ryanc.halo.service; package cc.ryanc.halo.service;
import cc.ryanc.halo.model.dto.LogOutputDTO;
import cc.ryanc.halo.model.entity.Log; import cc.ryanc.halo.model.entity.Log;
import cc.ryanc.halo.service.base.CrudService; import cc.ryanc.halo.service.base.CrudService;
import org.springframework.data.domain.Page;
/** /**
* Log service. * Log service.
@ -10,4 +12,11 @@ import cc.ryanc.halo.service.base.CrudService;
*/ */
public interface LogService extends CrudService<Log, Long> { public interface LogService extends CrudService<Log, Long> {
/**
* Lists latest logs.
*
* @param top top number must not be less than 0
* @return a page of latest logs
*/
Page<LogOutputDTO> listLatest(int top);
} }

View File

@ -1,10 +1,15 @@
package cc.ryanc.halo.service.impl; package cc.ryanc.halo.service.impl;
import cc.ryanc.halo.model.dto.LogOutputDTO;
import cc.ryanc.halo.model.entity.Log; import cc.ryanc.halo.model.entity.Log;
import cc.ryanc.halo.repository.LogRepository; import cc.ryanc.halo.repository.LogRepository;
import cc.ryanc.halo.service.LogService; import cc.ryanc.halo.service.LogService;
import cc.ryanc.halo.service.base.AbstractCrudService; import cc.ryanc.halo.service.base.AbstractCrudService;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
/** /**
* LogService implementation class * LogService implementation class
@ -21,4 +26,15 @@ public class LogServiceImpl extends AbstractCrudService<Log, Long> implements Lo
super(logRepository); super(logRepository);
this.logRepository = logRepository; this.logRepository = logRepository;
} }
@Override
public Page<LogOutputDTO> listLatest(int top) {
Assert.isTrue(top > 0, "Top number must not be less than 0");
// Build page request
PageRequest latestPageable = PageRequest.of(0, top, Sort.by(Sort.Direction.DESC, "createTime"));
// List all
return listAll(latestPageable).map(log -> new LogOutputDTO().convertFrom(log));
}
} }

View File

@ -3,6 +3,7 @@ package cc.ryanc.halo.web.controller.admin;
import cc.ryanc.halo.model.dto.PostSimpleOutputDTO; import cc.ryanc.halo.model.dto.PostSimpleOutputDTO;
import cc.ryanc.halo.service.AttachmentService; import cc.ryanc.halo.service.AttachmentService;
import cc.ryanc.halo.service.CommentService; import cc.ryanc.halo.service.CommentService;
import cc.ryanc.halo.service.LogService;
import cc.ryanc.halo.service.PostService; import cc.ryanc.halo.service.PostService;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -26,12 +27,16 @@ public class AdminController {
private final AttachmentService attachmentService; private final AttachmentService attachmentService;
private final LogService logService;
public AdminController(PostService postService, public AdminController(PostService postService,
CommentService commentService, CommentService commentService,
AttachmentService attachmentService) { AttachmentService attachmentService,
LogService logService) {
this.postService = postService; this.postService = postService;
this.commentService = commentService; this.commentService = commentService;
this.attachmentService = attachmentService; this.attachmentService = attachmentService;
this.logService = logService;
} }
/** /**
@ -50,6 +55,7 @@ public class AdminController {
model.addAttribute("attachmentsCount", attachmentService.count()); model.addAttribute("attachmentsCount", attachmentService.count());
model.addAttribute("latestPosts", postPage.getContent()); model.addAttribute("latestPosts", postPage.getContent());
model.addAttribute("latestLogs", logService.listLatest(10).getContent());
return "admin/admin_index"; return "admin/admin_index";
} }
} }