DatabaseApi.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287
  1. package com.caimei.controller.admin.data;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.caimei.annotation.CurrentUser;
  4. import com.caimei.model.ResponseJson;
  5. import com.caimei.model.po.SysUser;
  6. import com.caimei.model.vo.FileTreeVo;
  7. import com.caimei.service.data.DatabaseService;
  8. import io.swagger.annotations.Api;
  9. import io.swagger.annotations.ApiImplicitParam;
  10. import io.swagger.annotations.ApiImplicitParams;
  11. import io.swagger.annotations.ApiOperation;
  12. import lombok.RequiredArgsConstructor;
  13. import lombok.extern.slf4j.Slf4j;
  14. import org.springframework.web.bind.annotation.*;
  15. import org.springframework.web.multipart.MultipartFile;
  16. import org.springframework.web.multipart.commons.CommonsMultipartFile;
  17. import javax.servlet.http.HttpServletResponse;
  18. import java.io.File;
  19. import java.io.IOException;
  20. import java.util.HashMap;
  21. import java.util.List;
  22. /**
  23. * @author zzj
  24. */
  25. @Api(tags = "资料库Api")
  26. @Slf4j
  27. @RestController
  28. @RequiredArgsConstructor
  29. @RequestMapping("/database")
  30. public class DatabaseApi {
  31. private final DatabaseService databaseService;
  32. @ApiOperation("获取当前路径下文件")
  33. @ApiImplicitParam(name = "fileId", required = true, value = "文件Id")
  34. @GetMapping("/path/file")
  35. public ResponseJson<List<FileTreeVo>> getFileById(@CurrentUser SysUser sysUser, Integer fileId) {
  36. if (null == sysUser) {
  37. return ResponseJson.error("用户信息异常", null);
  38. }
  39. // 获取供应商用户id
  40. Integer userIdentity = sysUser.getUserIdentity();
  41. Integer authUserId = 2 == userIdentity ? sysUser.getId() : 3 == userIdentity ? sysUser.getParentId() : null;
  42. if (null == authUserId) {
  43. return ResponseJson.error("供应商用户id不能为空", null);
  44. }
  45. return databaseService.getFileById(fileId, authUserId);
  46. }
  47. @ApiOperation("获取文件详情")
  48. @ApiImplicitParam(name = "fileId", required = true, value = "文件Id")
  49. @GetMapping("/file/detail")
  50. public ResponseJson<FileTreeVo> getFileDetail(@CurrentUser SysUser sysUser, Integer fileId) {
  51. if (null == sysUser) {
  52. return ResponseJson.error("用户信息异常", null);
  53. }
  54. // 获取供应商用户id
  55. Integer userIdentity = sysUser.getUserIdentity();
  56. Integer authUserId = 2 == userIdentity ? sysUser.getId() : 3 == userIdentity ? sysUser.getParentId() : null;
  57. if (null == authUserId) {
  58. return ResponseJson.error("供应商用户id不能为空", null);
  59. }
  60. return databaseService.getFileDetail(fileId, authUserId);
  61. }
  62. @ApiOperation("面包屑")
  63. @ApiImplicitParam(name = "fileId", required = true, value = "当前文件夹Id")
  64. @GetMapping("/path/crumbs")
  65. public ResponseJson<FileTreeVo> getCrumbs(@CurrentUser SysUser sysUser, Integer fileId) {
  66. if (null == sysUser) {
  67. return ResponseJson.error("用户信息异常", null);
  68. }
  69. // 获取供应商用户id
  70. Integer userIdentity = sysUser.getUserIdentity();
  71. Integer authUserId = 2 == userIdentity ? sysUser.getId() : 3 == userIdentity ? sysUser.getParentId() : null;
  72. if (null == authUserId) {
  73. return ResponseJson.error("供应商用户id不能为空", null);
  74. }
  75. return databaseService.getCrumbs(fileId, authUserId);
  76. }
  77. @ApiOperation("创建文件夹")
  78. @ApiImplicitParams({
  79. @ApiImplicitParam(name = "fileId", required = true, value = "当前文件夹Id"),
  80. @ApiImplicitParam(name = "fileName", required = true, value = "文件夹名称")
  81. })
  82. @PostMapping("/path/package")
  83. public ResponseJson createPackage(@CurrentUser SysUser sysUser, @RequestBody String param) {
  84. if (null == sysUser) {
  85. return ResponseJson.error("用户信息异常", null);
  86. }
  87. // 获取供应商用户id
  88. Integer userIdentity = sysUser.getUserIdentity();
  89. Integer authUserId = 2 == userIdentity ? sysUser.getId() : 3 == userIdentity ? sysUser.getParentId() : null;
  90. if (null == authUserId) {
  91. return ResponseJson.error("供应商用户id不能为空", null);
  92. }
  93. JSONObject jsonObject = JSONObject.parseObject(param);
  94. Integer fileId = jsonObject.getInteger("fileId");
  95. String fileName = jsonObject.getString("fileName");
  96. return databaseService.createPackage(authUserId, fileId, fileName);
  97. }
  98. @ApiOperation("修改文件/文件夹名")
  99. @ApiImplicitParams({
  100. @ApiImplicitParam(name = "fileId", required = true, value = "当前文件夹Id"),
  101. @ApiImplicitParam(name = "fileName", required = true, value = "修改的文件名称"),
  102. @ApiImplicitParam(name = "packageType", required = true, value = "0是文件夹,1是文件")
  103. })
  104. @PostMapping("/update/fileName")
  105. public ResponseJson updatePackage(@RequestBody String params) {
  106. JSONObject parseObject = JSONObject.parseObject(params);
  107. Integer fileId = parseObject.getInteger("fileId");
  108. String fileName = parseObject.getString("fileName");
  109. Integer packageType = parseObject.getInteger("packageType");
  110. return databaseService.updatePackage(fileId, fileName, packageType);
  111. }
  112. @ApiOperation("移动文件")
  113. @ApiImplicitParams({
  114. @ApiImplicitParam(name = "fileId", required = true, value = "当前文件Id"),
  115. @ApiImplicitParam(name = "parentId", required = true, value = "目标文件夹Id")
  116. })
  117. @PostMapping("/move/package")
  118. public ResponseJson movePackage(@RequestBody String param) {
  119. JSONObject jsonObject = JSONObject.parseObject(param);
  120. String fileId = jsonObject.getString("fileId");
  121. Integer parentId = jsonObject.getInteger("parentId");
  122. return databaseService.movePackage(fileId, parentId);
  123. }
  124. @ApiOperation("文件夹目录")
  125. @GetMapping("/file/tree")
  126. public ResponseJson<FileTreeVo> getPackageTree(@CurrentUser SysUser sysUser) {
  127. if (null == sysUser) {
  128. return ResponseJson.error("用户信息异常", null);
  129. }
  130. // 获取供应商用户id
  131. Integer userIdentity = sysUser.getUserIdentity();
  132. Integer authUserId = 2 == userIdentity ? sysUser.getId() : 3 == userIdentity ? sysUser.getParentId() : null;
  133. if (null == authUserId) {
  134. return ResponseJson.error("供应商用户id不能为空", null);
  135. }
  136. return databaseService.getPackageTree(authUserId);
  137. }
  138. @ApiOperation("下载文件夹")
  139. @ApiImplicitParams({
  140. @ApiImplicitParam(name = "fileId", required = true, value = "当前文件夹Id"),
  141. @ApiImplicitParam(name = "fileName", required = true, value = "文件夹名称")
  142. })
  143. @GetMapping("/path/package/zip")
  144. public ResponseJson downLoadPackageZip(@CurrentUser SysUser sysUser, Integer fileId, String fileName, HttpServletResponse response) {
  145. if (null == sysUser) {
  146. return ResponseJson.error("用户信息异常", null);
  147. }
  148. // 获取供应商用户id
  149. Integer userIdentity = sysUser.getUserIdentity();
  150. Integer authUserId = 2 == userIdentity ? sysUser.getId() : 3 == userIdentity ? sysUser.getParentId() : null;
  151. if (null == authUserId) {
  152. return ResponseJson.error("供应商用户id不能为空", null);
  153. }
  154. return databaseService.downLoadZip(fileId, fileName, authUserId, response);
  155. }
  156. @ApiOperation("勾选文件下载")
  157. @ApiImplicitParams({
  158. @ApiImplicitParam(name = "fileId", required = true, value = "勾选文件Id,逗号分隔")
  159. })
  160. @GetMapping("/path/chose/zip")
  161. public ResponseJson downLoadChoseZip(@CurrentUser SysUser sysUser, String fileId, HttpServletResponse response) {
  162. if (null == sysUser) {
  163. return ResponseJson.error("用户信息异常", null);
  164. }
  165. // 获取供应商用户id
  166. Integer userIdentity = sysUser.getUserIdentity();
  167. Integer authUserId = 2 == userIdentity ? sysUser.getId() : 3 == userIdentity ? sysUser.getParentId() : null;
  168. if (null == authUserId) {
  169. return ResponseJson.error("供应商用户id不能为空", null);
  170. }
  171. return databaseService.downLoadChoseZip(fileId, authUserId, response);
  172. }
  173. @ApiOperation("删除文件")
  174. @ApiImplicitParam(name = "fileId", required = true, value = "当前文件Id")
  175. @PostMapping("/delete/file")
  176. public ResponseJson deleteFiles(@RequestBody String fileId) {
  177. JSONObject jsonObject = JSONObject.parseObject(fileId);
  178. String fil = jsonObject.getString("fileId");
  179. return databaseService.deleteFiles(fil);
  180. }
  181. @ApiOperation("上传结果")
  182. @ApiImplicitParam(name = "params", required = true, value = "fileName:文件原名;ossName:阿里云文件名:ossUrl:阿里云文件url;fileSize:文件大小;parentId:父级文件夹id;mime:文件application")
  183. @PostMapping("/oss/upload/result")
  184. public ResponseJson getOssUploadResult(@CurrentUser SysUser sysUser, @RequestBody String params) {
  185. if (null == sysUser) {
  186. return ResponseJson.error("用户信息异常", null);
  187. }
  188. // 获取供应商用户id
  189. Integer userIdentity = sysUser.getUserIdentity();
  190. Integer authUserId = 2 == userIdentity ? sysUser.getId() : 3 == userIdentity ? sysUser.getParentId() : null;
  191. if (null == authUserId) {
  192. return ResponseJson.error("供应商用户id不能为空", null);
  193. }
  194. JSONObject parseObject = JSONObject.parseObject(params);
  195. String fileName = parseObject.getString("fileName");
  196. String ossName = parseObject.getString("ossName");
  197. String ossUrl = parseObject.getString("ossUrl");
  198. String fileSize = parseObject.getString("fileSize");
  199. Integer parentId = parseObject.getInteger("parentId");
  200. String mime = parseObject.getString("mime");
  201. return databaseService.getOssUploadResult(authUserId, fileName, ossName, ossUrl, fileSize, parentId,mime);
  202. }
  203. @ApiOperation("获取阿里云token")
  204. @GetMapping("/oss/token")
  205. public ResponseJson<HashMap<String, String>> ossTokenGet() {
  206. return databaseService.ossTokenGet();
  207. }
  208. /**
  209. * 上传文件夹
  210. * @param multipartFiles
  211. * @return
  212. * @throws IOException
  213. */
  214. @PostMapping("/upload/dictionary")
  215. public ResponseJson uploadDictionary(@RequestParam("file")MultipartFile[] multipartFiles) throws IOException {
  216. // for (MultipartFile f: multipartFiles) {
  217. // //如果是文件夹,创建该文件夹并获取文件夹所有文件
  218. // String name="";
  219. // File file1;
  220. // if (f instanceof CommonsMultipartFile) {
  221. //
  222. // //转换成这个对象,然后我们需要通过里面的FileItem来获得相对路径
  223. //
  224. // CommonsMultipartFile f2 = (CommonsMultipartFile) f;
  225. //
  226. // name = f2.getName();
  227. //
  228. // System.out.println(name + " ---------相对路径");
  229. //
  230. // file1 = new File("e:" + "/" + name);
  231. //
  232. // file1.mkdirs();
  233. //
  234. // file1.createNewFile();
  235. //
  236. // f.transferTo(file1);
  237. //
  238. // }
  239. // System.out.println(f.getOriginalFilename() + " iii --------");
  240. // //如果是文件,直接添加
  241. //
  242. // }
  243. databaseService.uploadDictionary(multipartFiles);
  244. return ResponseJson.success();
  245. }
  246. @PostMapping("/upload/dictionary")
  247. public ResponseJson uploadPackage(@CurrentUser SysUser sysUser,@RequestBody String params){
  248. if (null == sysUser) {
  249. return ResponseJson.error("用户信息异常", null);
  250. }
  251. // 获取供应商用户id
  252. Integer userIdentity = sysUser.getUserIdentity();
  253. Integer authUserId = 2 == userIdentity ? sysUser.getId() : 3 == userIdentity ? sysUser.getParentId() : null;
  254. if (null == authUserId) {
  255. return ResponseJson.error("供应商用户id不能为空", null);
  256. }
  257. JSONObject parseObject = JSONObject.parseObject(params);
  258. String fileName = parseObject.getString("fileName");
  259. String ossName = parseObject.getString("ossName");
  260. String ossUrl = parseObject.getString("ossUrl");
  261. String fileSize = parseObject.getString("fileSize");
  262. Integer parentId = parseObject.getInteger("parentId");
  263. String mime = parseObject.getString("mime");
  264. String filePath=parseObject.getString("filePath");
  265. return databaseService.uploadPackage(authUserId, fileName, ossName, ossUrl, fileSize, parentId,mime,filePath);
  266. }
  267. }