xiongzhu %!s(int64=3) %!d(string=hai) anos
pai
achega
30643e2479

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

@@ -104,6 +104,15 @@ public class CacheConfig {
                 .entryTtl(Duration.ofSeconds(10))
                 .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(redisTemplate.getValueSerializer())));
 
+        cacheNamesConfigurationMap.put("myUserInfo", RedisCacheConfiguration.defaultCacheConfig()
+                .entryTtl(Duration.ofHours(1))
+                .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(redisTemplate.getValueSerializer())));
+
+        cacheNamesConfigurationMap.put("userStat", RedisCacheConfiguration.defaultCacheConfig()
+                .entryTtl(Duration.ofHours(1))
+                .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(redisTemplate.getValueSerializer())));
+
+
         RedisCacheConfiguration cacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
                 .entryTtl(Duration.ofDays(7))
                 .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(redisTemplate.getValueSerializer()));

+ 2 - 1
src/main/java/com/izouma/nineth/service/AssetService.java

@@ -23,6 +23,7 @@ import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.rocketmq.spring.core.RocketMQTemplate;
 import org.springframework.beans.BeanUtils;
+import org.springframework.cache.annotation.Cacheable;
 import org.springframework.context.ApplicationContext;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
@@ -464,7 +465,7 @@ public class AssetService {
         return "ok";
     }
 
-
+    @Cacheable(value = "userStat", key = "#userId")
     public Map<String, BigDecimal> breakdown(Long userId) {
         List<TokenHistory> page = tokenHistoryRepo.userHistory(userId);
         BigDecimal sale = page.stream()

+ 7 - 2
src/main/java/com/izouma/nineth/service/BannerService.java

@@ -2,9 +2,11 @@ package com.izouma.nineth.service;
 
 import com.izouma.nineth.domain.Banner;
 import com.izouma.nineth.dto.PageQuery;
+import com.izouma.nineth.dto.PageWrapper;
 import com.izouma.nineth.repo.BannerRepo;
 import com.izouma.nineth.utils.JpaUtils;
 import lombok.AllArgsConstructor;
+import org.springframework.cache.annotation.Cacheable;
 import org.springframework.data.domain.Page;
 import org.springframework.stereotype.Service;
 
@@ -14,7 +16,10 @@ public class BannerService {
 
     private BannerRepo bannerRepo;
 
-    public Page<Banner> all(PageQuery pageQuery) {
-        return bannerRepo.findAll(JpaUtils.toSpecification(pageQuery, Banner.class), JpaUtils.toPageRequest(pageQuery));
+    @Cacheable(value = "bannerList", key = "#pageQuery.hashCode()")
+    public PageWrapper<Banner> all(PageQuery pageQuery) {
+        Page<Banner> page = bannerRepo.findAll(JpaUtils.toSpecification(pageQuery, Banner.class), JpaUtils.toPageRequest(pageQuery));
+        return new PageWrapper<>(page.getContent(), page.getPageable().getPageNumber(),
+                page.getPageable().getPageSize(), page.getTotalElements());
     }
 }

+ 4 - 0
src/main/java/com/izouma/nineth/service/CacheService.java

@@ -46,4 +46,8 @@ public class CacheService {
     @CacheEvict(value = "weekTop", allEntries = true)
     public void clearWeekTop() {
     }
+
+    @CacheEvict(value = "bannerList", allEntries = true)
+    public void clearBannerList() {
+    }
 }

+ 6 - 0
src/main/java/com/izouma/nineth/service/UserService.java

@@ -34,6 +34,7 @@ import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.cache.annotation.CacheEvict;
+import org.springframework.cache.annotation.Cacheable;
 import org.springframework.context.event.EventListener;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageImpl;
@@ -658,4 +659,9 @@ public class UserService {
             log.info("checkSettleAccount {}/{}", count.get(), list.size());
         });
     }
+
+    @Cacheable(value = "myUserInfo", key = "#id")
+    public User my(Long id) {
+        return userRepo.findById(id).orElseThrow(new BusinessException("用户不存在"));
+    }
 }

+ 11 - 5
src/main/java/com/izouma/nineth/web/BannerController.java

@@ -1,15 +1,15 @@
 package com.izouma.nineth.web;
 
 import com.izouma.nineth.domain.Banner;
