Browse Source

Merge branch 'dev' into 2D展厅

licailing 3 years ago
parent
commit
18bf8e26e1

+ 3 - 0
src/main/java/com/izouma/nineth/config/CacheConfig.java

@@ -112,6 +112,9 @@ public class CacheConfig {
                 .entryTtl(Duration.ofHours(1))
                 .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(redisTemplate.getValueSerializer())));
 
+        cacheNamesConfigurationMap.put("userList", RedisCacheConfiguration.defaultCacheConfig()
+                .entryTtl(Duration.ofMinutes(1))
+                .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(redisTemplate.getValueSerializer())));
 
         RedisCacheConfiguration cacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
                 .entryTtl(Duration.ofDays(7))

+ 5 - 0
src/main/java/com/izouma/nineth/dto/PageWrapper.java

@@ -24,4 +24,9 @@ public class PageWrapper<T> {
     public Page<T> toPage() {
         return new PageImpl<>(content, PageRequest.of(page, size), total);
     }
+
+    public static <T> PageWrapper<T> of(Page<T> page) {
+        return new PageWrapper<>(page.getContent(), page.getPageable().getPageNumber(),
+                page.getPageable().getPageSize(), page.getTotalElements());
+    }
 }

+ 5 - 3
src/main/java/com/izouma/nineth/service/UserService.java

@@ -103,7 +103,8 @@ public class UserService {
         return userRepo.save(user);
     }
 
-    public Page<User> all(PageQuery pageQuery) {
+    @Cacheable(value = "userList", key = "#pageQuery.hashCode()")
+    public PageWrapper<User> all(PageQuery pageQuery) {
         Specification<User> specification = JpaUtils.toSpecification(pageQuery, User.class);
 
         specification = specification.and((Specification<User>) (root, criteriaQuery, criteriaBuilder) -> {
@@ -132,7 +133,8 @@ public class UserService {
             }
             return criteriaBuilder.and(and.toArray(new Predicate[0]));
         });
-        return userRepo.findAll(specification, JpaUtils.toPageRequest(pageQuery));
+        Page<User> page = userRepo.findAll(specification, JpaUtils.toPageRequest(pageQuery));
+        return PageWrapper.of(page);
     }
 
     public User create(UserRegister userRegister) {
@@ -609,7 +611,7 @@ public class UserService {
     }
 
     public Map<String, Object> invite(PageQuery pageQuery) {
-        Page<User> all = this.all(pageQuery);
+        Page<User> all = this.all(pageQuery).toPage();
 
         List<Long> userIds = all.map(User::getId).getContent();
         List<TokenHistory> page = tokenHistoryRepo.userBuy(userIds);

+ 3 - 4
src/main/java/com/izouma/nineth/utils/SecurityUtils.java

@@ -2,7 +2,6 @@ package com.izouma.nineth.utils;
 
 import com.izouma.nineth.domain.User;
 import com.izouma.nineth.enums.AuthorityName;
-import com.izouma.nineth.security.Authority;
 import com.izouma.nineth.security.JwtUser;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.context.SecurityContextHolder;
@@ -17,9 +16,9 @@ public class SecurityUtils {
         return user;
     }
 
-    public static boolean hasRole(AuthorityName name){
+    public static boolean hasRole(AuthorityName name) {
         User user = getAuthenticatedUser();
-        if (null==user) return false;
-        return user.getAuthorities().contains(Authority.get(name));
+        if (null == user) return false;
+        return user.getAuthorities().stream().anyMatch(a -> a.getName().equals(name.name()));
     }
 }

+ 1 - 1
src/main/java/com/izouma/nineth/web/UserController.java

@@ -85,7 +85,7 @@ public class UserController extends BaseController {
         if (!(SecurityUtils.getAuthenticatedUser() != null && SecurityUtils.getAuthenticatedUser().isAdmin())) {
             pageQuery.getQuery().put("minter", true);
         }
-        return userService.toDTO(userService.all(pageQuery));
+        return userService.toDTO(userService.all(pageQuery).toPage());
     }
 
     //    @PreAuthorize("hasRole('ADMIN')")