From 18c3d327d7f96b3b2f6fb826170102adc6dc7e54 Mon Sep 17 00:00:00 2001 From: wangyu <727842003@qq.com> Date: Fri, 15 Jan 2021 00:17:27 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=97=A5=E5=BF=97=E5=85=A5=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../flyfish/framework/auditor/BeanPoster.java | 17 +++++++++++++++ .../configuration/WebfluxConfig.java | 6 +++++- .../service/impl/BaseServiceImpl.java | 21 ++++++++++++++++--- 3 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 flyfish-data/src/main/java/com/flyfish/framework/auditor/BeanPoster.java diff --git a/flyfish-data/src/main/java/com/flyfish/framework/auditor/BeanPoster.java b/flyfish-data/src/main/java/com/flyfish/framework/auditor/BeanPoster.java new file mode 100644 index 0000000..fac42e2 --- /dev/null +++ b/flyfish-data/src/main/java/com/flyfish/framework/auditor/BeanPoster.java @@ -0,0 +1,17 @@ +package com.flyfish.framework.auditor; + +import com.flyfish.framework.domain.base.Domain; + +/** + * 存储完bean的后置审查 + * @author wangyu + */ +public interface BeanPoster { + + /** + * 对入库的实体进行审查,并执行额外功能 + * + * @param data 原数据 + */ + void post(T data); +} diff --git a/flyfish-web/src/main/java/com/flyfish/framework/configuration/WebfluxConfig.java b/flyfish-web/src/main/java/com/flyfish/framework/configuration/WebfluxConfig.java index e4f3d44..10b8a17 100644 --- a/flyfish-web/src/main/java/com/flyfish/framework/configuration/WebfluxConfig.java +++ b/flyfish-web/src/main/java/com/flyfish/framework/configuration/WebfluxConfig.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.ObjectMapper; import com.flyfish.framework.configuration.resolver.PageQueryArgumentResolver; import com.flyfish.framework.configuration.resolver.UserArgumentResolver; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; import org.springframework.core.Ordered; import org.springframework.core.ReactiveAdapterRegistry; @@ -29,6 +30,9 @@ import java.util.TimeZone; @Order(Ordered.HIGHEST_PRECEDENCE) public class WebfluxConfig implements WebFluxConfigurer { + @Value("${spring.jackson.date-format}") + private String dateFormat = "yyyy-MM-dd HH:mm:ss"; + // @Resource // private RequestMappingHandlerAdapter requestMappingHandlerAdapter; @@ -57,7 +61,7 @@ public class WebfluxConfig implements WebFluxConfigurer { TimeZone.setDefault(TimeZone.getTimeZone("GMT+8")); CodecConfigurer.DefaultCodecs defaults = configurer.defaultCodecs(); ObjectMapper mapper = Jackson2ObjectMapperBuilder.json() - .simpleDateFormat("yyyy-MM-dd HH:mm:ss") + .simpleDateFormat(dateFormat) .timeZone("GMT+8") .serializationInclusion(JsonInclude.Include.NON_NULL) .build(); diff --git a/flyfish-web/src/main/java/com/flyfish/framework/service/impl/BaseServiceImpl.java b/flyfish-web/src/main/java/com/flyfish/framework/service/impl/BaseServiceImpl.java index eca2af2..6cf53b2 100644 --- a/flyfish-web/src/main/java/com/flyfish/framework/service/impl/BaseServiceImpl.java +++ b/flyfish-web/src/main/java/com/flyfish/framework/service/impl/BaseServiceImpl.java @@ -1,6 +1,7 @@ package com.flyfish.framework.service.impl; import com.flyfish.framework.auditor.BeanAuditor; +import com.flyfish.framework.auditor.BeanPoster; import com.flyfish.framework.bean.SyncVo; import com.flyfish.framework.domain.base.AuditDomain; import com.flyfish.framework.domain.base.Domain; @@ -29,6 +30,8 @@ public class BaseServiceImpl implements BaseService { protected DefaultRepository repository; @Autowired(required = false) protected BeanAuditor auditor; + @Autowired(required = false) + protected BeanPoster poster; @Autowired private BeanAuditor operationAuditor; @@ -187,7 +190,7 @@ public class BaseServiceImpl implements BaseService { @Override public T create(T entity) { audit(entity); - return repository.insert(entity); + return post(repository.insert(entity)); } /** @@ -198,7 +201,7 @@ public class BaseServiceImpl implements BaseService { @Override public T createSelective(T entity) { audit(entity); - return repository.insert(entity); + return post(repository.insert(entity)); } /** @@ -229,7 +232,7 @@ public class BaseServiceImpl implements BaseService { @Override public T updateById(T entity) { audit(entity); - return repository.save(entity); + return post(repository.save(entity)); } /** @@ -347,6 +350,18 @@ public class BaseServiceImpl implements BaseService { } } + /** + * 后置审查 + * @param entity 实体 + * @return 结果 + */ + protected T post(T entity) { + if (null != poster) { + poster.post(entity); + } + return entity; + } + @SuppressWarnings("unchecked") public > R getRepository() { return (R) repository;