diff --git a/src/main/java/run/halo/app/controller/admin/api/AdminController.java b/src/main/java/run/halo/app/controller/admin/api/AdminController.java index bee9840ef..89c3c5413 100644 --- a/src/main/java/run/halo/app/controller/admin/api/AdminController.java +++ b/src/main/java/run/halo/app/controller/admin/api/AdminController.java @@ -4,16 +4,13 @@ import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import run.halo.app.cache.lock.CacheLock; +import run.halo.app.model.dto.EnvironmentDTO; import run.halo.app.model.dto.StatisticDTO; import run.halo.app.model.params.LoginParam; import run.halo.app.security.token.AuthToken; import run.halo.app.service.AdminService; import javax.validation.Valid; -import java.lang.management.ManagementFactory; -import java.lang.management.RuntimeMXBean; -import java.util.HashMap; -import java.util.Map; /** * Admin controller. @@ -45,11 +42,8 @@ public class AdminController { @GetMapping("environments") @ApiOperation("Gets environments info") - public Map getEnvironments() { - Map result = new HashMap<>(); - RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean(); - result.put("startTime", runtimeMXBean.getStartTime()); - return result; + public EnvironmentDTO getEnvironments() { + return adminService.getEnvironments(); } @PostMapping("login") diff --git a/src/main/java/run/halo/app/model/dto/StatisticDTO.java b/src/main/java/run/halo/app/model/dto/StatisticDTO.java index d9247d530..5b8694345 100644 --- a/src/main/java/run/halo/app/model/dto/StatisticDTO.java +++ b/src/main/java/run/halo/app/model/dto/StatisticDTO.java @@ -17,6 +17,8 @@ public class StatisticDTO { private long attachmentCount; + private long birthday; + private long establishDays; private long linkCount; diff --git a/src/main/java/run/halo/app/model/entity/Attachment.java b/src/main/java/run/halo/app/model/entity/Attachment.java index e74dd5e91..8eabfecfa 100644 --- a/src/main/java/run/halo/app/model/entity/Attachment.java +++ b/src/main/java/run/halo/app/model/entity/Attachment.java @@ -3,8 +3,6 @@ package run.halo.app.model.entity; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import org.hibernate.annotations.SQLDelete; -import org.hibernate.annotations.Where; import run.halo.app.model.enums.AttachmentType; import javax.persistence.*; diff --git a/src/main/java/run/halo/app/model/entity/BaseEntity.java b/src/main/java/run/halo/app/model/entity/BaseEntity.java index bdbd97b37..4f6362101 100644 --- a/src/main/java/run/halo/app/model/entity/BaseEntity.java +++ b/src/main/java/run/halo/app/model/entity/BaseEntity.java @@ -1,6 +1,5 @@ package run.halo.app.model.entity; -import run.halo.app.utils.DateUtils; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/src/main/java/run/halo/app/model/entity/BasePost.java b/src/main/java/run/halo/app/model/entity/BasePost.java index 0448b722b..46042ac86 100644 --- a/src/main/java/run/halo/app/model/entity/BasePost.java +++ b/src/main/java/run/halo/app/model/entity/BasePost.java @@ -3,8 +3,6 @@ package run.halo.app.model.entity; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import org.hibernate.annotations.SQLDelete; -import org.hibernate.annotations.Where; import run.halo.app.model.enums.PostCreateFrom; import run.halo.app.model.enums.PostStatus; import run.halo.app.utils.MarkdownUtils; diff --git a/src/main/java/run/halo/app/model/entity/Category.java b/src/main/java/run/halo/app/model/entity/Category.java index 01e2b41ed..478d68fc6 100644 --- a/src/main/java/run/halo/app/model/entity/Category.java +++ b/src/main/java/run/halo/app/model/entity/Category.java @@ -3,9 +3,6 @@ package run.halo.app.model.entity; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import org.hibernate.annotations.SQLDelete; -import org.hibernate.annotations.Where; -import org.springframework.core.io.support.ResourcePatternResolver; import javax.persistence.*; diff --git a/src/main/java/run/halo/app/model/entity/Journal.java b/src/main/java/run/halo/app/model/entity/Journal.java index e16ee8e29..bf3ab3d52 100644 --- a/src/main/java/run/halo/app/model/entity/Journal.java +++ b/src/main/java/run/halo/app/model/entity/Journal.java @@ -3,8 +3,6 @@ package run.halo.app.model.entity; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import org.hibernate.annotations.SQLDelete; -import org.hibernate.annotations.Where; import javax.persistence.*; diff --git a/src/main/java/run/halo/app/model/entity/Link.java b/src/main/java/run/halo/app/model/entity/Link.java index b6556bd89..06cd24d83 100644 --- a/src/main/java/run/halo/app/model/entity/Link.java +++ b/src/main/java/run/halo/app/model/entity/Link.java @@ -3,8 +3,6 @@ package run.halo.app.model.entity; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import org.hibernate.annotations.SQLDelete; -import org.hibernate.annotations.Where; import javax.persistence.*; diff --git a/src/main/java/run/halo/app/model/entity/Log.java b/src/main/java/run/halo/app/model/entity/Log.java index 286007116..6dfdefb22 100644 --- a/src/main/java/run/halo/app/model/entity/Log.java +++ b/src/main/java/run/halo/app/model/entity/Log.java @@ -4,8 +4,6 @@ package run.halo.app.model.entity; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import org.hibernate.annotations.SQLDelete; -import org.hibernate.annotations.Where; import run.halo.app.model.enums.LogType; import run.halo.app.utils.ServletUtils; diff --git a/src/main/java/run/halo/app/model/entity/Menu.java b/src/main/java/run/halo/app/model/entity/Menu.java index 4987b5f65..2fc7db41d 100644 --- a/src/main/java/run/halo/app/model/entity/Menu.java +++ b/src/main/java/run/halo/app/model/entity/Menu.java @@ -3,8 +3,6 @@ package run.halo.app.model.entity; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import org.hibernate.annotations.SQLDelete; -import org.hibernate.annotations.Where; import javax.persistence.*; diff --git a/src/main/java/run/halo/app/model/entity/Option.java b/src/main/java/run/halo/app/model/entity/Option.java index d303de52f..7e83e80c8 100644 --- a/src/main/java/run/halo/app/model/entity/Option.java +++ b/src/main/java/run/halo/app/model/entity/Option.java @@ -4,8 +4,6 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.ToString; -import org.hibernate.annotations.SQLDelete; -import org.hibernate.annotations.Where; import javax.persistence.*; diff --git a/src/main/java/run/halo/app/model/entity/Photo.java b/src/main/java/run/halo/app/model/entity/Photo.java index 45ba56a8a..96b42607a 100644 --- a/src/main/java/run/halo/app/model/entity/Photo.java +++ b/src/main/java/run/halo/app/model/entity/Photo.java @@ -3,8 +3,6 @@ package run.halo.app.model.entity; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import org.hibernate.annotations.SQLDelete; -import org.hibernate.annotations.Where; import javax.persistence.*; import java.util.Date; diff --git a/src/main/java/run/halo/app/model/entity/PostCategory.java b/src/main/java/run/halo/app/model/entity/PostCategory.java index 5bf1582ef..4d64c1dcd 100644 --- a/src/main/java/run/halo/app/model/entity/PostCategory.java +++ b/src/main/java/run/halo/app/model/entity/PostCategory.java @@ -2,8 +2,6 @@ package run.halo.app.model.entity; import lombok.Data; import lombok.ToString; -import org.hibernate.annotations.SQLDelete; -import org.hibernate.annotations.Where; import javax.persistence.*; import java.util.Objects; diff --git a/src/main/java/run/halo/app/model/entity/PostTag.java b/src/main/java/run/halo/app/model/entity/PostTag.java index 4a3d197a5..010553df3 100644 --- a/src/main/java/run/halo/app/model/entity/PostTag.java +++ b/src/main/java/run/halo/app/model/entity/PostTag.java @@ -2,8 +2,6 @@ package run.halo.app.model.entity; import lombok.Data; import lombok.ToString; -import org.hibernate.annotations.SQLDelete; -import org.hibernate.annotations.Where; import javax.persistence.*; import java.util.Objects; diff --git a/src/main/java/run/halo/app/model/entity/Tag.java b/src/main/java/run/halo/app/model/entity/Tag.java index 2d8e09db7..f9212a93d 100644 --- a/src/main/java/run/halo/app/model/entity/Tag.java +++ b/src/main/java/run/halo/app/model/entity/Tag.java @@ -3,8 +3,6 @@ package run.halo.app.model.entity; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import org.hibernate.annotations.SQLDelete; -import org.hibernate.annotations.Where; import javax.persistence.*; diff --git a/src/main/java/run/halo/app/model/entity/ThemeSetting.java b/src/main/java/run/halo/app/model/entity/ThemeSetting.java index 0492b7376..c3d77a4f1 100644 --- a/src/main/java/run/halo/app/model/entity/ThemeSetting.java +++ b/src/main/java/run/halo/app/model/entity/ThemeSetting.java @@ -3,8 +3,6 @@ package run.halo.app.model.entity; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import org.hibernate.annotations.SQLDelete; -import org.hibernate.annotations.Where; import javax.persistence.*; diff --git a/src/main/java/run/halo/app/model/entity/User.java b/src/main/java/run/halo/app/model/entity/User.java index e7c592643..490e6e667 100644 --- a/src/main/java/run/halo/app/model/entity/User.java +++ b/src/main/java/run/halo/app/model/entity/User.java @@ -1,11 +1,8 @@ package run.halo.app.model.entity; -import run.halo.app.utils.DateUtils; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import org.hibernate.annotations.SQLDelete; -import org.hibernate.annotations.Where; import run.halo.app.utils.DateUtils; import javax.persistence.*; diff --git a/src/main/java/run/halo/app/service/AdminService.java b/src/main/java/run/halo/app/service/AdminService.java index c65aa82be..db3d5c059 100644 --- a/src/main/java/run/halo/app/service/AdminService.java +++ b/src/main/java/run/halo/app/service/AdminService.java @@ -1,6 +1,7 @@ package run.halo.app.service; import org.springframework.lang.NonNull; +import run.halo.app.model.dto.EnvironmentDTO; import run.halo.app.model.dto.StatisticDTO; import run.halo.app.model.params.LoginParam; import run.halo.app.security.token.AuthToken; @@ -9,6 +10,7 @@ import run.halo.app.security.token.AuthToken; * Admin service. * * @author johnniang + * @author ryanwang * @date 19-4-29 */ public interface AdminService { @@ -46,6 +48,13 @@ public interface AdminService { @NonNull StatisticDTO getCount(); + /** + * Get system environments + * @return environments + */ + @NonNull + EnvironmentDTO getEnvironments(); + /** * Refreshes token. * diff --git a/src/main/java/run/halo/app/service/impl/AdminServiceImpl.java b/src/main/java/run/halo/app/service/impl/AdminServiceImpl.java index e92337c27..34f9c1108 100644 --- a/src/main/java/run/halo/app/service/impl/AdminServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/AdminServiceImpl.java @@ -2,12 +2,14 @@ package run.halo.app.service.impl; import cn.hutool.core.lang.Validator; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.lang.NonNull; import org.springframework.stereotype.Service; import org.springframework.util.Assert; import run.halo.app.cache.StringCacheStore; import run.halo.app.exception.BadRequestException; import run.halo.app.exception.NotFoundException; +import run.halo.app.model.dto.EnvironmentDTO; import run.halo.app.model.dto.StatisticDTO; import run.halo.app.model.entity.User; import run.halo.app.model.enums.CommentStatus; @@ -20,12 +22,15 @@ import run.halo.app.security.util.SecurityUtils; import run.halo.app.service.*; import run.halo.app.utils.HaloUtils; +import java.lang.management.ManagementFactory; +import java.lang.management.RuntimeMXBean; import java.util.concurrent.TimeUnit; /** * Admin service implementation. * * @author johnniang + * @author ryanwang * @date 19-4-29 */ @Slf4j @@ -52,6 +57,9 @@ public class AdminServiceImpl implements AdminService { private final StringCacheStore cacheStore; + @Value("${spring.datasource.driver-class-name}") + private String driverClassName; + public AdminServiceImpl(PostService postService, SheetService sheetService, AttachmentService attachmentService, @@ -153,6 +161,7 @@ public class AdminServiceImpl implements AdminService { long birthday = optionService.getBirthday(); long days = (System.currentTimeMillis() - birthday) / (1000 * 24 * 3600); statisticDTO.setEstablishDays(days); + statisticDTO.setBirthday(birthday); statisticDTO.setLinkCount(linkService.count()); @@ -161,6 +170,19 @@ public class AdminServiceImpl implements AdminService { return statisticDTO; } + @Override + public EnvironmentDTO getEnvironments() { + EnvironmentDTO environmentDTO = new EnvironmentDTO(); + + // Get application start time. + RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean(); + environmentDTO.setStartTime(runtimeMXBean.getStartTime()); + + environmentDTO.setDatabase("org.h2.Driver".equals(driverClassName) ? "H2" : "MySQL"); + + return environmentDTO; + } + @Override public AuthToken refreshToken(String refreshToken) { Assert.hasText(refreshToken, "Refresh token must not be blank"); diff --git a/src/main/resources/templates/common/macro/common_macro.ftl b/src/main/resources/templates/common/macro/common_macro.ftl index 5f2650dba..105195a3c 100644 --- a/src/main/resources/templates/common/macro/common_macro.ftl +++ b/src/main/resources/templates/common/macro/common_macro.ftl @@ -46,3 +46,13 @@ <#t><#else>刚刚 + +<#macro globalHeader> + <@favicon /> + <@verification /> + + +<#macro globalFooter> + <@statistics /> + <@footer_info /> + \ No newline at end of file