From 0dfbee487a7d53cefa728a50083c036fb8236600 Mon Sep 17 00:00:00 2001 From: administrator <2316696377@qq.com> Date: Fri, 25 Sep 2020 17:20:58 +0800 Subject: [PATCH] jpa fetch -> load --- pom.xml | 13 +++++-- ruoyi-admin/pom.xml | 7 +++- .../main/java/com/ruoyi/RuoYiApplication.java | 3 +- .../src/main/resources/application.yml | 34 ++++++++++++++++--- .../src/test/java/com/ruoyi/Tesst.java | 8 +++++ ruoyi-common/pom.xml | 14 ++++++++ .../com/ruoyi/common/base/BaseService.java | 8 +++++ .../common/properties/CacheProperties.java | 6 ++++ ruoyi-framework/pom.xml | 2 ++ .../ruoyi/framework/config/CacheConfig.java | 14 +++++--- .../ehcache/MyJCacheRegionFactory.java | 2 +- .../service/impl/SysJobServiceImpl.java | 1 + .../java/com/ruoyi/system/domain/SysUser.java | 4 +-- .../system/repository/SysRoleRepository.java | 2 +- .../system/repository/SysUserRepository.java | 16 ++++----- .../service/impl/SysConfigServiceImpl.java | 1 + .../service/impl/SysDictTypeServiceImpl.java | 6 ++++ .../impl/SysLogininforServiceImpl.java | 1 + .../service/impl/SysNoticeServiceImpl.java | 1 + .../service/impl/SysOperLogServiceImpl.java | 1 + .../service/impl/SysPostServiceImpl.java | 4 +++ .../service/impl/SysRoleServiceImpl.java | 4 +++ .../service/impl/SysUserServiceImpl.java | 10 +++++- 23 files changed, 136 insertions(+), 26 deletions(-) create mode 100644 ruoyi-admin/src/test/java/com/ruoyi/Tesst.java diff --git a/pom.xml b/pom.xml index f46d3274a..7a573e8f4 100644 --- a/pom.xml +++ b/pom.xml @@ -28,8 +28,9 @@ 1.3.3 3.17 1.7 - 4.2.1 + 4.4.0 2.3.0.1 + 5.6.0 @@ -40,7 +41,15 @@ org.springframework.boot spring-boot-dependencies - 2.1.1.RELEASE + 2.3.4.RELEASE + pom + import + + + + com.google.guava + guava-bom + 29.0-jre pom import diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index e07c2a2c2..ea14eaecd 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -88,7 +88,7 @@ com.fasterxml.jackson.datatype jackson-datatype-hibernate5 - 2.10.1 + 2.11.2 @@ -120,6 +120,11 @@ spring-boot-starter-test test + + + com.google.guava + guava + diff --git a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java index bafa08b4b..51a70a689 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java @@ -3,6 +3,7 @@ package com.ruoyi; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; @@ -13,7 +14,7 @@ import org.springframework.context.annotation.Bean; * * @author ruoyi */ -@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) +@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, CacheAutoConfiguration.class}) public class RuoYiApplication extends SpringBootServletInitializer { public static void main(String[] args) { // System.setProperty("spring.devtools.restart.enabled", "false"); diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 4e8f8e60e..fb430e687 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -69,15 +69,30 @@ spring: use-new-id-generator-mappings: true show-sql: true database-platform: org.hibernate.dialect.MySQL55Dialect - open-in-view: false properties: hibernate: format_sql: false + open-in-view: false cache: - type: jcache - jcache: - provider: org.ehcache.jsr107.EhcacheCachingProvider + type: redis + redis: + use-key-prefix: true + cache-null-values: true + key-prefix: ${spring.application.name} + redis: + database: 2 + host: localhost + port: 6379 + ssl: false + timeout: 3000 + password: + lettuce: + pool: + max-active: 8 + max-idle: 8 + min-idle: 2 + max-wait: -1 # Shiro shiro: user: @@ -127,3 +142,14 @@ xss: swagger: # 是否开启swagger enabled: true + +cache: + names: + sys_dict_type: + ttl: PT1M + sys_user: + ttl: PT1M + sys_post: + ttl: PT1M + sys_role: + ttl: PT1M \ No newline at end of file diff --git a/ruoyi-admin/src/test/java/com/ruoyi/Tesst.java b/ruoyi-admin/src/test/java/com/ruoyi/Tesst.java new file mode 100644 index 000000000..2a2e5e2a0 --- /dev/null +++ b/ruoyi-admin/src/test/java/com/ruoyi/Tesst.java @@ -0,0 +1,8 @@ +package com.ruoyi; + +public class Tesst { + + public static void main(String[] args) { + System.out.println(System.getProperty("java.io.tmpdir")); + } +} diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index 5982cf262..356da02d7 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -123,6 +123,20 @@ spring-boot-configuration-processor + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.apache.commons + commons-pool2 + + + + org.springframework.boot + spring-boot-starter-cache + \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/base/BaseService.java b/ruoyi-common/src/main/java/com/ruoyi/common/base/BaseService.java index 1d9c75f30..7249e61d1 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/base/BaseService.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/base/BaseService.java @@ -1,5 +1,8 @@ package com.ruoyi.common.base; +import com.querydsl.core.types.Constant; +import com.querydsl.core.types.Expression; +import com.querydsl.core.types.Predicate; import com.querydsl.core.types.dsl.*; import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.utils.querydsl.ExpressionUtils; @@ -39,6 +42,11 @@ public class BaseService { return ExpressionUtils.notStartWith(path, value); } + protected Predicate alwaysTrue(){ + Constant expression = (Constant) com.querydsl.core.types.ExpressionUtils.toExpression(Boolean.TRUE); + return com.querydsl.core.types.ExpressionUtils.eqConst(expression, true); + } + public static Collection toLongIterable(String str){ return Arrays.stream(Convert.toStrArray(str)) .map(Long::parseLong) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/properties/CacheProperties.java b/ruoyi-common/src/main/java/com/ruoyi/common/properties/CacheProperties.java index 7b94cdff9..e7b3c713b 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/properties/CacheProperties.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/properties/CacheProperties.java @@ -1,6 +1,8 @@ package com.ruoyi.common.properties; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import lombok.ToString; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @@ -17,8 +19,12 @@ public class CacheProperties { private Map names = new HashMap<>(); + private Config defaultConfig = new Config(Duration.ofMinutes(1)); + @ToString @Data + @AllArgsConstructor + @NoArgsConstructor public static class Config{ private Duration ttl; } diff --git a/ruoyi-framework/pom.xml b/ruoyi-framework/pom.xml index 7dde7a922..7eca4c760 100644 --- a/ruoyi-framework/pom.xml +++ b/ruoyi-framework/pom.xml @@ -75,11 +75,13 @@ net.java.dev.jna jna + ${jna.version} net.java.dev.jna jna-platform + ${jna.version} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/CacheConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/CacheConfig.java index b02a77b63..f3efb17d1 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/CacheConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/CacheConfig.java @@ -8,11 +8,12 @@ import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.ruoyi.common.properties.CacheProperties; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.cache.CacheManager; import org.springframework.cache.annotation.EnableCaching; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.core.Ordered; +import org.springframework.core.annotation.Order; import org.springframework.data.redis.cache.RedisCacheConfiguration; import org.springframework.data.redis.cache.RedisCacheManager; import org.springframework.data.redis.cache.RedisCacheWriter; @@ -23,10 +24,9 @@ import org.springframework.data.redis.serializer.RedisSerializationContext; import java.util.HashMap; import java.util.Map; -@ConditionalOnClass(name = "org.springframework.data.redis.connection.RedisConnectionFactory") @EnableCaching @Configuration -@AutoConfigureAfter(CacheProperties.class) +@Order(Ordered.HIGHEST_PRECEDENCE) public class CacheConfig { @Autowired @@ -43,6 +43,11 @@ public class CacheConfig { @Bean public CacheManager cacheManager() { + RedisCacheConfiguration defaultConfiguration = RedisCacheConfiguration.defaultCacheConfig() + .disableCachingNullValues() + .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(genericJackson2JsonRedisSerializer)) + .entryTtl(cacheProperties.getDefaultConfig().getTtl()); + Map configurationMap = new HashMap<>(); for(String key : cacheProperties.getNames().keySet()){ configurationMap.put(key, RedisCacheConfiguration.defaultCacheConfig() @@ -53,6 +58,7 @@ public class CacheConfig { return RedisCacheManager.builder(factory) .initialCacheNames(cacheProperties.getNames().keySet()) .withInitialCacheConfigurations(configurationMap) + .cacheDefaults(defaultConfiguration) .build(); } @@ -66,4 +72,4 @@ public class CacheConfig { objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY); return new GenericJackson2JsonRedisSerializer(objectMapper); } -} +} \ No newline at end of file diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/ehcache/MyJCacheRegionFactory.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/ehcache/MyJCacheRegionFactory.java index c363b55f5..fb5f850ab 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/ehcache/MyJCacheRegionFactory.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/ehcache/MyJCacheRegionFactory.java @@ -26,7 +26,7 @@ public class MyJCacheRegionFactory extends JCacheRegionFactory { final CachingProvider cachingProvider = getCachingProvider( properties ); final CacheManager cacheManager; - final URI cacheManagerUri = getUri( properties ); + final URI cacheManagerUri = getUri( settings, properties); // ***** begin patch ****** URI uri = cacheManagerUri; URL url = null; diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java index 4d4e0547b..701ee3644 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java @@ -66,6 +66,7 @@ public class SysJobServiceImpl extends BaseService implements ISysJobService { private Predicate getPredicate(SysJob job){ QSysJob qSysJob = QSysJob.sysJob; List predicates = new ArrayList<>(); + predicates.add(alwaysTrue()); if(StringUtils.isNotEmpty(job.getJobName())){ predicates.add(buildLike(qSysJob.jobName, job.getJobName())); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUser.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUser.java index 0fd1870f7..5eda99acd 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUser.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUser.java @@ -125,7 +125,7 @@ public class SysUser extends BaseEntity implements Principal { @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT), @Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT) }) - @ManyToOne + @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "dept_id", referencedColumnName = "deptId") @ForeignKey(name = "none") private SysDept dept; @@ -144,8 +144,6 @@ public class SysUser extends BaseEntity implements Principal { @org.hibernate.annotations.ForeignKey(name = "none") private Set posts = new HashSet<>(); - - public SysUser() { } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/repository/SysRoleRepository.java b/ruoyi-system/src/main/java/com/ruoyi/system/repository/SysRoleRepository.java index 06352826d..111fdde17 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/repository/SysRoleRepository.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/repository/SysRoleRepository.java @@ -21,6 +21,6 @@ public interface SysRoleRepository extends BaseRepository { @Modifying void updateStatus(String status, Long roleId); - @EntityGraph(attributePaths = {"depts", "menus"}) + @EntityGraph(attributePaths = {"depts", "menus"}, type = EntityGraph.EntityGraphType.LOAD ) SysRole findByRoleId(Long roleId); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/repository/SysUserRepository.java b/ruoyi-system/src/main/java/com/ruoyi/system/repository/SysUserRepository.java index fbdf3eb54..70007f79d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/repository/SysUserRepository.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/repository/SysUserRepository.java @@ -13,31 +13,31 @@ import org.springframework.stereotype.Repository; @Repository public interface SysUserRepository extends BaseRepository { - @EntityGraph(attributePaths = {"roles", "posts"}) + @EntityGraph(attributePaths = {"roles", "posts"}, type= EntityGraph.EntityGraphType.LOAD ) SysUser findFirstByDelFlagAndLoginName(String delFlag, String loginName); - @EntityGraph(attributePaths = {"roles", "posts"}) - SysUser findFirstByDelFlagAndAndPhonenumber(String delFlag, String phone); + @EntityGraph(attributePaths = {"roles", "posts"}, type= EntityGraph.EntityGraphType.LOAD) + SysUser findFirstByDelFlagAndPhonenumber(String delFlag, String phone); - @EntityGraph(attributePaths = {"roles", "posts"}) + @EntityGraph(attributePaths = {"roles", "posts"}, type= EntityGraph.EntityGraphType.LOAD) SysUser findFirstByDelFlagAndEmail(String delFlag, String email); int countByDelFlagAndDept(String delFlag, SysDept dept); int countByDelFlagAndPostsContaining(String delFlag, SysPost sysPost); - @EntityGraph(attributePaths = {"roles", "posts"}) + @EntityGraph(attributePaths = {"roles", "posts"}, type= EntityGraph.EntityGraphType.LOAD) SysUser findSysUserByDelFlagAndUserId(String delFlag, Long userId); int countByLoginName(String loginName); - @EntityGraph(attributePaths = {"roles", "posts"}) + @EntityGraph(attributePaths = {"roles", "posts"}, type= EntityGraph.EntityGraphType.LOAD) SysUser findFirstByPhonenumber(String phone); - @EntityGraph(attributePaths = {"roles", "posts"}) + @EntityGraph(attributePaths = {"roles", "posts"}, type= EntityGraph.EntityGraphType.LOAD) SysUser findFirstByEmail(String email); - @EntityGraph(attributePaths = {"roles", "posts"}) + @EntityGraph(attributePaths = {"roles", "posts"}, type= EntityGraph.EntityGraphType.LOAD) SysUser findFirstByLoginName(String loginName); @Modifying diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java index f44bd3a1b..431436ea0 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java @@ -68,6 +68,7 @@ public class SysConfigServiceImpl extends BaseService implements ISysConfigServi private Predicate getPredicate(SysConfig config){ QSysConfig qSysConfig = QSysConfig.sysConfig; List predicates = new ArrayList<>(); + predicates.add(alwaysTrue()); if(StringUtils.isNotEmpty(config.getConfigName())){ predicates.add(buildLike(qSysConfig.configName, config.getConfigName())); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java index 7396ef005..39eea9740 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java @@ -13,8 +13,11 @@ import com.ruoyi.system.domain.SysDictType; import com.ruoyi.system.repository.SysDictDataRepository; import com.ruoyi.system.repository.SysDictTypeRepository; import com.ruoyi.system.service.ISysDictTypeService; +import org.hibernate.query.criteria.internal.predicate.BooleanExpressionPredicate; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; @@ -29,6 +32,7 @@ import java.util.List; * @author ruoyi */ @Service +@CacheConfig(cacheNames = "sys_dict_type") public class SysDictTypeServiceImpl extends BaseService implements ISysDictTypeService { @Autowired private SysDictTypeRepository sysDictTypeRepository; @@ -41,6 +45,7 @@ public class SysDictTypeServiceImpl extends BaseService implements ISysDictTypeS * @param dictType 字典类型信息 * @return 字典类型集合信息 */ + @Cacheable @Override public Page selectDictTypeList(SysDictType dictType, Pageable pageable) { return sysDictTypeRepository.findAll(getPredicate(dictType), pageable); @@ -49,6 +54,7 @@ public class SysDictTypeServiceImpl extends BaseService implements ISysDictTypeS private Predicate getPredicate(SysDictType sysDictType){ QSysDictType qSysDictType = QSysDictType.sysDictType; List predicates = new ArrayList<>(); + predicates.add(alwaysTrue()); if(StringUtils.isNotEmpty(sysDictType.getDictName())){ predicates.add(buildLike(qSysDictType.dictName, sysDictType.getDictName())); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java index e37950ffd..a3a200934 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java @@ -58,6 +58,7 @@ public class SysLogininforServiceImpl extends BaseService implements ISysLoginin private Predicate getPredicate(SysLogininfor logininfor){ QSysLogininfor qSysLogininfor = QSysLogininfor.sysLogininfor; List predicates = new ArrayList<>(); + predicates.add(alwaysTrue()); if(StringUtils.isNotEmpty(logininfor.getIpaddr())){ predicates.add(buildLike(qSysLogininfor.ipaddr, logininfor.getIpaddr())); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java index 9b29c78a0..65638b2b0 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java @@ -55,6 +55,7 @@ public class SysNoticeServiceImpl extends BaseService implements ISysNoticeServi private Predicate getPredicate(SysNotice sysNotice){ QSysNotice qSysNotice = QSysNotice.sysNotice; List predicates = new ArrayList<>(); + predicates.add(alwaysTrue()); if(StringUtils.isNotEmpty(sysNotice.getNoticeTitle())){ predicates.add(buildLike(qSysNotice.noticeTitle, sysNotice.getNoticeTitle())); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java index 369695c85..b32b3e830 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java @@ -56,6 +56,7 @@ public class SysOperLogServiceImpl extends BaseService implements ISysOperLogSer private Predicate getPredicate(SysOperLog operLog){ QSysOperLog qSysOperLog = QSysOperLog.sysOperLog; List predicates = new ArrayList<>(); + predicates.add(alwaysTrue()); if(StringUtils.isNotEmpty(operLog.getTitle())){ predicates.add(buildLike(qSysOperLog.title, operLog.getTitle())); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java index fcb1c5bbe..395bf7b56 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java @@ -11,6 +11,8 @@ import com.ruoyi.system.repository.SysPostRepository; import com.ruoyi.system.repository.SysUserRepository; import com.ruoyi.system.service.ISysPostService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.CacheConfig; +import org.springframework.cache.annotation.Cacheable; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.domain.Specification; @@ -30,6 +32,7 @@ import java.util.List; * @author ruoyi */ @Service +@CacheConfig(cacheNames = "sys_post") public class SysPostServiceImpl extends BaseService implements ISysPostService { @Autowired @@ -44,6 +47,7 @@ public class SysPostServiceImpl extends BaseService implements ISysPostService { * @param pageRequest * @return 岗位信息集合 */ + @Cacheable @Override public Page selectPostList(SysPost post, Pageable pageRequest) { return sysPostRepository.findAll(getSpecification(post), pageRequest); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java index 167b9c7cd..9fae148cc 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java @@ -16,6 +16,8 @@ import com.ruoyi.system.repository.SysUserRepository; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.base.BusinessService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.CacheConfig; +import org.springframework.cache.annotation.Cacheable; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; @@ -29,6 +31,7 @@ import java.util.*; * @author ruoyi */ @Service +@CacheConfig(cacheNames = "sys_role") public class SysRoleServiceImpl extends BusinessService implements ISysRoleService { @Autowired @@ -43,6 +46,7 @@ public class SysRoleServiceImpl extends BusinessService implements ISysRoleServi * @param user * @return 角色数据集合信息 */ + @Cacheable @Override public Page selectRoleList(SysRole role, Pageable pageable, SysUser user) { return sysRoleRepository.findAll(getPredicate(role, user), pageable); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index 6c6af4a34..2db48e38d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -20,6 +20,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.CacheConfig; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.domain.Specification; @@ -39,6 +42,7 @@ import java.util.stream.Collectors; * @author ruoyi */ @Service +@CacheConfig(cacheNames = "sys_user") public class SysUserServiceImpl extends BaseService implements ISysUserService { private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class); @@ -56,6 +60,7 @@ public class SysUserServiceImpl extends BaseService implements ISysUserService { * @param pageRequest * @return 用户信息集合信息 */ + @Cacheable @Override public Page selectUserList(SysUser user, Pageable pageRequest) { return sysUserRepository.findAll(getPredicate(user), pageRequest); @@ -169,6 +174,7 @@ public class SysUserServiceImpl extends BaseService implements ISysUserService { * @param userName 用户名 * @return 用户对象信息 */ + @Cacheable @Override public SysUser selectUserByLoginName(String userName) { return sysUserRepository.findFirstByDelFlagAndLoginName(BaseEntity.NOT_DELETED, userName); @@ -182,7 +188,7 @@ public class SysUserServiceImpl extends BaseService implements ISysUserService { */ @Override public SysUser selectUserByPhoneNumber(String phoneNumber) { - return sysUserRepository.findFirstByDelFlagAndAndPhonenumber(BaseEntity.NOT_DELETED, phoneNumber); + return sysUserRepository.findFirstByDelFlagAndPhonenumber(BaseEntity.NOT_DELETED, phoneNumber); } /** @@ -231,6 +237,7 @@ public class SysUserServiceImpl extends BaseService implements ISysUserService { * @param ids 需要删除的数据ID * @return 结果 */ + @CacheEvict(allEntries = true) @Transactional @Override public int deleteUserByIds(String ids) throws BusinessException { @@ -427,6 +434,7 @@ public class SysUserServiceImpl extends BaseService implements ISysUserService { return depts; } + @Cacheable(key = "#user.userId", unless = "#result == null ") @Override public SysUser registerUser(SysUser user) { user.setUserType(UserConstants.REGISTER_USER_TYPE);