ProjectFileServiceImpl.java 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. package com.hssx.cloudmodel.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.hssx.cloudmodel.constant.Constant;
  4. import com.hssx.cloudmodel.entity.ProjectFile;
  5. import com.hssx.cloudmodel.entity.ProjectOperationDynamics;
  6. import com.hssx.cloudmodel.entity.User;
  7. import com.hssx.cloudmodel.entity.vo.UserVO;
  8. import com.hssx.cloudmodel.mapper.ProjectFileMapper;
  9. import com.hssx.cloudmodel.mapper.ProjectOperationDynamicsMapper;
  10. import com.hssx.cloudmodel.mapper.UserMapper;
  11. import com.hssx.cloudmodel.service.ProjectFileService;
  12. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  13. import com.hssx.cloudmodel.service.ProjectOperationDynamicsService;
  14. import com.hssx.cloudmodel.util.FileUtil;
  15. import com.hssx.cloudmodel.util.HttpRespMsg;
  16. import org.springframework.stereotype.Service;
  17. import org.springframework.web.multipart.MultipartFile;
  18. import javax.annotation.Resource;
  19. import java.io.File;
  20. import java.io.IOException;
  21. import java.util.List;
  22. import java.util.UUID;
  23. /**
  24. * <p>
  25. * 服务实现类
  26. * </p>
  27. *
  28. * @author 吴涛涛
  29. * @since 2019-07-30
  30. */
  31. @Service
  32. public class ProjectFileServiceImpl extends ServiceImpl<ProjectFileMapper, ProjectFile> implements ProjectFileService {
  33. @Resource
  34. UserMapper userMapper;
  35. @Resource
  36. ProjectFileMapper projectFileMapper;
  37. @Resource
  38. ProjectOperationDynamicsMapper projectOperationDynamicsMapper;
  39. @Override
  40. public HttpRespMsg addFile(UserVO userVO, MultipartFile file, String path) {
  41. HttpRespMsg msg = new HttpRespMsg();
  42. User user = userMapper.selectOne(new QueryWrapper<User>().eq("head_imgurl", userVO.getToken()));
  43. if(user != null){
  44. if (file != null && !file.isEmpty()) {
  45. ProjectFile projectFile = new ProjectFile();
  46. projectFile.setUploaderId(user.getId());
  47. projectFile.setUploader(user.getUsername());
  48. projectFile.setProjectId(userVO.getProjectId());
  49. File dir = null;
  50. dir = new File(path);
  51. // D://cloud/upload 文件上传后所存储的位置,部署到服务器上时配置服务器地址即可
  52. if (!dir.exists()) {
  53. dir.mkdirs();
  54. }
  55. String fileName = "";
  56. if (file != null && !file.isEmpty()) {
  57. fileName = file.getOriginalFilename();
  58. projectFile.setFileName(fileName);
  59. projectFile.setFileSize(FileUtil.getReadableFileSize(file.getSize()));
  60. System.out.println("上传文件名称" + file.getName() + ", dir = " + dir.getAbsolutePath());
  61. int pos = fileName.lastIndexOf(".");
  62. String rand = UUID.randomUUID().toString().replaceAll("-", "");
  63. String sufix = fileName.substring(pos);
  64. fileName = rand + sufix;
  65. projectFile.setFileType(sufix);//文件后缀
  66. projectFile.setUrl("/upload/"+fileName);
  67. File saveFile = new File(dir, fileName);
  68. projectFileMapper.insert(projectFile);
  69. try {
  70. saveFile.createNewFile();
  71. file.transferTo(saveFile);
  72. } catch (IOException e) {
  73. e.printStackTrace();
  74. projectFile = null;
  75. } catch (Exception e) {
  76. e.printStackTrace();
  77. projectFile = null;
  78. }
  79. //添加上传记录
  80. ProjectOperationDynamics dynamics = new ProjectOperationDynamics();
  81. dynamics.setContent(Constant.UPLOAD);
  82. dynamics.setFileName(file.getOriginalFilename());
  83. dynamics.setOperatorId(user.getId());
  84. dynamics.setOperator(user.getUsername());
  85. dynamics.setProjectId(userVO.getProjectId());
  86. projectOperationDynamicsMapper.insert(dynamics);
  87. }
  88. msg.data = projectFile;
  89. }
  90. }else{
  91. msg.setError("当前用户不存在或者未登录");
  92. }
  93. return msg;
  94. }
  95. @Override
  96. public HttpRespMsg dowloadFile(ProjectFile projectFile, String token) {
  97. HttpRespMsg msg = new HttpRespMsg();
  98. User user = userMapper.selectOne(new QueryWrapper<User>().eq("head_imgurl", token));
  99. //添加上传记录
  100. ProjectOperationDynamics dynamics = new ProjectOperationDynamics();
  101. dynamics.setContent(Constant.UPLOAD);
  102. ProjectFile file = projectFileMapper.selectById(projectFile.getId());
  103. dynamics.setFileName(file.getFileName());
  104. dynamics.setOperatorId(user.getId());
  105. dynamics.setOperator(user.getUsername());
  106. dynamics.setProjectId(projectFile.getProjectId());
  107. projectOperationDynamicsMapper.insert(dynamics);
  108. return msg;
  109. }
  110. @Override
  111. public HttpRespMsg getFileList(UserVO userVO) {
  112. HttpRespMsg msg = new HttpRespMsg();
  113. User user = userMapper.selectOne(new QueryWrapper<User>().eq("head_imgurl", userVO.getToken()));
  114. List<ProjectFile> list = projectFileMapper.selectList(new QueryWrapper<ProjectFile>().eq("project_id", userVO.getProjectId()).orderByDesc("id"));
  115. msg.data = list;
  116. return msg;
  117. }
  118. @Override
  119. public HttpRespMsg delFile(ProjectFile projectFile) {
  120. HttpRespMsg msg = new HttpRespMsg();
  121. msg.data = projectFileMapper.deleteById(projectFile.getId());
  122. return msg;
  123. }
  124. }