Commit 211fd98ce4523037e6d8f437fc2cf91451049547

Authored by 648540858
1 parent 72434a5d

添加磁盘空间查询接口

src/main/java/top/panll/assist/config/StartConfig.java
... ... @@ -35,6 +35,9 @@ public class StartConfig implements CommandLineRunner {
35 35 @Override
36 36 public void run(String... args) {
37 37 String record = userSettings.getRecord();
  38 + if (!record.endsWith(File.separator)) {
  39 + userSettings.setRecord(userSettings.getRecord() + File.separator);
  40 + }
38 41 File recordFile = new File(record);
39 42 if (!recordFile.exists() || !recordFile.isDirectory()) {
40 43 logger.error("[userSettings.record]配置错误,请检查路径是否存在");
... ...
src/main/java/top/panll/assist/controller/RecordController.java
1 1 package top.panll.assist.controller;
2 2  
  3 +import com.alibaba.fastjson.JSON;
3 4 import com.alibaba.fastjson.JSONObject;
4 5 import org.slf4j.Logger;
5 6 import org.slf4j.LoggerFactory;
... ... @@ -9,6 +10,7 @@ import org.springframework.http.ResponseEntity;
9 10 import org.springframework.web.bind.annotation.*;
10 11 import top.panll.assist.controller.bean.WVPResult;
11 12 import top.panll.assist.dto.MergeOrCutTaskInfo;
  13 +import top.panll.assist.dto.SpaceInfo;
12 14 import top.panll.assist.service.VideoFileService;
13 15 import top.panll.assist.utils.PageInfo;
14 16  
... ... @@ -271,4 +273,19 @@ public class RecordController {
271 273  
272 274 return new ResponseEntity<String>(ret.toString(), HttpStatus.OK);
273 275 }
  276 +
  277 + /**
  278 + * 磁盘空间查询
  279 + * @return
  280 + */
  281 + @ResponseBody
  282 + @GetMapping(value = "/space", produces = "application/json;charset=UTF-8")
  283 + public ResponseEntity<String> getSpace() {
  284 + JSONObject ret = new JSONObject();
  285 + ret.put("code", 0);
  286 + ret.put("msg", "success");
  287 + SpaceInfo spaceInfo = videoFileService.getSpaceInfo();
  288 + ret.put("data", JSON.toJSON(spaceInfo));
  289 + return new ResponseEntity<>(ret.toString(), HttpStatus.OK);
  290 + }
274 291 }
... ...
src/main/java/top/panll/assist/dto/SpaceInfo.java 0 → 100644
  1 +package top.panll.assist.dto;
  2 +
  3 +public class SpaceInfo {
  4 + private long total;
  5 + private long free;
  6 +
  7 + public long getTotal() {
  8 + return total;
  9 + }
  10 +
  11 + public void setTotal(long total) {
  12 + this.total = total;
  13 + }
  14 +
  15 + public long getFree() {
  16 + return free;
  17 + }
  18 +
  19 + public void setFree(long free) {
  20 + this.free = free;
  21 + }
  22 +
  23 +}
... ...
src/main/java/top/panll/assist/service/VideoFileService.java
... ... @@ -11,6 +11,7 @@ import org.springframework.context.annotation.Bean;
11 11 import org.springframework.data.redis.core.StringRedisTemplate;
12 12 import org.springframework.stereotype.Service;
13 13 import org.springframework.util.DigestUtils;
  14 +import top.panll.assist.dto.SpaceInfo;
14 15 import top.panll.assist.utils.RedisUtil;
15 16 import top.panll.assist.dto.MergeOrCutTaskInfo;
16 17 import top.panll.assist.dto.UserSettings;
... ... @@ -72,6 +73,43 @@ public class VideoFileService {
72 73 }
73 74 }
74 75  
  76 + public SpaceInfo getSpaceInfo(){
  77 + File recordFile = new File(userSettings.getRecord());
  78 + SpaceInfo spaceInfo = new SpaceInfo();
  79 + spaceInfo.setFree(recordFile.getFreeSpace());
  80 + spaceInfo.setTotal(recordFile.getTotalSpace());
  81 + return spaceInfo;
  82 + }
  83 +
  84 +// public String getPrintSize(long size) {
  85 +// // 如果字节数少于1024,则直接以B为单位,否则先除于1024,后3位因太少无意义
  86 +// if (size < 1024) {
  87 +// return String.valueOf(size) + "B";
  88 +// } else {
  89 +// size = size / 1024;
  90 +// }
  91 +// // 如果原字节数除于1024之后,少于1024,则可以直接以KB作为单位
  92 +// // 因为还没有到达要使用另一个单位的时候
  93 +// // 接下去以此类推
  94 +// if (size < 1024) {
  95 +// return String.valueOf(size) + "KB";
  96 +// } else {
  97 +// size = size / 1024;
  98 +// }
  99 +// if (size < 1024) {
  100 +// // 因为如果以MB为单位的话,要保留最后1位小数,
  101 +// // 因此,把此数乘以100之后再取余
  102 +// size = size * 100;
  103 +// return String.valueOf((size / 100)) + "."
  104 +// + String.valueOf((size % 100)) + "MB";
  105 +// } else {
  106 +// // 否则如果要以GB为单位的,先除于1024再作同样的处理
  107 +// size = size * 100 / 1024;
  108 +// return String.valueOf((size / 100)) + "."
  109 +// + String.valueOf((size % 100)) + "GB";
  110 +// }
  111 +// }
  112 +
75 113 public List<File> getStreamList(String app) {
76 114 File appFile = new File(userSettings.getRecord() + File.separator + app);
77 115 if (appFile != null) {
... ...