content: package org.jeecg.modules.monitor.controller;
  
  import com.alibaba.fastjson.JSONArray;
  import lombok.extern.slf4j.Slf4j;
  import org.jeecg.common.api.vo.Result;
  import org.jeecg.modules.monitor.domain.RedisInfo;
  import org.jeecg.modules.monitor.service.RedisService;
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.web.bind.annotation.GetMapping;
  import org.springframework.web.bind.annotation.RequestMapping;
  import org.springframework.web.bind.annotation.RestController;
  
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;
  import javax.swing.filechooser.FileSystemView;
  import java.io.File;
  import java.util.ArrayList;
  import java.util.HashMap;
  import java.util.List;
  import java.util.Map;
  
  @Slf4j
  @RestController
  @RequestMapping("/sys/actuator/redis")
  public class ActuatorRedisController {
  
      @Autowired
      private RedisService redisService;
  
      /**
       * Redis详细信息
       * @return
       * @throws Exception
       */
      @GetMapping("/info")
      public Result<?> getRedisInfo() throws Exception {
          List<RedisInfo> infoList = this.redisService.getRedisInfo();
          log.info(infoList.toString());
          return Result.ok(infoList);
      }
  
      @GetMapping("/keysSize")
      public Map<String, Object> getKeysSize() throws Exception {
          return redisService.getKeysSize();
      }
  
      /**
       * 获取redis key数量 for 报表
       * @return
       * @throws Exception
       */
      @GetMapping("/keysSizeForReport")
      public Map<String, JSONArray> getKeysSizeReport() throws Exception {
  		return redisService.getMapForReport("1");
      }
      /**
       * 获取redis 内存 for 报表
       *
       * @return
       * @throws Exception
       */
      @GetMapping("/memoryForReport")
      public Map<String, JSONArray> memoryForReport() throws Exception {
  		return redisService.getMapForReport("2");
      }
      /**
       * 获取redis 全部信息 for 报表
       * @return
       * @throws Exception
       */
      @GetMapping("/infoForReport")
      public Map<String, JSONArray> infoForReport() throws Exception {
  		return redisService.getMapForReport("3");
      }
  
      @GetMapping("/memoryInfo")
      public Map<String, Object> getMemoryInfo() throws Exception {
          return redisService.getMemoryInfo();
      }
      
    //update-begin--Author:zhangweijian  Date:20190425 for：获取磁盘信息
    	/**
    	 * @功能：获取磁盘信息
    	 * @param request
    	 * @param response
    	 * @return
    	 */
    	@GetMapping("/queryDiskInfo")
    	public Result<List<Map<String,Object>>> queryDiskInfo(HttpServletRequest request, HttpServletResponse response){
    		Result<List<Map<String,Object>>> res = new Result<>();
    		try {
    			// 当前文件系统类
    	        FileSystemView fsv = FileSystemView.getFileSystemView();
    	        // 列出所有windows 磁盘
    	        File[] fs = File.listRoots();
    	        log.info("查询磁盘信息:"+fs.length+"个");
    	        List<Map<String,Object>> list = new ArrayList<>();
    	        
    	        for (int i = 0; i < fs.length; i++) {
    	        	if(fs[i].getTotalSpace()==0) {
    	        		continue;
    	        	}
    	        	Map<String,Object> map = new HashMap<>();
    	        	map.put("name", fsv.getSystemDisplayName(fs[i]));
    	        	map.put("max", fs[i].getTotalSpace());
    	        	map.put("rest", fs[i].getFreeSpace());
    	        	map.put("restPPT", (fs[i].getTotalSpace()-fs[i].getFreeSpace())*100/fs[i].getTotalSpace());
    	        	list.add(map);
    	        	log.info(map.toString());
    	        }
    	        res.setResult(list);
    	        res.success("查询成功");
    		} catch (Exception e) {
    			res.error500("查询失败"+e.getMessage());
    		}
    		return res;
    	}
    	//update-end--Author:zhangweijian  Date:20190425 for：获取磁盘信息
  }
  