-import com.izouma.nineth.service.BannerService;
 import com.izouma.nineth.dto.PageQuery;
 import com.izouma.nineth.exception.BusinessException;
 import com.izouma.nineth.repo.BannerRepo;
+import com.izouma.nineth.service.BannerService;
+import com.izouma.nineth.service.CacheService;
 import com.izouma.nineth.utils.ObjUtils;
 import com.izouma.nineth.utils.excel.ExcelUtils;
 import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
@@ -22,6 +22,7 @@ import java.util.List;
 public class BannerController extends BaseController {
     private BannerService bannerService;
     private BannerRepo    bannerRepo;
+    private CacheService  cacheService;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")
@@ -29,9 +30,13 @@ public class BannerController extends BaseController {
         if (record.getId() != null) {
             Banner orig = bannerRepo.findById(record.getId()).orElseThrow(new BusinessException("无记录"));
             ObjUtils.merge(orig, record);
-            return bannerRepo.save(orig);
+            orig = bannerRepo.save(orig);
+            cacheService.clearBannerList();
+            return orig;
         }
-        return bannerRepo.save(record);
+        record = bannerRepo.save(record);
+        cacheService.clearBannerList();
+        return record;
     }
 
 
@@ -39,7 +44,7 @@ public class BannerController extends BaseController {
     @PostMapping("/all")
     public Page<Banner> all(@RequestBody PageQuery pageQuery) {
         pageQuery.getQuery().put("del", false);
-        return bannerService.all(pageQuery);
+        return bannerService.all(pageQuery).toPage();
     }
 
     @GetMapping("/get/{id}")
@@ -50,6 +55,7 @@ public class BannerController extends BaseController {
     @PostMapping("/del/{id}")
     public void del(@PathVariable Long id) {
         bannerRepo.softDelete(id);
+        cacheService.clearBannerList();
     }
 
     @GetMapping("/excel")

+ 6 - 0
src/main/java/com/izouma/nineth/web/CollectionController.java

@@ -111,6 +111,12 @@ public class CollectionController extends BaseController {
             }
             CollectionDTO collectionDTO = new CollectionDTO();
             BeanUtils.copyProperties(rc.getCollection(), collectionDTO);
+
+            // 减少数据量
+            collectionDTO.setDetail(null);
+            collectionDTO.setPrivileges(null);
+            collectionDTO.setProperties(null);
+
             return collectionDTO;
         }).collect(Collectors.toList());
     }

+ 5 - 3
src/main/java/com/izouma/nineth/web/PurchaseLevelController.java

@@ -1,14 +1,15 @@
 package com.izouma.nineth.web;
+
 import com.izouma.nineth.domain.PurchaseLevel;
-import com.izouma.nineth.service.PurchaseLevelService;
 import com.izouma.nineth.dto.PageQuery;
 import com.izouma.nineth.exception.BusinessException;
 import com.izouma.nineth.repo.PurchaseLevelRepo;
+import com.izouma.nineth.service.PurchaseLevelService;
 import com.izouma.nineth.utils.ObjUtils;
 import com.izouma.nineth.utils.excel.ExcelUtils;
 import lombok.AllArgsConstructor;
+import org.springframework.cache.annotation.Cacheable;
 import org.springframework.data.domain.Page;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
@@ -20,7 +21,7 @@ import java.util.List;
 @AllArgsConstructor
 public class PurchaseLevelController extends BaseController {
     private PurchaseLevelService purchaseLevelService;
-    private PurchaseLevelRepo purchaseLevelRepo;
+    private PurchaseLevelRepo    purchaseLevelRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")
@@ -35,6 +36,7 @@ public class PurchaseLevelController extends BaseController {
 
 
     //@PreAuthorize("hasRole('ADMIN')")
+    @Cacheable(value = "purchaseLevelList", key = "#pageQuery.hashCode()")
     @PostMapping("/all")
     public Page<PurchaseLevel> all(@RequestBody PageQuery pageQuery) {
         return purchaseLevelService.all(pageQuery);

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

@@ -69,8 +69,7 @@ public class UserController extends BaseController {
 
     @GetMapping("/my")
     public User my() {
-        return userRepo.findById(SecurityUtils.getAuthenticatedUser().getId())
-                .orElseThrow(new BusinessException("用户不存在"));
+        return userService.my(SecurityUtils.getAuthenticatedUser().getId());
     }
 
     @GetMapping("/myAdmin")