ApiFileService.java 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. package com.aip.gateway.api.service.impl;
  2. import com.aip.gateway.api.aip.model.SetFileInfo;
  3. import com.aip.gateway.api.aip.utils.AipFileUtils;
  4. import com.aip.gateway.api.model.app.CheckAip;
  5. import com.aip.gateway.api.model.app.CheckMultipartFile;
  6. import com.aip.gateway.api.model.request.*;
  7. import com.aip.gateway.api.model.response.ResponseFile;
  8. import com.aip.gateway.api.model.response.ResponseInfo;
  9. import com.aip.gateway.api.repository.AipFileRepository;
  10. import com.aip.gateway.api.repository.AppRepository;
  11. import com.aip.gateway.api.service.IApiFileService;
  12. import lombok.extern.slf4j.Slf4j;
  13. import org.springframework.stereotype.Service;
  14. import org.springframework.web.multipart.MultipartFile;
  15. @Slf4j
  16. @Service
  17. public class ApiFileService extends AbstractAipService implements IApiFileService {
  18. public ApiFileService(AppRepository repo, AipFileRepository aipFile) {
  19. super(repo, aipFile);
  20. }
  21. @Override
  22. public ResponseInfo getInfo(RequestFile req) {
  23. try {
  24. String reqFileName = getRequestFileName(req.getRealFileName());
  25. if (!AipFileUtils.isExists(reqFileName)) {
  26. return new ResponseInfo(101, "파일이 존재하지 않습니다.");
  27. }
  28. String newFileExt = getSupportedFileType(reqFileName);
  29. if (newFileExt == null) {
  30. return new ResponseInfo(102, "지원하지 않는 파일형식 입니다.");
  31. }
  32. return responseGetFileInfo(this.aipFile.getManager().getFileInfo(reqFileName), req.getDispFileName());
  33. }
  34. catch (Exception e) {
  35. return responseInfoException(e);
  36. }
  37. }
  38. @Override
  39. public ResponseFile setLabel(RequestFileSet req) {
  40. try {
  41. CheckAip check = checkAipRequest(req.getApiGuid(), req.getDispFileName(), req.getRealFileName(), false);
  42. if (check.getErrorCode() != 0) {
  43. return new ResponseFile(check.getErrorCode(), check.getErrorMessage(), check.getDispFileName());
  44. }
  45. SetFileInfo result = this.aipFile.getManager().setLabel(check.getReqFileName(), check.getActualFileName(), req.getEmail(), req.getAipGuid(), "", req.getComment());
  46. return responseSetFile(result, req.getDispFileName(), check.getActualFileName());
  47. }
  48. catch (Exception e) {
  49. return responseFileException(e, req.getDispFileName());
  50. }
  51. }
  52. @Override
  53. public ResponseFile delLabel(RequestFileDel req) {
  54. try {
  55. CheckAip check = checkAipRequest(req.getApiGuid(), req.getDispFileName(), req.getRealFileName(), false);
  56. if (check.getErrorCode() != 0) {
  57. return new ResponseFile(check.getErrorCode(), check.getErrorMessage(), check.getDispFileName());
  58. }
  59. SetFileInfo result = this.aipFile.getManager().deleteLabel(check.getReqFileName(), check.getActualFileName(), req.getEmail(), req.getComment(), false);
  60. return responseSetFile(result, req.getDispFileName(), check.getActualFileName());
  61. }
  62. catch (Exception e) {
  63. return responseFileException(e, req.getDispFileName());
  64. }
  65. }
  66. @Override
  67. public ResponseFile setProtection(RequestFileSet req) {
  68. try {
  69. CheckAip check = checkAipRequest(req.getApiGuid(), req.getDispFileName(), req.getRealFileName(), false);
  70. if (check.getErrorCode() != 0) {
  71. return new ResponseFile(check.getErrorCode(), check.getErrorMessage(), check.getDispFileName());
  72. }
  73. SetFileInfo result = this.aipFile.getManager().setProtection(check.getReqFileName(), check.getActualFileName(), req.getEmail(), req.getAipGuid(), req.getComment());
  74. return responseSetFile(result, req.getDispFileName(), check.getActualFileName());
  75. }
  76. catch (Exception e) {
  77. return responseFileException(e, req.getDispFileName());
  78. }
  79. }
  80. @Override
  81. public ResponseFile delProtection(RequestFileDel req) {
  82. try {
  83. CheckAip check = checkAipRequest(req.getApiGuid(), req.getDispFileName(), req.getRealFileName(), false);
  84. if (check.getErrorCode() != 0) {
  85. return new ResponseFile(check.getErrorCode(), check.getErrorMessage(), check.getDispFileName());
  86. }
  87. SetFileInfo result = this.aipFile.getManager().deleteProtection(check.getReqFileName(), check.getActualFileName(), req.getEmail(), req.getComment());
  88. return responseSetFile(result, req.getDispFileName(), check.getActualFileName());
  89. }
  90. catch (Exception e) {
  91. return responseFileException(e, req.getDispFileName());
  92. }
  93. }
  94. @Override
  95. public ResponseFile setLabelProtection(RequestFileAllSet req) {
  96. try {
  97. CheckAip check = checkAipRequest(req.getApiGuid(), req.getDispFileName(), req.getRealFileName(), false);
  98. if (check.getErrorCode() != 0) {
  99. return new ResponseFile(check.getErrorCode(), check.getErrorMessage(), check.getDispFileName());
  100. }
  101. SetFileInfo result = this.aipFile.getManager().setLabel(check.getReqFileName(), check.getActualFileName(), req.getEmail(), req.getLabelGuid(), req.getTemplateGuid(), req.getComment());
  102. return responseSetFile(result, req.getDispFileName(), check.getActualFileName());
  103. }
  104. catch (Exception e) {
  105. return responseFileException(e, req.getDispFileName());
  106. }
  107. }
  108. @Override
  109. public ResponseFile delLabelProtection(RequestFileDel req) {
  110. try {
  111. CheckAip check = checkAipRequest(req.getApiGuid(), req.getDispFileName(), req.getRealFileName(), false);
  112. if (check.getErrorCode() != 0) {
  113. return new ResponseFile(check.getErrorCode(), check.getErrorMessage(), check.getDispFileName());
  114. }
  115. SetFileInfo result = this.aipFile.getManager().deleteLabel(check.getReqFileName(), check.getActualFileName(), req.getEmail(), req.getComment(), true);
  116. return responseSetFile(result, req.getDispFileName(), check.getActualFileName());
  117. }
  118. catch (Exception e) {
  119. return responseFileException(e, req.getDispFileName());
  120. }
  121. }
  122. @Override
  123. public ResponseFile encryptFile(MultipartFile file, RequestBase baseReq) {
  124. CheckMultipartFile result = checkMultipartFile(file, baseReq.getApiGuid());
  125. if (result.getErrorCode() != 0) {
  126. return new ResponseFile(result.getErrorCode(), result.getErrorMessage(), result.getDispFileName());
  127. }
  128. RequestFileSet req = new RequestFileSet(baseReq.getApiKey(), baseReq.getEmail(), baseReq.getApiGuid(), "",
  129. result.getDispFileName(), result.getSaveFileName(), this.repo.getSettings().getSetLabelId(), "SetEncryptFile");
  130. ResponseFile response = setLabel(req);
  131. AipFileUtils.delete(getRequestFileName(result.getSaveFileName()));
  132. return response;
  133. }
  134. @Override
  135. public ResponseFile decryptFile(MultipartFile file, RequestBase baseReq) {
  136. CheckMultipartFile result = checkMultipartFile(file, baseReq.getApiGuid());
  137. if (result.getErrorCode() != 0) {
  138. return new ResponseFile(result.getErrorCode(), result.getErrorMessage(), result.getDispFileName());
  139. }
  140. RequestFileDel req = new RequestFileDel(baseReq.getApiKey(), baseReq.getEmail(), baseReq.getApiGuid(), "",
  141. result.getDispFileName(), result.getSaveFileName());
  142. req.setComment("DelDecryptFile");
  143. ResponseFile response = delLabel(req);
  144. AipFileUtils.delete(getRequestFileName(result.getSaveFileName()));
  145. return response;
  146. }
  147. }