From 6fc717a18600fb7e1adde18f31f557dafc5077e3 Mon Sep 17 00:00:00 2001 From: wangyu <727842003@qq.com> Date: Wed, 8 Dec 2021 08:46:11 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E5=AE=8C=E6=88=90=E5=89=A9?= =?UTF-8?q?=E4=BD=99=E4=BF=AE=E8=A1=A5=E5=B0=BE=E5=B7=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../annotations/EnableReactiveMongoRepo.java | 2 +- .../DefaultReactiveRepositoryFactory.java | 4 +-- .../dict/service/DictionaryService.java | 35 ++++++++++++++++++- .../resources/templates/ViewController.tpl | 1 + 4 files changed, 38 insertions(+), 4 deletions(-) diff --git a/flyfish-data/src/main/java/com/flyfish/framework/annotations/EnableReactiveMongoRepo.java b/flyfish-data/src/main/java/com/flyfish/framework/annotations/EnableReactiveMongoRepo.java index 87f9024..920b08a 100644 --- a/flyfish-data/src/main/java/com/flyfish/framework/annotations/EnableReactiveMongoRepo.java +++ b/flyfish-data/src/main/java/com/flyfish/framework/annotations/EnableReactiveMongoRepo.java @@ -25,5 +25,5 @@ public @interface EnableReactiveMongoRepo { * @return 结果 */ @AliasFor(annotation = EnableReactiveMongoRepositories.class) - String[] basePackages() default "com.flyfish.framework"; + String[] basePackages() default "com.flyfish"; } diff --git a/flyfish-data/src/main/java/com/flyfish/framework/repository/factory/DefaultReactiveRepositoryFactory.java b/flyfish-data/src/main/java/com/flyfish/framework/repository/factory/DefaultReactiveRepositoryFactory.java index 0a2ef72..a58f320 100644 --- a/flyfish-data/src/main/java/com/flyfish/framework/repository/factory/DefaultReactiveRepositoryFactory.java +++ b/flyfish-data/src/main/java/com/flyfish/framework/repository/factory/DefaultReactiveRepositoryFactory.java @@ -15,12 +15,12 @@ public class DefaultReactiveRepositoryFactory extends ReactiveMongoRepositoryFac */ public DefaultReactiveRepositoryFactory(ReactiveMongoOperations mongoOperations) { super(mongoOperations); - this.setRepositoryBaseClass(DefaultReactiveRepositoryImpl.class); + this.setRepositoryBaseClass(DefaultReactiveRepositoryFactory.class); } @Override @NonNull protected Class getRepositoryBaseClass(@NonNull RepositoryMetadata metadata) { - return DefaultReactiveRepositoryImpl.class; + return DefaultReactiveRepositoryFactory.class; } } diff --git a/flyfish-dict/src/main/java/com/flyfish/framework/dict/service/DictionaryService.java b/flyfish-dict/src/main/java/com/flyfish/framework/dict/service/DictionaryService.java index 073175a..1c7ac2c 100644 --- a/flyfish-dict/src/main/java/com/flyfish/framework/dict/service/DictionaryService.java +++ b/flyfish-dict/src/main/java/com/flyfish/framework/dict/service/DictionaryService.java @@ -4,10 +4,14 @@ package com.flyfish.framework.dict.service; import com.flyfish.framework.dict.domain.Dictionary; import com.flyfish.framework.dict.repository.DictionaryRepository; import com.flyfish.framework.service.impl.BaseReactiveServiceImpl; -import com.flyfish.framework.service.impl.BaseReactiveServiceImpl; +import com.flyfish.framework.utils.RedisOperations; +import org.springframework.data.mongodb.core.MongoOperations; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; import reactor.core.publisher.Mono; +import javax.annotation.Resource; import java.util.Optional; /** @@ -18,6 +22,13 @@ import java.util.Optional; @Service public class DictionaryService extends BaseReactiveServiceImpl { + private final String DICT_KEY = "dict-"; + + @Resource + private MongoOperations mongoOperations; + @Resource + private RedisOperations redisOperations; + /** * 通过code查询 * @@ -27,4 +38,26 @@ public class DictionaryService extends BaseReactiveServiceImpl { DictionaryRepository repository = this.getRepository(); return repository.findByCode(code); } + + /** + * 通过code同步查询 + * + * @param code 编码 + * @return 结果 + */ + public Optional get(String code) { + String cacheKey = DICT_KEY + code; + if (redisOperations.hasKey(cacheKey)) { + return Optional.of(redisOperations.get(cacheKey)).map(obj -> (Dictionary) obj); + } else { + Dictionary dictionary = mongoOperations.findOne(Query.query(Criteria.where("code").is(code)).limit(1), + Dictionary.class); + if (null != dictionary) { + redisOperations.set(cacheKey, dictionary); + return Optional.of(dictionary); + } else { + return Optional.empty(); + } + } + } } diff --git a/flyfish-web/src/main/resources/templates/ViewController.tpl b/flyfish-web/src/main/resources/templates/ViewController.tpl index 6ad49e2..38f5cc4 100644 --- a/flyfish-web/src/main/resources/templates/ViewController.tpl +++ b/flyfish-web/src/main/resources/templates/ViewController.tpl @@ -12,6 +12,7 @@ import com.flyfish.framework.bean.Result; import com.flyfish.framework.configuration.annotations.PagedQuery; import com.flyfish.framework.domain.base.Vo; import com.flyfish.framework.service.BaseReactiveService; +import reactor.core.publisher.Mono; @RestController @RequestMapping("#{uri}")