content: package com.java2nb.novel.controller;
  
  
  import com.java2nb.novel.core.cache.CacheKey;
  import com.java2nb.novel.core.cache.CacheService;
  import com.java2nb.novel.core.enums.ResponseStatus;
  import com.java2nb.novel.service.BookService;
  import com.java2nb.novel.service.FriendLinkService;
  import com.java2nb.novel.service.NewsService;
  import io.github.xxyopen.model.resp.RestResult;
  import lombok.RequiredArgsConstructor;
  import lombok.extern.slf4j.Slf4j;
  import org.springframework.beans.factory.annotation.Value;
  import org.springframework.web.bind.annotation.GetMapping;
  import org.springframework.web.bind.annotation.PathVariable;
  import org.springframework.web.bind.annotation.RequestMapping;
  import org.springframework.web.bind.annotation.RestController;
  
  /**
   * @author 11797
   */
  @RequestMapping("cache")
  @RestController
  @Slf4j
  @RequiredArgsConstructor
  public class CacheController {
  
      @Value("${cache.manager.password}")
      private String cacheManagerPass;
  
      private final CacheService cacheService;
  
      private final BookService bookService;
  
      private final NewsService newsService;
  
      private final FriendLinkService friendLinkService;
  
      /**
       * 刷新缓存
       * @param type 缓存类型，1：首页书籍推荐，2：首页新闻，3：首页友情链接
       * */
      @GetMapping("refresh/{pass}/{type}")
      public RestResult<Void> refreshCache(@PathVariable("type") Byte type, @PathVariable("pass") String pass){
          if(!cacheManagerPass.equals(pass)){
              return RestResult.fail(ResponseStatus.PASSWORD_ERROR);
          }
          switch (type){
              case 1:{
                  //刷新首页推荐书籍缓存
                  cacheService.del(CacheKey.INDEX_BOOK_SETTINGS_KEY);
                  bookService.listBookSettingVO();
                  break;
              }
              case 2:{
                  //刷新首页新闻缓存
                  cacheService.del(CacheKey.INDEX_NEWS_KEY);
                  newsService.listIndexNews();
                  break;
              }
              case 3:{
                  //刷新首页友情链接
                  cacheService.del(CacheKey.INDEX_LINK_KEY);
                  friendLinkService.listIndexLink();
                  break;
              }
              default:{
                  break;
              }
  
          }
  
          return RestResult.ok();
      }
  
  
  
  
  }
  