diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/data/mapper/xml/PayFileDownloadRecordMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/data/mapper/xml/PayFileDownloadRecordMapper.xml
index cdc2f0d7..a97a1be6 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/data/mapper/xml/PayFileDownloadRecordMapper.xml
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/data/mapper/xml/PayFileDownloadRecordMapper.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CommitteeMeetingController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CommitteeMeetingController.java
index 18afad05..4eae05fd 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CommitteeMeetingController.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CommitteeMeetingController.java
@@ -217,8 +217,8 @@ public class CommitteeMeetingController extends JeroController queryWrapper = QueryGenerator.initQueryWrapper(payMeeting, request.getParameterMap());
- List pageList = payMeetingService.list(queryWrapper);
+ IPage queryPageList = payMeetingService.queryPageList(payMeeting, -1, -1, request);
+ List pageList = queryPageList.getRecords();
List
diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/IOSSFileService.java b/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/IOSSFileService.java
index cadfb73d..4ba97bb5 100644
--- a/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/IOSSFileService.java
+++ b/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/IOSSFileService.java
@@ -17,4 +17,8 @@ public interface IOSSFileService extends IService {
* @param ossFile
*/
void updateAndPush(OSSFile ossFile);
+
+ void saveDownloadTimes(String fileId,String userId);
+
+ Integer searchDownloadTimes(String fileId, String userId);
}
diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/impl/OSSFileServiceImpl.java b/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/impl/OSSFileServiceImpl.java
index 63e6d3f5..0f4f1bb5 100644
--- a/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/impl/OSSFileServiceImpl.java
+++ b/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/impl/OSSFileServiceImpl.java
@@ -1,20 +1,25 @@
package com.jero.modules.oss.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.util.AuthenticationUtils;
import com.jero.common.util.CommonUtils;
import com.jero.common.util.oss.OssBootUtil;
+import com.jero.modules.oss.entity.FileDownloadRecord;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.mapper.OSSFileMapper;
+import com.jero.modules.oss.mapper.FileDownloadRecordMapper;
import com.jero.modules.oss.service.IOSSFileService;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
+import javax.annotation.Resource;
import java.io.IOException;
@Service("ossFileService")
public class OSSFileServiceImpl extends ServiceImpl implements IOSSFileService {
-
+ @Resource
+ private FileDownloadRecordMapper fileDownloadRecordMapper;
@Override
public void upload(MultipartFile multipartFile) throws IOException {
String fileName = multipartFile.getOriginalFilename();
@@ -47,4 +52,20 @@ public class OSSFileServiceImpl extends ServiceImpl impl
AuthenticationUtils.post("/oss/file/updateAndPush",null,ossFile);
}
+ @Override
+ public void saveDownloadTimes(String fileId,String userId) {
+ FileDownloadRecord fileDownloadRecord = new FileDownloadRecord();
+ fileDownloadRecord.setFileId(fileId);
+ fileDownloadRecord.setUserId(userId);
+ fileDownloadRecordMapper.insert(fileDownloadRecord);
+ }
+
+ @Override
+ public Integer searchDownloadTimes(String fileId, String userId) {
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq("user_id",userId);
+ wrapper.eq("file_id",fileId);
+ return fileDownloadRecordMapper.selectCount(wrapper);
+ }
+
}
diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java
index 68e41505..d7ad456a 100644
--- a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java
+++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java
@@ -169,6 +169,11 @@ public class CommonController {
}
response.addHeader("Content-Disposition", "attachment;fileName=" + new String(fileName.getBytes("UTF-8"),"iso-8859-1"));
response.setContentType("application/force-download");// 设置强制下载不打开
+ if (type == null) {
+ if (fileName.contains(".jpg") || fileName.contains(".png") || fileName.contains(".gif") || fileName.contains(".jpeg")) {
+ response.setContentType("image/png;image/jpg;image/gif;image/jpeg");
+ }
+ }
outputStream = response.getOutputStream();
byte[] buf = new byte[1024];
int len;
@@ -217,6 +222,115 @@ public class CommonController {
}
+ /**
+ * 预览图片&下载文件
+ *
+ * @param id 传入文件id
+ * @param request
+ * @param response
+ */
+ @GetMapping(value = "/userDownload/{id}")
+ public void download(@PathVariable String id,HttpServletRequest request, HttpServletResponse response,String type) {
+ // 查询数据表数据是否存在
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(OSSFile::getId,id);
+ OSSFile ossFile = ossFileService.getOne(queryWrapper);
+ if( null == ossFile){
+ throw new JeroBootException("文件不存在..");
+ }
+ String fileUrl = ossFile.getUrl();
+ InputStream inputStream = null;
+ OutputStream outputStream = null;
+ try {
+ String fileName = "";
+ if(CommonConstant.UPLOAD_TYPE_LOCAL.equals(uploadType)){
+ //本地下载
+ String filePath = uploadpath + File.separator + fileUrl;
+ File file = new File(filePath);
+ if(!file.exists()){
+ response.setStatus(404);
+ throw new RuntimeException("文件不存在..");
+ }
+ // 文件名称
+ fileName = file.getName();
+ inputStream = new BufferedInputStream(new FileInputStream(filePath));
+ }else if(CommonConstant.UPLOAD_TYPE_MINIO.equals(uploadType)){
+ // minio 下载
+ // 通过MinioUtil查询时 只需要桶后面的路径
+ String minioUrl = MinioUtil.getMinioUrl();
+ // Linux/unix 系统下文件路径分隔符为"/" 获取minio与存储桶的路径
+ minioUrl = minioUrl + MinioUtil.getBucketName() + "/";
+ String url = fileUrl.replace(minioUrl, "");
+ // 文件名称
+ fileName = ossFile.getFileName();
+ inputStream = MinioUtil.getMinioFile(MinioUtil.getBucketName(), url);
+ }
+
+ ossFileService.updateById(ossFile);
+ LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+ if (loginUser.getIsCompanyUser()) {
+ Integer integer = ossFileService.searchDownloadTimes(ossFile.getId(), loginUser.getId());
+ if (integer >= 5) {
+ throw new JeroBootException("超出下载次数限制");
+ }
+ }
+ ossFileService.saveDownloadTimes(ossFile.getId(), loginUser.getId());
+
+ response.addHeader("Content-Disposition", "attachment;fileName=" + new String(fileName.getBytes("UTF-8"),"iso-8859-1"));
+ response.setContentType("application/force-download");// 设置强制下载不打开
+ if (type == null) {
+ if (fileName.contains(".jpg") || fileName.contains(".png") || fileName.contains(".gif") || fileName.contains(".jpeg")) {
+ response.setContentType("image/png;image/jpg;image/gif;image/jpeg");
+ }
+ }
+ outputStream = response.getOutputStream();
+ byte[] buf = new byte[1024];
+ int len;
+ while ((len = inputStream.read(buf)) > 0) {
+ outputStream.write(buf, 0, len);
+ }
+ response.flushBuffer();
+ //统计下载和上传次数
+ //if ("download".equals(type)) {
+ Integer downloadNumber = ossFile.getDownloadNumber();
+ if (downloadNumber == null) {
+ ossFile.setDownloadNumber(0);
+ } else {
+ ossFile.setDownloadNumber(downloadNumber + 1);
+ }
+
+ //} else if ("view".equals(type)) {
+ // Integer viewNumber = ossFile.getViewNumber();
+ // if (viewNumber == null) {
+ // ossFile.setViewNumber(0);
+ // } else {
+ // ossFile.setViewNumber(viewNumber + 1);
+ // }
+ // ossFileService.updateAndPush(ossFile);
+ //}
+ } catch (IOException e) {
+ log.error("预览文件失败" + e.getMessage());
+ response.setStatus(404);
+ e.printStackTrace();
+ } finally {
+ if (inputStream != null) {
+ try {
+ inputStream.close();
+ } catch (IOException e) {
+ log.error(e.getMessage(), e);
+ }
+ }
+ if (outputStream != null) {
+ try {
+ outputStream.close();
+ } catch (IOException e) {
+ log.error(e.getMessage(), e);
+ }
+ }
+ }
+
+ }
+
/**
* @功能:pdf预览Iframe
* @param modelAndView
diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java
index 610173ef..bf5af226 100644
--- a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java
+++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java
@@ -494,6 +494,19 @@ public class SysUserController {
}
return result;
}
+
+ @RequestMapping(value = "/queryByIdStandards", method = RequestMethod.GET)
+ public Result queryByIdStandards(@RequestParam(name = "id", required = true) String id) {
+ Result result = new Result();
+ SysUser sysUser = sysUserService.getById(id);
+ if (sysUser == null) {
+ return result.error500("未找到对应实体");
+ } else {
+ sysUser.setPhone(PasswordUtil.decrypt(sysUser.getPhone()));
+ return Result.OK(sysUser);
+ }
+ }
+
@RequiresPermissions("sys:user:list")
@RequestMapping(value = "/queryUserRole", method = RequestMethod.GET)
public Result> queryUserRole(@RequestParam(name = "userid", required = true) String userid) {