From 80b5a98c573b383ab4e0fa19a034db183c19a8ac Mon Sep 17 00:00:00 2001 From: liangwen <2357318727@qq.com> Date: Sat, 13 Sep 2025 09:46:27 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=B8=9A=E5=8A=A1=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E7=B1=BB=E5=8F=8A=E4=B8=9A=E5=8A=A1=E6=8E=A5=E5=8F=A3=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E7=B1=BB=E5=8C=85=E8=B7=AF=E5=BE=84=E4=BC=98=E5=8C=96?= =?UTF-8?q?=EF=BC=9B=202=E3=80=81=E4=B8=8B=E8=BD=BD=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E5=A2=9E=E5=88=A0=E6=9F=A5=E6=94=B9=E6=8E=A5=E5=8F=A3=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=EF=BC=9B=203=E3=80=81=E4=B8=8B=E8=BD=BD=E5=92=8C?= =?UTF-8?q?=E6=89=B9=E9=87=8F=E4=B8=8B=E8=BD=BDAPI=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BF=9D=E5=AD=98=E4=B8=8B=E8=BD=BD=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E5=8A=9F=E8=83=BD=EF=BC=9B=204=E3=80=81=E8=8E=B7?= =?UTF-8?q?=E5=8F=96Token=E6=96=B9=E6=B3=95=E5=A2=9E=E5=8A=A0=E4=BB=8ECook?= =?UTF-8?q?ie=E8=8E=B7=E5=8F=96Token=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/system/SysRoleController.java | 4 +- hb-admin/src/main/resources/application.yml | 2 +- .../java/com/ruoyi/file/aop/WebLogAcpect.java | 18 +- .../ruoyi/file/component/AsyncTaskComp.java | 4 +- .../ruoyi/file/component/FileDealComp.java | 4 +- .../file/controller/CommonFileController.java | 6 +- .../controller/DownloadRecordController.java | 104 +++++++++ .../ruoyi/file/controller/FileController.java | 4 +- .../controller/FiletransferController.java | 23 +- .../file/controller/NoticeController.java | 2 +- .../file/controller/OfficeController.java | 4 +- .../controller/RecoveryFileController.java | 8 +- .../file/controller/ShareController.java | 6 +- .../file/controller/SysParamController.java | 2 +- .../ruoyi/file/controller/TaskController.java | 6 +- .../ruoyi/file/controller/UserController.java | 7 +- .../com/ruoyi/file/domain/DownloadRecord.java | 61 ++++++ .../ruoyi/file/domain/DownloadRecordItem.java | 33 +++ .../file/mapper/DownloadRecordMapper.java | 87 ++++++++ .../{api => service}/ICommonFileService.java | 2 +- .../file/service/IDownloadRecordService.java | 65 ++++++ .../IElasticSearchService.java | 0 .../IFilePermissionService.java | 2 +- .../file/{api => service}/IFileService.java | 2 +- .../IFiletransferService.java | 2 +- .../file/{api => service}/INoticeService.java | 2 +- .../IOperationLogService.java | 2 +- .../IRecoveryFileService.java | 2 +- .../{api => service}/IShareFileService.java | 2 +- .../file/{api => service}/IShareService.java | 2 +- .../{api => service}/IStorageService.java | 2 +- .../{api => service}/ISysParamService.java | 2 +- .../ISysRoleUserFileService.java | 2 +- .../IUploadTaskDetailService.java | 2 +- .../{api => service}/IUploadTaskService.java | 2 +- .../{api => service}/IUserFileService.java | 2 +- .../IUserLoginInfoService.java | 2 +- .../CommonFileServiceImpl.java} | 6 +- .../impl/DownloadRecordServiceImpl.java | 200 ++++++++++++++++++ .../FilePermissionServiceImpl.java} | 6 +- .../FileServiceImpl.java} | 6 +- .../FiletransferServiceImpl.java} | 6 +- .../NoticeServiceImpl.java} | 6 +- .../OperationLogServiceImpl.java} | 6 +- .../RecoveryFileServiceImpl.java} | 6 +- .../ShareFileServiceImpl.java} | 6 +- .../ShareServiceImpl.java} | 6 +- .../StorageServiceImpl.java} | 6 +- .../SysParamServiceImpl.java} | 6 +- .../SysRoleUserFileServiceImpl.java} | 7 +- .../UploadTaskDetailServiceImpl.java} | 6 +- .../UploadTaskServiceImpl.java} | 6 +- .../UserFileServiceImpl.java} | 6 +- .../UserLoginInfoServiceImpl.java} | 6 +- .../resources/mapper/DownloadRecordMapper.xml | 115 ++++++++++ .../framework/web/service/TokenService.java | 11 + 56 files changed, 797 insertions(+), 108 deletions(-) create mode 100644 hb-file/src/main/java/com/ruoyi/file/controller/DownloadRecordController.java create mode 100644 hb-file/src/main/java/com/ruoyi/file/domain/DownloadRecord.java create mode 100644 hb-file/src/main/java/com/ruoyi/file/domain/DownloadRecordItem.java create mode 100644 hb-file/src/main/java/com/ruoyi/file/mapper/DownloadRecordMapper.java rename hb-file/src/main/java/com/ruoyi/file/{api => service}/ICommonFileService.java (93%) create mode 100644 hb-file/src/main/java/com/ruoyi/file/service/IDownloadRecordService.java rename hb-file/src/main/java/com/ruoyi/file/{api => service}/IElasticSearchService.java (100%) rename hb-file/src/main/java/com/ruoyi/file/{api => service}/IFilePermissionService.java (85%) rename hb-file/src/main/java/com/ruoyi/file/{api => service}/IFileService.java (93%) rename hb-file/src/main/java/com/ruoyi/file/{api => service}/IFiletransferService.java (97%) rename hb-file/src/main/java/com/ruoyi/file/{api => service}/INoticeService.java (91%) rename hb-file/src/main/java/com/ruoyi/file/{api => service}/IOperationLogService.java (93%) rename hb-file/src/main/java/com/ruoyi/file/{api => service}/IRecoveryFileService.java (93%) rename hb-file/src/main/java/com/ruoyi/file/{api => service}/IShareFileService.java (91%) rename hb-file/src/main/java/com/ruoyi/file/{api => service}/IShareService.java (93%) rename hb-file/src/main/java/com/ruoyi/file/{api => service}/IStorageService.java (89%) rename hb-file/src/main/java/com/ruoyi/file/{api => service}/ISysParamService.java (89%) rename hb-file/src/main/java/com/ruoyi/file/{api => service}/ISysRoleUserFileService.java (91%) rename hb-file/src/main/java/com/ruoyi/file/{api => service}/IUploadTaskDetailService.java (89%) rename hb-file/src/main/java/com/ruoyi/file/{api => service}/IUploadTaskService.java (84%) rename hb-file/src/main/java/com/ruoyi/file/{api => service}/IUserFileService.java (97%) rename hb-file/src/main/java/com/ruoyi/file/{api => service}/IUserLoginInfoService.java (85%) rename hb-file/src/main/java/com/ruoyi/file/service/{CommonFileService.java => impl/CommonFileServiceImpl.java} (81%) create mode 100644 hb-file/src/main/java/com/ruoyi/file/service/impl/DownloadRecordServiceImpl.java rename hb-file/src/main/java/com/ruoyi/file/service/{FilePermissionService.java => impl/FilePermissionServiceImpl.java} (62%) rename hb-file/src/main/java/com/ruoyi/file/service/{FileService.java => impl/FileServiceImpl.java} (97%) rename hb-file/src/main/java/com/ruoyi/file/service/{FiletransferService.java => impl/FiletransferServiceImpl.java} (99%) rename hb-file/src/main/java/com/ruoyi/file/service/{NoticeService.java => impl/NoticeServiceImpl.java} (79%) rename hb-file/src/main/java/com/ruoyi/file/service/{OperationLogService.java => impl/OperationLogServiceImpl.java} (84%) rename hb-file/src/main/java/com/ruoyi/file/service/{RecoveryFileService.java => impl/RecoveryFileServiceImpl.java} (93%) rename hb-file/src/main/java/com/ruoyi/file/service/{ShareFileService.java => impl/ShareFileServiceImpl.java} (78%) rename hb-file/src/main/java/com/ruoyi/file/service/{ShareService.java => impl/ShareServiceImpl.java} (86%) rename hb-file/src/main/java/com/ruoyi/file/service/{StorageService.java => impl/StorageServiceImpl.java} (94%) rename hb-file/src/main/java/com/ruoyi/file/service/{SysParamService.java => impl/SysParamServiceImpl.java} (81%) rename hb-file/src/main/java/com/ruoyi/file/service/{SysRoleUserFileService.java => impl/SysRoleUserFileServiceImpl.java} (90%) rename hb-file/src/main/java/com/ruoyi/file/service/{UploadTaskDetailService.java => impl/UploadTaskDetailServiceImpl.java} (69%) rename hb-file/src/main/java/com/ruoyi/file/service/{UploadTaskService.java => impl/UploadTaskServiceImpl.java} (51%) rename hb-file/src/main/java/com/ruoyi/file/service/{UserFileService.java => impl/UserFileServiceImpl.java} (98%) rename hb-file/src/main/java/com/ruoyi/file/service/{UserLoginInfoService.java => impl/UserLoginInfoServiceImpl.java} (63%) create mode 100644 hb-file/src/main/resources/mapper/DownloadRecordMapper.xml diff --git a/hb-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java b/hb-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java index 5427b3a..fad0f2a 100644 --- a/hb-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java +++ b/hb-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java @@ -6,8 +6,8 @@ import javax.servlet.http.HttpServletResponse; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport; import com.ruoyi.common.utils.lang.LangUnit; -import com.ruoyi.file.api.ISysRoleUserFileService; -import com.ruoyi.file.api.IUserFileService; +import com.ruoyi.file.service.ISysRoleUserFileService; +import com.ruoyi.file.service.IUserFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; diff --git a/hb-admin/src/main/resources/application.yml b/hb-admin/src/main/resources/application.yml index 647983f..278a22d 100644 --- a/hb-admin/src/main/resources/application.yml +++ b/hb-admin/src/main/resources/application.yml @@ -86,7 +86,7 @@ spring: # 端口,默认为6379 port: 6379 # 数据库索引 - database: 0 + database: 1 # 密码 password: hb123.com # 连接超时时间 diff --git a/hb-file/src/main/java/com/ruoyi/file/aop/WebLogAcpect.java b/hb-file/src/main/java/com/ruoyi/file/aop/WebLogAcpect.java index e83cdb3..654feaf 100644 --- a/hb-file/src/main/java/com/ruoyi/file/aop/WebLogAcpect.java +++ b/hb-file/src/main/java/com/ruoyi/file/aop/WebLogAcpect.java @@ -4,15 +4,17 @@ import com.qiwenshare.common.anno.MyLog; import com.qiwenshare.common.result.RestResult; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.file.api.IOperationLogService; +import com.ruoyi.file.service.IOperationLogService; import com.ruoyi.file.util.OperationLogUtil; import com.ruoyi.file.vo.user.UserLoginVo; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.AfterReturning; +import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.reflect.CodeSignature; import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.stereotype.Component; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; @@ -25,8 +27,8 @@ import java.util.Map; /** * 操作日志切面 */ -//@Aspect -//@Component +@Aspect +@Component public class WebLogAcpect { @Resource IOperationLogService operationLogService; @@ -76,10 +78,14 @@ public class WebLogAcpect { if (ret instanceof RestResult) { boolean isSuccess = ((RestResult) ret).getSuccess(); String errorMessage = ((RestResult) ret).getMessage(); - LoginUser sessionUser = SecurityUtils.getLoginUser(); Long userId = null; - if (sessionUser != null) { - userId = sessionUser.getUserId(); + try { + LoginUser sessionUser = SecurityUtils.getLoginUser(); + if (sessionUser != null) { + userId = sessionUser.getUserId(); + } + } catch (Exception e) { + e.printStackTrace(); } Integer code = ((RestResult) ret).getCode(); diff --git a/hb-file/src/main/java/com/ruoyi/file/component/AsyncTaskComp.java b/hb-file/src/main/java/com/ruoyi/file/component/AsyncTaskComp.java index 91f24ef..ca7fa2d 100644 --- a/hb-file/src/main/java/com/ruoyi/file/component/AsyncTaskComp.java +++ b/hb-file/src/main/java/com/ruoyi/file/component/AsyncTaskComp.java @@ -2,8 +2,8 @@ package com.ruoyi.file.component; import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.ruoyi.file.api.IFiletransferService; -import com.ruoyi.file.api.IRecoveryFileService; +import com.ruoyi.file.service.IFiletransferService; +import com.ruoyi.file.service.IRecoveryFileService; import com.ruoyi.file.domain.FileBean; import com.ruoyi.file.domain.UserFile; import com.ruoyi.file.io.QiwenFile; diff --git a/hb-file/src/main/java/com/ruoyi/file/component/FileDealComp.java b/hb-file/src/main/java/com/ruoyi/file/component/FileDealComp.java index 6ef0401..986e8b8 100644 --- a/hb-file/src/main/java/com/ruoyi/file/component/FileDealComp.java +++ b/hb-file/src/main/java/com/ruoyi/file/component/FileDealComp.java @@ -17,8 +17,8 @@ import com.qiwenshare.ufop.operation.write.domain.WriteFile; import com.qiwenshare.ufop.util.UFOPUtils; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.file.api.IShareFileService; -import com.ruoyi.file.api.IShareService; +import com.ruoyi.file.service.IShareFileService; +import com.ruoyi.file.service.IShareService; import com.ruoyi.file.config.es.FileSearch; import com.ruoyi.file.domain.*; import com.ruoyi.file.io.QiwenFile; diff --git a/hb-file/src/main/java/com/ruoyi/file/controller/CommonFileController.java b/hb-file/src/main/java/com/ruoyi/file/controller/CommonFileController.java index e1c6544..642091f 100644 --- a/hb-file/src/main/java/com/ruoyi/file/controller/CommonFileController.java +++ b/hb-file/src/main/java/com/ruoyi/file/controller/CommonFileController.java @@ -7,9 +7,9 @@ import com.qiwenshare.common.anno.MyLog; import com.qiwenshare.common.result.RestResult; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.file.api.ICommonFileService; -import com.ruoyi.file.api.IFilePermissionService; -import com.ruoyi.file.api.IUserFileService; +import com.ruoyi.file.service.ICommonFileService; +import com.ruoyi.file.service.IFilePermissionService; +import com.ruoyi.file.service.IUserFileService; import com.ruoyi.file.domain.CommonFile; import com.ruoyi.file.domain.FilePermission; import com.ruoyi.file.domain.UserFile; diff --git a/hb-file/src/main/java/com/ruoyi/file/controller/DownloadRecordController.java b/hb-file/src/main/java/com/ruoyi/file/controller/DownloadRecordController.java new file mode 100644 index 0000000..0518353 --- /dev/null +++ b/hb-file/src/main/java/com/ruoyi/file/controller/DownloadRecordController.java @@ -0,0 +1,104 @@ +package com.ruoyi.file.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.file.domain.DownloadRecord; +import com.ruoyi.file.service.IDownloadRecordService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 下载记录Controller + * + * @author liangwen + * @date 2025-09-12 + */ +@RestController +@RequestMapping("/file/downloadRecord") +public class DownloadRecordController extends BaseController +{ + @Autowired + private IDownloadRecordService downloadRecordService; + + /** + * 查询下载记录列表 + */ + @PreAuthorize("@ss.hasPermi('file:downloadRecord:list')") + @GetMapping("/list") + public TableDataInfo list(DownloadRecord downloadRecord) + { + startPage(); + List list = downloadRecordService.selectDownloadRecordList(downloadRecord); + return getDataTable(list); + } + + /** + * 导出下载记录列表 + */ + @PreAuthorize("@ss.hasPermi('file:downloadRecord:export')") + @Log(title = "下载记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, DownloadRecord downloadRecord) + { + List list = downloadRecordService.selectDownloadRecordList(downloadRecord); + ExcelUtil util = new ExcelUtil(DownloadRecord.class); + util.exportExcel(response, list, "下载记录数据"); + } + + /** + * 获取下载记录详细信息 + */ + @PreAuthorize("@ss.hasPermi('file:downloadRecord:query')") + @GetMapping(value = "/{recordId}") + public AjaxResult getInfo(@PathVariable("recordId") Long recordId) + { + return success(downloadRecordService.selectDownloadRecordByRecordId(recordId)); + } + + /** + * 新增下载记录 + */ + @PreAuthorize("@ss.hasPermi('file:downloadRecord:add')") + @Log(title = "下载记录", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody DownloadRecord downloadRecord) + { + return toAjax(downloadRecordService.insertDownloadRecord(downloadRecord)); + } + + /** + * 修改下载记录 + */ + @PreAuthorize("@ss.hasPermi('file:downloadRecord:edit')") + @Log(title = "下载记录", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody DownloadRecord downloadRecord) + { + return toAjax(downloadRecordService.updateDownloadRecord(downloadRecord)); + } + + /** + * 删除下载记录 + */ + @PreAuthorize("@ss.hasPermi('file:downloadRecord:remove')") + @Log(title = "下载记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{recordIds}") + public AjaxResult remove(@PathVariable Long[] recordIds) + { + return toAjax(downloadRecordService.deleteDownloadRecordByRecordIds(recordIds)); + } +} diff --git a/hb-file/src/main/java/com/ruoyi/file/controller/FileController.java b/hb-file/src/main/java/com/ruoyi/file/controller/FileController.java index 908e6b4..d7c598c 100644 --- a/hb-file/src/main/java/com/ruoyi/file/controller/FileController.java +++ b/hb-file/src/main/java/com/ruoyi/file/controller/FileController.java @@ -20,8 +20,8 @@ import com.qiwenshare.ufop.operation.copy.Copier; import com.qiwenshare.ufop.operation.copy.domain.CopyFile; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.file.api.IFileService; -import com.ruoyi.file.api.IUserFileService; +import com.ruoyi.file.service.IFileService; +import com.ruoyi.file.service.IUserFileService; import com.ruoyi.file.component.AsyncTaskComp; import com.ruoyi.file.component.FileDealComp; import com.ruoyi.file.config.es.FileSearch; diff --git a/hb-file/src/main/java/com/ruoyi/file/controller/FiletransferController.java b/hb-file/src/main/java/com/ruoyi/file/controller/FiletransferController.java index 771666b..002cfc0 100644 --- a/hb-file/src/main/java/com/ruoyi/file/controller/FiletransferController.java +++ b/hb-file/src/main/java/com/ruoyi/file/controller/FiletransferController.java @@ -8,11 +8,10 @@ import com.qiwenshare.ufop.operation.download.Downloader; import com.qiwenshare.ufop.operation.download.domain.DownloadFile; import com.qiwenshare.ufop.operation.download.domain.Range; import com.qiwenshare.ufop.util.UFOPUtils; +import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.file.api.IFileService; -import com.ruoyi.file.api.IFiletransferService; -import com.ruoyi.file.api.IUserFileService; +import com.ruoyi.file.service.*; import com.ruoyi.file.component.FileDealComp; import com.ruoyi.file.domain.FileBean; import com.ruoyi.file.domain.StorageBean; @@ -22,13 +21,15 @@ import com.ruoyi.file.dto.file.DownloadFileDTO; import com.ruoyi.file.dto.file.PreviewDTO; import com.ruoyi.file.dto.file.UploadFileDTO; import com.ruoyi.file.io.QiwenFile; -import com.ruoyi.file.service.StorageService; import com.ruoyi.file.vo.file.UploadFileVo; +import com.ruoyi.framework.manager.AsyncManager; +import com.ruoyi.framework.manager.factory.AsyncFactory; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -40,6 +41,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.util.ArrayList; +import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -60,10 +62,12 @@ public class FiletransferController { @Resource FileDealComp fileDealComp; @Resource - StorageService storageService; + IStorageService storageService; @Resource UFOPFactory ufopFactory; + @Autowired + private IDownloadRecordService downloadRecordService; public static final String CURRENT_MODULE = "文件传输接口"; @@ -113,6 +117,9 @@ public class FiletransferController { } } } + if (StringUtils.isEmpty(token)) { + token = httpServletRequest.getHeader("token"); + } boolean authResult = fileDealComp.checkAuthDownloadAndPreview(downloadFileDTO.getShareBatchNum(), downloadFileDTO.getExtractionCode(), token, @@ -139,6 +146,8 @@ public class FiletransferController { httpServletResponse.addHeader("Content-Disposition", "attachment;fileName=" + fileName);// 设置文件名 filetransferService.downloadFile(httpServletResponse, downloadFileDTO); + // 保存下载记录 + downloadRecordService.saveDownloadRecord(Arrays.asList(downloadFileDTO.getUserFileId())); } @Operation(summary = "批量下载文件", description = "批量下载文件", tags = {"filetransfer"}) @@ -155,6 +164,9 @@ public class FiletransferController { } } } + if (StringUtils.isEmpty(token)) { + token = httpServletRequest.getHeader("token"); + } boolean authResult = fileDealComp.checkAuthDownloadAndPreview(batchDownloadFileDTO.getShareBatchNum(), batchDownloadFileDTO.getExtractionCode(), token, @@ -186,6 +198,7 @@ public class FiletransferController { String fileName = String.valueOf(date.getTime()); httpServletResponse.addHeader("Content-Disposition", "attachment;fileName=" + fileName + ".zip");// 设置文件名 filetransferService.downloadUserFileList(httpServletResponse, userFile.getFilePath(), fileName, userFileIds); + downloadRecordService.saveDownloadRecord(userFileIds); } @Operation(summary="预览文件", description="用于文件预览", tags = {"filetransfer"}) diff --git a/hb-file/src/main/java/com/ruoyi/file/controller/NoticeController.java b/hb-file/src/main/java/com/ruoyi/file/controller/NoticeController.java index 87e56a8..fe5be22 100644 --- a/hb-file/src/main/java/com/ruoyi/file/controller/NoticeController.java +++ b/hb-file/src/main/java/com/ruoyi/file/controller/NoticeController.java @@ -2,7 +2,7 @@ package com.ruoyi.file.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.qiwenshare.common.result.RestResult; -import com.ruoyi.file.api.INoticeService; +import com.ruoyi.file.service.INoticeService; import com.ruoyi.file.domain.Notice; import com.ruoyi.file.dto.notice.NoticeListDTO; import io.swagger.v3.oas.annotations.Operation; diff --git a/hb-file/src/main/java/com/ruoyi/file/controller/OfficeController.java b/hb-file/src/main/java/com/ruoyi/file/controller/OfficeController.java index 2f9923c..4375469 100644 --- a/hb-file/src/main/java/com/ruoyi/file/controller/OfficeController.java +++ b/hb-file/src/main/java/com/ruoyi/file/controller/OfficeController.java @@ -9,8 +9,8 @@ import com.qiwenshare.ufop.operation.download.domain.DownloadFile; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.file.api.IFileService; -import com.ruoyi.file.api.IUserFileService; +import com.ruoyi.file.service.IFileService; +import com.ruoyi.file.service.IUserFileService; import com.ruoyi.file.component.FileDealComp; import com.ruoyi.file.domain.FileBean; import com.ruoyi.file.domain.UserFile; diff --git a/hb-file/src/main/java/com/ruoyi/file/controller/RecoveryFileController.java b/hb-file/src/main/java/com/ruoyi/file/controller/RecoveryFileController.java index 537e855..7fcdc58 100644 --- a/hb-file/src/main/java/com/ruoyi/file/controller/RecoveryFileController.java +++ b/hb-file/src/main/java/com/ruoyi/file/controller/RecoveryFileController.java @@ -4,10 +4,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.qiwenshare.common.anno.MyLog; import com.qiwenshare.common.result.RestResult; import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.file.api.IFileService; -import com.ruoyi.file.api.IFiletransferService; -import com.ruoyi.file.api.IRecoveryFileService; -import com.ruoyi.file.api.IUserFileService; +import com.ruoyi.file.service.IFileService; +import com.ruoyi.file.service.IFiletransferService; +import com.ruoyi.file.service.IRecoveryFileService; +import com.ruoyi.file.service.IUserFileService; import com.ruoyi.file.component.AsyncTaskComp; import com.ruoyi.file.domain.RecoveryFile; import com.ruoyi.file.dto.file.DeleteRecoveryFileDTO; diff --git a/hb-file/src/main/java/com/ruoyi/file/controller/ShareController.java b/hb-file/src/main/java/com/ruoyi/file/controller/ShareController.java index 47528fa..38d983e 100644 --- a/hb-file/src/main/java/com/ruoyi/file/controller/ShareController.java +++ b/hb-file/src/main/java/com/ruoyi/file/controller/ShareController.java @@ -11,9 +11,9 @@ import com.qiwenshare.common.result.RestResult; import com.qiwenshare.common.util.DateUtil; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.file.api.IShareFileService; -import com.ruoyi.file.api.IShareService; -import com.ruoyi.file.api.IUserFileService; +import com.ruoyi.file.service.IShareFileService; +import com.ruoyi.file.service.IShareService; +import com.ruoyi.file.service.IUserFileService; import com.ruoyi.file.component.FileDealComp; import com.ruoyi.file.domain.Share; import com.ruoyi.file.domain.ShareFile; diff --git a/hb-file/src/main/java/com/ruoyi/file/controller/SysParamController.java b/hb-file/src/main/java/com/ruoyi/file/controller/SysParamController.java index ed30e04..f475720 100644 --- a/hb-file/src/main/java/com/ruoyi/file/controller/SysParamController.java +++ b/hb-file/src/main/java/com/ruoyi/file/controller/SysParamController.java @@ -3,7 +3,7 @@ package com.ruoyi.file.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.qiwenshare.common.result.RestResult; -import com.ruoyi.file.api.ISysParamService; +import com.ruoyi.file.service.ISysParamService; import com.ruoyi.file.domain.SysParam; import com.ruoyi.file.dto.param.QueryGroupParamDTO; import io.swagger.v3.oas.annotations.Operation; diff --git a/hb-file/src/main/java/com/ruoyi/file/controller/TaskController.java b/hb-file/src/main/java/com/ruoyi/file/controller/TaskController.java index 0f0e29d..e743ffb 100644 --- a/hb-file/src/main/java/com/ruoyi/file/controller/TaskController.java +++ b/hb-file/src/main/java/com/ruoyi/file/controller/TaskController.java @@ -2,12 +2,12 @@ package com.ruoyi.file.controller; import co.elastic.clients.elasticsearch.ElasticsearchClient; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.ruoyi.file.api.IShareFileService; +import com.ruoyi.file.service.IShareFileService; import com.ruoyi.file.component.FileDealComp; import com.ruoyi.file.domain.ShareFile; import com.ruoyi.file.domain.UserFile; import com.ruoyi.file.io.QiwenFile; -import com.ruoyi.file.service.UserFileService; +import com.ruoyi.file.service.IUserFileService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; @@ -21,7 +21,7 @@ import java.util.List; public class TaskController { @Resource - UserFileService userFileService; + IUserFileService userFileService; @Resource FileDealComp fileDealComp; @Resource diff --git a/hb-file/src/main/java/com/ruoyi/file/controller/UserController.java b/hb-file/src/main/java/com/ruoyi/file/controller/UserController.java index d5239f1..865c459 100644 --- a/hb-file/src/main/java/com/ruoyi/file/controller/UserController.java +++ b/hb-file/src/main/java/com/ruoyi/file/controller/UserController.java @@ -1,29 +1,24 @@ package com.ruoyi.file.controller; import cn.hutool.core.bean.BeanUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport; import com.qiwenshare.common.anno.MyLog; import com.qiwenshare.common.result.RestResult; -import com.qiwenshare.common.util.DateUtil; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.file.api.IUserLoginInfoService; +import com.ruoyi.file.service.IUserLoginInfoService; import com.ruoyi.file.component.JwtComp; -import com.ruoyi.file.domain.UserLoginInfo; import com.ruoyi.file.vo.user.UserLoginVo; import com.ruoyi.framework.web.service.SysLoginService; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.service.ISysUserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; diff --git a/hb-file/src/main/java/com/ruoyi/file/domain/DownloadRecord.java b/hb-file/src/main/java/com/ruoyi/file/domain/DownloadRecord.java new file mode 100644 index 0000000..7dbdddb --- /dev/null +++ b/hb-file/src/main/java/com/ruoyi/file/domain/DownloadRecord.java @@ -0,0 +1,61 @@ +package com.ruoyi.file.domain; + +import java.util.List; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import lombok.Getter; +import lombok.Setter; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 下载记录对象 download_record + * + * @author liangwen + * @date 2025-09-12 + */ +@Setter +@Getter +public class DownloadRecord extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 记录id */ + private Long recordId; + + /** 用户id */ + @Excel(name = "用户id") + private Long userId; + + /** 下载时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "下载时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date downloadTime; + + /** 下载IP地址 */ + @Excel(name = "下载IP地址") + private String ipaddr; + + /** 下载地点 */ + @Excel(name = "下载地点") + private String location; + + /** 浏览器类型 */ + @Excel(name = "浏览器类型") + private String browser; + + /** 操作系统 */ + @Excel(name = "操作系统") + private String os; + + /** 下载记录明细信息 */ + private List downloadRecordItemList; + + /** 用户昵称 */ + private String nickName; + + /** 文件名称(多个用,隔开) */ + private String fileNames; +} diff --git a/hb-file/src/main/java/com/ruoyi/file/domain/DownloadRecordItem.java b/hb-file/src/main/java/com/ruoyi/file/domain/DownloadRecordItem.java new file mode 100644 index 0000000..b8639ff --- /dev/null +++ b/hb-file/src/main/java/com/ruoyi/file/domain/DownloadRecordItem.java @@ -0,0 +1,33 @@ +package com.ruoyi.file.domain; + +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 下载记录明显对象 download_record_item + * + * @author liangwen + * @date 2025-09-12 + */ +@Data +public class DownloadRecordItem extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 下载明细id */ + private Long itemId; + + /** 下载记录id */ + @Excel(name = "下载记录id") + private Long recordId; + + /** 用户文件id */ + @Excel(name = "用户文件id") + private String userFileId; + + /** 用户文件对象 */ + private UserFile userFile; +} diff --git a/hb-file/src/main/java/com/ruoyi/file/mapper/DownloadRecordMapper.java b/hb-file/src/main/java/com/ruoyi/file/mapper/DownloadRecordMapper.java new file mode 100644 index 0000000..d632c6c --- /dev/null +++ b/hb-file/src/main/java/com/ruoyi/file/mapper/DownloadRecordMapper.java @@ -0,0 +1,87 @@ +package com.ruoyi.file.mapper; + +import java.util.List; +import com.ruoyi.file.domain.DownloadRecord; +import com.ruoyi.file.domain.DownloadRecordItem; + +/** + * 下载记录Mapper接口 + * + * @author liangwen + * @date 2025-09-12 + */ +public interface DownloadRecordMapper +{ + /** + * 查询下载记录 + * + * @param recordId 下载记录主键 + * @return 下载记录 + */ + public DownloadRecord selectDownloadRecordByRecordId(Long recordId); + + /** + * 查询下载记录列表 + * + * @param downloadRecord 下载记录 + * @return 下载记录集合 + */ + public List selectDownloadRecordList(DownloadRecord downloadRecord); + + /** + * 新增下载记录 + * + * @param downloadRecord 下载记录 + * @return 结果 + */ + public int insertDownloadRecord(DownloadRecord downloadRecord); + + /** + * 修改下载记录 + * + * @param downloadRecord 下载记录 + * @return 结果 + */ + public int updateDownloadRecord(DownloadRecord downloadRecord); + + /** + * 删除下载记录 + * + * @param recordId 下载记录主键 + * @return 结果 + */ + public int deleteDownloadRecordByRecordId(Long recordId); + + /** + * 批量删除下载记录 + * + * @param recordIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteDownloadRecordByRecordIds(Long[] recordIds); + + /** + * 批量删除下载记录明显 + * + * @param recordIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteDownloadRecordItemByRecordIds(Long[] recordIds); + + /** + * 批量新增下载记录明显 + * + * @param downloadRecordItemList 下载记录明显列表 + * @return 结果 + */ + public int batchDownloadRecordItem(List downloadRecordItemList); + + + /** + * 通过下载记录主键删除下载记录明显信息 + * + * @param recordId 下载记录ID + * @return 结果 + */ + public int deleteDownloadRecordItemByRecordId(Long recordId); +} diff --git a/hb-file/src/main/java/com/ruoyi/file/api/ICommonFileService.java b/hb-file/src/main/java/com/ruoyi/file/service/ICommonFileService.java similarity index 93% rename from hb-file/src/main/java/com/ruoyi/file/api/ICommonFileService.java rename to hb-file/src/main/java/com/ruoyi/file/service/ICommonFileService.java index c82b8a7..0d7d5fb 100644 --- a/hb-file/src/main/java/com/ruoyi/file/api/ICommonFileService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/ICommonFileService.java @@ -1,4 +1,4 @@ -package com.ruoyi.file.api; +package com.ruoyi.file.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.file.domain.CommonFile; diff --git a/hb-file/src/main/java/com/ruoyi/file/service/IDownloadRecordService.java b/hb-file/src/main/java/com/ruoyi/file/service/IDownloadRecordService.java new file mode 100644 index 0000000..2db71b7 --- /dev/null +++ b/hb-file/src/main/java/com/ruoyi/file/service/IDownloadRecordService.java @@ -0,0 +1,65 @@ +package com.ruoyi.file.service; + +import java.util.List; +import com.ruoyi.file.domain.DownloadRecord; + +import javax.servlet.http.HttpServletRequest; + +/** + * 下载记录Service接口 + * + * @author liangwen + * @date 2025-09-12 + */ +public interface IDownloadRecordService +{ + /** + * 查询下载记录 + * + * @param recordId 下载记录主键 + * @return 下载记录 + */ + public DownloadRecord selectDownloadRecordByRecordId(Long recordId); + + /** + * 查询下载记录列表 + * + * @param downloadRecord 下载记录 + * @return 下载记录集合 + */ + public List selectDownloadRecordList(DownloadRecord downloadRecord); + + /** + * 新增下载记录 + * + * @param downloadRecord 下载记录 + * @return 结果 + */ + public int insertDownloadRecord(DownloadRecord downloadRecord); + + /** + * 修改下载记录 + * + * @param downloadRecord 下载记录 + * @return 结果 + */ + public int updateDownloadRecord(DownloadRecord downloadRecord); + + /** + * 批量删除下载记录 + * + * @param recordIds 需要删除的下载记录主键集合 + * @return 结果 + */ + public int deleteDownloadRecordByRecordIds(Long[] recordIds); + + /** + * 删除下载记录信息 + * + * @param recordId 下载记录主键 + * @return 结果 + */ + public int deleteDownloadRecordByRecordId(Long recordId); + + public void saveDownloadRecord(List userFileIds); +} diff --git a/hb-file/src/main/java/com/ruoyi/file/api/IElasticSearchService.java b/hb-file/src/main/java/com/ruoyi/file/service/IElasticSearchService.java similarity index 100% rename from hb-file/src/main/java/com/ruoyi/file/api/IElasticSearchService.java rename to hb-file/src/main/java/com/ruoyi/file/service/IElasticSearchService.java diff --git a/hb-file/src/main/java/com/ruoyi/file/api/IFilePermissionService.java b/hb-file/src/main/java/com/ruoyi/file/service/IFilePermissionService.java similarity index 85% rename from hb-file/src/main/java/com/ruoyi/file/api/IFilePermissionService.java rename to hb-file/src/main/java/com/ruoyi/file/service/IFilePermissionService.java index 3da3250..388ab6b 100644 --- a/hb-file/src/main/java/com/ruoyi/file/api/IFilePermissionService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/IFilePermissionService.java @@ -1,4 +1,4 @@ -package com.ruoyi.file.api; +package com.ruoyi.file.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.file.domain.FilePermission; diff --git a/hb-file/src/main/java/com/ruoyi/file/api/IFileService.java b/hb-file/src/main/java/com/ruoyi/file/service/IFileService.java similarity index 93% rename from hb-file/src/main/java/com/ruoyi/file/api/IFileService.java rename to hb-file/src/main/java/com/ruoyi/file/service/IFileService.java index e0bd2d7..977bed4 100644 --- a/hb-file/src/main/java/com/ruoyi/file/api/IFileService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/IFileService.java @@ -1,4 +1,4 @@ -package com.ruoyi.file.api; +package com.ruoyi.file.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.file.domain.FileBean; diff --git a/hb-file/src/main/java/com/ruoyi/file/api/IFiletransferService.java b/hb-file/src/main/java/com/ruoyi/file/service/IFiletransferService.java similarity index 97% rename from hb-file/src/main/java/com/ruoyi/file/api/IFiletransferService.java rename to hb-file/src/main/java/com/ruoyi/file/service/IFiletransferService.java index 75e1abb..626160c 100644 --- a/hb-file/src/main/java/com/ruoyi/file/api/IFiletransferService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/IFiletransferService.java @@ -1,4 +1,4 @@ -package com.ruoyi.file.api; +package com.ruoyi.file.service; import com.ruoyi.file.domain.FileBean; import com.ruoyi.file.dto.file.DownloadFileDTO; diff --git a/hb-file/src/main/java/com/ruoyi/file/api/INoticeService.java b/hb-file/src/main/java/com/ruoyi/file/service/INoticeService.java similarity index 91% rename from hb-file/src/main/java/com/ruoyi/file/api/INoticeService.java rename to hb-file/src/main/java/com/ruoyi/file/service/INoticeService.java index 51a2b61..48b0a36 100644 --- a/hb-file/src/main/java/com/ruoyi/file/api/INoticeService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/INoticeService.java @@ -1,4 +1,4 @@ -package com.ruoyi.file.api; +package com.ruoyi.file.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; diff --git a/hb-file/src/main/java/com/ruoyi/file/api/IOperationLogService.java b/hb-file/src/main/java/com/ruoyi/file/service/IOperationLogService.java similarity index 93% rename from hb-file/src/main/java/com/ruoyi/file/api/IOperationLogService.java rename to hb-file/src/main/java/com/ruoyi/file/service/IOperationLogService.java index 3efe8b3..e9c42b9 100644 --- a/hb-file/src/main/java/com/ruoyi/file/api/IOperationLogService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/IOperationLogService.java @@ -1,4 +1,4 @@ -package com.ruoyi.file.api; +package com.ruoyi.file.service; import com.baomidou.mybatisplus.core.metadata.IPage; diff --git a/hb-file/src/main/java/com/ruoyi/file/api/IRecoveryFileService.java b/hb-file/src/main/java/com/ruoyi/file/service/IRecoveryFileService.java similarity index 93% rename from hb-file/src/main/java/com/ruoyi/file/api/IRecoveryFileService.java rename to hb-file/src/main/java/com/ruoyi/file/service/IRecoveryFileService.java index 2cf97bd..b85d2c0 100644 --- a/hb-file/src/main/java/com/ruoyi/file/api/IRecoveryFileService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/IRecoveryFileService.java @@ -1,4 +1,4 @@ -package com.ruoyi.file.api; +package com.ruoyi.file.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.file.domain.RecoveryFile; diff --git a/hb-file/src/main/java/com/ruoyi/file/api/IShareFileService.java b/hb-file/src/main/java/com/ruoyi/file/service/IShareFileService.java similarity index 91% rename from hb-file/src/main/java/com/ruoyi/file/api/IShareFileService.java rename to hb-file/src/main/java/com/ruoyi/file/service/IShareFileService.java index d373078..9be620b 100644 --- a/hb-file/src/main/java/com/ruoyi/file/api/IShareFileService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/IShareFileService.java @@ -1,4 +1,4 @@ -package com.ruoyi.file.api; +package com.ruoyi.file.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.file.domain.ShareFile; diff --git a/hb-file/src/main/java/com/ruoyi/file/api/IShareService.java b/hb-file/src/main/java/com/ruoyi/file/service/IShareService.java similarity index 93% rename from hb-file/src/main/java/com/ruoyi/file/api/IShareService.java rename to hb-file/src/main/java/com/ruoyi/file/service/IShareService.java index a159aca..2243a4a 100644 --- a/hb-file/src/main/java/com/ruoyi/file/api/IShareService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/IShareService.java @@ -1,4 +1,4 @@ -package com.ruoyi.file.api; +package com.ruoyi.file.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.file.domain.Share; diff --git a/hb-file/src/main/java/com/ruoyi/file/api/IStorageService.java b/hb-file/src/main/java/com/ruoyi/file/service/IStorageService.java similarity index 89% rename from hb-file/src/main/java/com/ruoyi/file/api/IStorageService.java rename to hb-file/src/main/java/com/ruoyi/file/service/IStorageService.java index 20308df..97a6ac8 100644 --- a/hb-file/src/main/java/com/ruoyi/file/api/IStorageService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/IStorageService.java @@ -1,4 +1,4 @@ -package com.ruoyi.file.api; +package com.ruoyi.file.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.file.domain.StorageBean; diff --git a/hb-file/src/main/java/com/ruoyi/file/api/ISysParamService.java b/hb-file/src/main/java/com/ruoyi/file/service/ISysParamService.java similarity index 89% rename from hb-file/src/main/java/com/ruoyi/file/api/ISysParamService.java rename to hb-file/src/main/java/com/ruoyi/file/service/ISysParamService.java index edc0f99..75b6e10 100644 --- a/hb-file/src/main/java/com/ruoyi/file/api/ISysParamService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/ISysParamService.java @@ -1,4 +1,4 @@ -package com.ruoyi.file.api; +package com.ruoyi.file.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.file.domain.SysParam; diff --git a/hb-file/src/main/java/com/ruoyi/file/api/ISysRoleUserFileService.java b/hb-file/src/main/java/com/ruoyi/file/service/ISysRoleUserFileService.java similarity index 91% rename from hb-file/src/main/java/com/ruoyi/file/api/ISysRoleUserFileService.java rename to hb-file/src/main/java/com/ruoyi/file/service/ISysRoleUserFileService.java index 56d2767..c2f1910 100644 --- a/hb-file/src/main/java/com/ruoyi/file/api/ISysRoleUserFileService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/ISysRoleUserFileService.java @@ -1,4 +1,4 @@ -package com.ruoyi.file.api; +package com.ruoyi.file.service; import com.ruoyi.common.core.domain.entity.SysRole; diff --git a/hb-file/src/main/java/com/ruoyi/file/api/IUploadTaskDetailService.java b/hb-file/src/main/java/com/ruoyi/file/service/IUploadTaskDetailService.java similarity index 89% rename from hb-file/src/main/java/com/ruoyi/file/api/IUploadTaskDetailService.java rename to hb-file/src/main/java/com/ruoyi/file/service/IUploadTaskDetailService.java index 46291c6..5159a43 100644 --- a/hb-file/src/main/java/com/ruoyi/file/api/IUploadTaskDetailService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/IUploadTaskDetailService.java @@ -1,4 +1,4 @@ -package com.ruoyi.file.api; +package com.ruoyi.file.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.file.domain.UploadTaskDetail; diff --git a/hb-file/src/main/java/com/ruoyi/file/api/IUploadTaskService.java b/hb-file/src/main/java/com/ruoyi/file/service/IUploadTaskService.java similarity index 84% rename from hb-file/src/main/java/com/ruoyi/file/api/IUploadTaskService.java rename to hb-file/src/main/java/com/ruoyi/file/service/IUploadTaskService.java index de904e0..7b77cab 100644 --- a/hb-file/src/main/java/com/ruoyi/file/api/IUploadTaskService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/IUploadTaskService.java @@ -1,4 +1,4 @@ -package com.ruoyi.file.api; +package com.ruoyi.file.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.file.domain.UploadTask; diff --git a/hb-file/src/main/java/com/ruoyi/file/api/IUserFileService.java b/hb-file/src/main/java/com/ruoyi/file/service/IUserFileService.java similarity index 97% rename from hb-file/src/main/java/com/ruoyi/file/api/IUserFileService.java rename to hb-file/src/main/java/com/ruoyi/file/service/IUserFileService.java index 0394b62..2fdacec 100644 --- a/hb-file/src/main/java/com/ruoyi/file/api/IUserFileService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/IUserFileService.java @@ -1,4 +1,4 @@ -package com.ruoyi.file.api; +package com.ruoyi.file.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; diff --git a/hb-file/src/main/java/com/ruoyi/file/api/IUserLoginInfoService.java b/hb-file/src/main/java/com/ruoyi/file/service/IUserLoginInfoService.java similarity index 85% rename from hb-file/src/main/java/com/ruoyi/file/api/IUserLoginInfoService.java rename to hb-file/src/main/java/com/ruoyi/file/service/IUserLoginInfoService.java index 5a92552..a3d6a4f 100644 --- a/hb-file/src/main/java/com/ruoyi/file/api/IUserLoginInfoService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/IUserLoginInfoService.java @@ -1,4 +1,4 @@ -package com.ruoyi.file.api; +package com.ruoyi.file.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.file.domain.UserLoginInfo; diff --git a/hb-file/src/main/java/com/ruoyi/file/service/CommonFileService.java b/hb-file/src/main/java/com/ruoyi/file/service/impl/CommonFileServiceImpl.java similarity index 81% rename from hb-file/src/main/java/com/ruoyi/file/service/CommonFileService.java rename to hb-file/src/main/java/com/ruoyi/file/service/impl/CommonFileServiceImpl.java index c9f65f2..e718b10 100644 --- a/hb-file/src/main/java/com/ruoyi/file/service/CommonFileService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/impl/CommonFileServiceImpl.java @@ -1,9 +1,9 @@ -package com.ruoyi.file.service; +package com.ruoyi.file.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.file.api.ICommonFileService; import com.ruoyi.file.domain.CommonFile; import com.ruoyi.file.mapper.CommonFileMapper; +import com.ruoyi.file.service.ICommonFileService; import com.ruoyi.file.vo.commonfile.CommonFileListVo; import com.ruoyi.file.vo.commonfile.CommonFileUser; import lombok.extern.slf4j.Slf4j; @@ -16,7 +16,7 @@ import java.util.List; @Slf4j @Service @Transactional(rollbackFor=Exception.class) -public class CommonFileService extends ServiceImpl implements ICommonFileService { +public class CommonFileServiceImpl extends ServiceImpl implements ICommonFileService { @Resource CommonFileMapper commonFileMapper; diff --git a/hb-file/src/main/java/com/ruoyi/file/service/impl/DownloadRecordServiceImpl.java b/hb-file/src/main/java/com/ruoyi/file/service/impl/DownloadRecordServiceImpl.java new file mode 100644 index 0000000..9e463e3 --- /dev/null +++ b/hb-file/src/main/java/com/ruoyi/file/service/impl/DownloadRecordServiceImpl.java @@ -0,0 +1,200 @@ +package com.ruoyi.file.service.impl; + +import java.util.List; + +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.ServletUtils; +import com.ruoyi.common.utils.ip.AddressUtils; +import com.ruoyi.common.utils.ip.IpUtils; +import com.ruoyi.file.domain.UserFile; +import eu.bitwalker.useragentutils.UserAgent; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.Objects; +import java.util.stream.Collectors; + +import com.ruoyi.common.utils.StringUtils; +import org.springframework.transaction.annotation.Transactional; +import com.ruoyi.file.domain.DownloadRecordItem; +import com.ruoyi.file.mapper.DownloadRecordMapper; +import com.ruoyi.file.domain.DownloadRecord; +import com.ruoyi.file.service.IDownloadRecordService; + +import javax.servlet.http.HttpServletRequest; + +/** + * 下载记录Service业务层处理 + * + * @author liangwen + * @date 2025-09-12 + */ +@Service +public class DownloadRecordServiceImpl implements IDownloadRecordService +{ + @Autowired + private DownloadRecordMapper downloadRecordMapper; + + /** + * 查询下载记录 + * + * @param recordId 下载记录主键 + * @return 下载记录 + */ + @Override + public DownloadRecord selectDownloadRecordByRecordId(Long recordId) + { + return downloadRecordMapper.selectDownloadRecordByRecordId(recordId); + } + + /** + * 查询下载记录列表 + * + * @param downloadRecord 下载记录 + * @return 下载记录 + */ + @Override + public List selectDownloadRecordList(DownloadRecord downloadRecord) + { + List recordList = downloadRecordMapper.selectDownloadRecordList(downloadRecord); + for (DownloadRecord record : recordList) { + List itemList = record.getDownloadRecordItemList(); + if (itemList != null && !itemList.isEmpty()) { + String fileNames = itemList.stream() + .map(DownloadRecordItem::getUserFile) // 取出 UserFile + .filter(Objects::nonNull) + .map(userFile -> { + String name = userFile.getFileName(); + String ext = userFile.getExtendName(); + if (ext != null && !ext.isEmpty()) { + return name + "." + ext; + } else { + return name; + } + }) + .filter(Objects::nonNull) + .collect(Collectors.joining(",")); + record.setFileNames(fileNames); + } else { + record.setFileNames(""); + } + } + return recordList; + } + + /** + * 新增下载记录 + * + * @param downloadRecord 下载记录 + * @return 结果 + */ + @Transactional + @Override + public int insertDownloadRecord(DownloadRecord downloadRecord) + { + int rows = downloadRecordMapper.insertDownloadRecord(downloadRecord); + insertDownloadRecordItem(downloadRecord); + return rows; + } + + /** + * 修改下载记录 + * + * @param downloadRecord 下载记录 + * @return 结果 + */ + @Transactional + @Override + public int updateDownloadRecord(DownloadRecord downloadRecord) + { + downloadRecordMapper.deleteDownloadRecordItemByRecordId(downloadRecord.getRecordId()); + insertDownloadRecordItem(downloadRecord); + return downloadRecordMapper.updateDownloadRecord(downloadRecord); + } + + /** + * 批量删除下载记录 + * + * @param recordIds 需要删除的下载记录主键 + * @return 结果 + */ + @Transactional + @Override + public int deleteDownloadRecordByRecordIds(Long[] recordIds) + { + downloadRecordMapper.deleteDownloadRecordItemByRecordIds(recordIds); + return downloadRecordMapper.deleteDownloadRecordByRecordIds(recordIds); + } + + /** + * 删除下载记录信息 + * + * @param recordId 下载记录主键 + * @return 结果 + */ + @Transactional + @Override + public int deleteDownloadRecordByRecordId(Long recordId) + { + downloadRecordMapper.deleteDownloadRecordItemByRecordId(recordId); + return downloadRecordMapper.deleteDownloadRecordByRecordId(recordId); + } + + @Override + public void saveDownloadRecord(List userFileIds) { + UserAgent userAgent = UserAgent.parseUserAgentString(ServletUtils.getRequest().getHeader("User-Agent")); + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + String address = AddressUtils.getRealAddressByIP(ip); + // 获取客户端操作系统 + String os = userAgent.getOperatingSystem().getName(); + // 获取客户端浏览器 + String browser = userAgent.getBrowser().getName(); + DownloadRecord downloadRecord = new DownloadRecord(); + Long userId = null; + try { + userId = SecurityUtils.getUserId(); + } catch (Exception e) { + e.printStackTrace(); + } + downloadRecord.setUserId(userId); + downloadRecord.setIpaddr(ip); + downloadRecord.setLocation(address); + downloadRecord.setOs(os); + downloadRecord.setBrowser(browser); + downloadRecord.setDownloadTime(DateUtils.getNowDate()); + List itemList = new ArrayList<>(); + for (String userFileId : userFileIds) { + DownloadRecordItem downloadRecordItem = new DownloadRecordItem(); + downloadRecordItem.setUserFileId(userFileId); + itemList.add(downloadRecordItem); + } + downloadRecord.setDownloadRecordItemList(itemList); + downloadRecordMapper.insertDownloadRecord(downloadRecord); + insertDownloadRecordItem(downloadRecord); + } + + /** + * 新增下载记录明显信息 + * + * @param downloadRecord 下载记录对象 + */ + public void insertDownloadRecordItem(DownloadRecord downloadRecord) + { + List downloadRecordItemList = downloadRecord.getDownloadRecordItemList(); + Long recordId = downloadRecord.getRecordId(); + if (StringUtils.isNotNull(downloadRecordItemList)) + { + List list = new ArrayList(); + for (DownloadRecordItem downloadRecordItem : downloadRecordItemList) + { + downloadRecordItem.setRecordId(recordId); + list.add(downloadRecordItem); + } + if (list.size() > 0) + { + downloadRecordMapper.batchDownloadRecordItem(list); + } + } + } +} diff --git a/hb-file/src/main/java/com/ruoyi/file/service/FilePermissionService.java b/hb-file/src/main/java/com/ruoyi/file/service/impl/FilePermissionServiceImpl.java similarity index 62% rename from hb-file/src/main/java/com/ruoyi/file/service/FilePermissionService.java rename to hb-file/src/main/java/com/ruoyi/file/service/impl/FilePermissionServiceImpl.java index 76380ac..d144e7f 100644 --- a/hb-file/src/main/java/com/ruoyi/file/service/FilePermissionService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/impl/FilePermissionServiceImpl.java @@ -1,9 +1,9 @@ -package com.ruoyi.file.service; +package com.ruoyi.file.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.file.api.IFilePermissionService; import com.ruoyi.file.domain.FilePermission; import com.ruoyi.file.mapper.FilePermissionMapper; +import com.ruoyi.file.service.IFilePermissionService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -11,6 +11,6 @@ import org.springframework.transaction.annotation.Transactional; @Slf4j @Service @Transactional(rollbackFor=Exception.class) -public class FilePermissionService extends ServiceImpl implements IFilePermissionService { +public class FilePermissionServiceImpl extends ServiceImpl implements IFilePermissionService { } diff --git a/hb-file/src/main/java/com/ruoyi/file/service/FileService.java b/hb-file/src/main/java/com/ruoyi/file/service/impl/FileServiceImpl.java similarity index 97% rename from hb-file/src/main/java/com/ruoyi/file/service/FileService.java rename to hb-file/src/main/java/com/ruoyi/file/service/impl/FileServiceImpl.java index e8e9fca..cb243c5 100644 --- a/hb-file/src/main/java/com/ruoyi/file/service/FileService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/impl/FileServiceImpl.java @@ -1,4 +1,4 @@ -package com.ruoyi.file.service; +package com.ruoyi.file.service.impl; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -12,7 +12,6 @@ import com.qiwenshare.ufop.operation.download.Downloader; import com.qiwenshare.ufop.operation.download.domain.DownloadFile; import com.qiwenshare.ufop.util.UFOPUtils; import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.file.api.IFileService; import com.ruoyi.file.component.AsyncTaskComp; import com.ruoyi.file.component.FileDealComp; import com.ruoyi.file.domain.FileBean; @@ -23,6 +22,7 @@ import com.ruoyi.file.mapper.FileMapper; import com.ruoyi.file.mapper.ImageMapper; import com.ruoyi.file.mapper.MusicMapper; import com.ruoyi.file.mapper.UserFileMapper; +import com.ruoyi.file.service.IFileService; import com.ruoyi.file.util.QiwenFileUtil; import com.ruoyi.file.vo.file.FileDetailVO; import lombok.extern.slf4j.Slf4j; @@ -43,7 +43,7 @@ import java.util.concurrent.Executors; @Slf4j @Service @Transactional(rollbackFor=Exception.class) -public class FileService extends ServiceImpl implements IFileService { +public class FileServiceImpl extends ServiceImpl implements IFileService { public static Executor executor = Executors.newFixedThreadPool(20); @Resource FileMapper fileMapper; diff --git a/hb-file/src/main/java/com/ruoyi/file/service/FiletransferService.java b/hb-file/src/main/java/com/ruoyi/file/service/impl/FiletransferServiceImpl.java similarity index 99% rename from hb-file/src/main/java/com/ruoyi/file/service/FiletransferService.java rename to hb-file/src/main/java/com/ruoyi/file/service/impl/FiletransferServiceImpl.java index af35646..6ad2232 100644 --- a/hb-file/src/main/java/com/ruoyi/file/service/FiletransferService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/impl/FiletransferServiceImpl.java @@ -1,4 +1,4 @@ -package com.ruoyi.file.service; +package com.ruoyi.file.service.impl; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson2.JSON; @@ -23,7 +23,6 @@ import com.qiwenshare.ufop.operation.upload.domain.UploadFile; import com.qiwenshare.ufop.operation.upload.domain.UploadFileResult; import com.qiwenshare.ufop.util.UFOPUtils; import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.file.api.IFiletransferService; import com.ruoyi.file.component.FileDealComp; import com.ruoyi.file.domain.*; import com.ruoyi.file.dto.file.DownloadFileDTO; @@ -31,6 +30,7 @@ import com.ruoyi.file.dto.file.PreviewDTO; import com.ruoyi.file.dto.file.UploadFileDTO; import com.ruoyi.file.io.QiwenFile; import com.ruoyi.file.mapper.*; +import com.ruoyi.file.service.IFiletransferService; import com.ruoyi.file.vo.file.UploadFileVo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.IOUtils; @@ -60,7 +60,7 @@ import java.util.zip.ZipOutputStream; @Slf4j @Service @Transactional(rollbackFor=Exception.class) -public class FiletransferService implements IFiletransferService { +public class FiletransferServiceImpl implements IFiletransferService { @Resource FileMapper fileMapper; diff --git a/hb-file/src/main/java/com/ruoyi/file/service/NoticeService.java b/hb-file/src/main/java/com/ruoyi/file/service/impl/NoticeServiceImpl.java similarity index 79% rename from hb-file/src/main/java/com/ruoyi/file/service/NoticeService.java rename to hb-file/src/main/java/com/ruoyi/file/service/impl/NoticeServiceImpl.java index 3234243..a736030 100644 --- a/hb-file/src/main/java/com/ruoyi/file/service/NoticeService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/impl/NoticeServiceImpl.java @@ -1,19 +1,19 @@ -package com.ruoyi.file.service; +package com.ruoyi.file.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.file.api.INoticeService; import com.ruoyi.file.domain.Notice; import com.ruoyi.file.dto.notice.NoticeListDTO; import com.ruoyi.file.mapper.NoticeMapper; +import com.ruoyi.file.service.INoticeService; import org.springframework.stereotype.Service; import javax.annotation.Resource; @Service -public class NoticeService extends ServiceImpl implements INoticeService { +public class NoticeServiceImpl extends ServiceImpl implements INoticeService { @Resource NoticeMapper noticeMapper; diff --git a/hb-file/src/main/java/com/ruoyi/file/service/OperationLogService.java b/hb-file/src/main/java/com/ruoyi/file/service/impl/OperationLogServiceImpl.java similarity index 84% rename from hb-file/src/main/java/com/ruoyi/file/service/OperationLogService.java rename to hb-file/src/main/java/com/ruoyi/file/service/impl/OperationLogServiceImpl.java index aeabc52..5cd1a69 100644 --- a/hb-file/src/main/java/com/ruoyi/file/service/OperationLogService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/impl/OperationLogServiceImpl.java @@ -1,11 +1,11 @@ -package com.ruoyi.file.service; +package com.ruoyi.file.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.file.api.IOperationLogService; import com.ruoyi.file.domain.OperationLogBean; import com.ruoyi.file.mapper.OperationLogMapper; +import com.ruoyi.file.service.IOperationLogService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -15,7 +15,7 @@ import java.util.List; @Service @Transactional(rollbackFor=Exception.class) -public class OperationLogService extends ServiceImpl implements IOperationLogService { +public class OperationLogServiceImpl extends ServiceImpl implements IOperationLogService { @Resource OperationLogMapper operationLogMapper; diff --git a/hb-file/src/main/java/com/ruoyi/file/service/RecoveryFileService.java b/hb-file/src/main/java/com/ruoyi/file/service/impl/RecoveryFileServiceImpl.java similarity index 93% rename from hb-file/src/main/java/com/ruoyi/file/service/RecoveryFileService.java rename to hb-file/src/main/java/com/ruoyi/file/service/impl/RecoveryFileServiceImpl.java index ad86f6e..94a53aa 100644 --- a/hb-file/src/main/java/com/ruoyi/file/service/RecoveryFileService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/impl/RecoveryFileServiceImpl.java @@ -1,15 +1,15 @@ -package com.ruoyi.file.service; +package com.ruoyi.file.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.file.api.IRecoveryFileService; import com.ruoyi.file.component.FileDealComp; import com.ruoyi.file.domain.RecoveryFile; import com.ruoyi.file.domain.UserFile; import com.ruoyi.file.io.QiwenFile; import com.ruoyi.file.mapper.RecoveryFileMapper; import com.ruoyi.file.mapper.UserFileMapper; +import com.ruoyi.file.service.IRecoveryFileService; import com.ruoyi.file.vo.file.RecoveryFileListVo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -22,7 +22,7 @@ import java.util.List; @Slf4j @Service @Transactional(rollbackFor=Exception.class) -public class RecoveryFileService extends ServiceImpl implements IRecoveryFileService { +public class RecoveryFileServiceImpl extends ServiceImpl implements IRecoveryFileService { @Resource UserFileMapper userFileMapper; @Resource diff --git a/hb-file/src/main/java/com/ruoyi/file/service/ShareFileService.java b/hb-file/src/main/java/com/ruoyi/file/service/impl/ShareFileServiceImpl.java similarity index 78% rename from hb-file/src/main/java/com/ruoyi/file/service/ShareFileService.java rename to hb-file/src/main/java/com/ruoyi/file/service/impl/ShareFileServiceImpl.java index cf2131c..510d0f8 100644 --- a/hb-file/src/main/java/com/ruoyi/file/service/ShareFileService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/impl/ShareFileServiceImpl.java @@ -1,9 +1,9 @@ -package com.ruoyi.file.service; +package com.ruoyi.file.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.file.api.IShareFileService; import com.ruoyi.file.domain.ShareFile; import com.ruoyi.file.mapper.ShareFileMapper; +import com.ruoyi.file.service.IShareFileService; import com.ruoyi.file.vo.share.ShareFileListVO; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -15,7 +15,7 @@ import java.util.List; @Slf4j @Service @Transactional(rollbackFor=Exception.class) -public class ShareFileService extends ServiceImpl implements IShareFileService { +public class ShareFileServiceImpl extends ServiceImpl implements IShareFileService { @Resource ShareFileMapper shareFileMapper; diff --git a/hb-file/src/main/java/com/ruoyi/file/service/ShareService.java b/hb-file/src/main/java/com/ruoyi/file/service/impl/ShareServiceImpl.java similarity index 86% rename from hb-file/src/main/java/com/ruoyi/file/service/ShareService.java rename to hb-file/src/main/java/com/ruoyi/file/service/impl/ShareServiceImpl.java index a09b2d2..935d7d2 100644 --- a/hb-file/src/main/java/com/ruoyi/file/service/ShareService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/impl/ShareServiceImpl.java @@ -1,10 +1,10 @@ -package com.ruoyi.file.service; +package com.ruoyi.file.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.file.api.IShareService; import com.ruoyi.file.domain.Share; import com.ruoyi.file.dto.sharefile.ShareListDTO; import com.ruoyi.file.mapper.ShareMapper; +import com.ruoyi.file.service.IShareService; import com.ruoyi.file.vo.share.ShareListVO; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -15,7 +15,7 @@ import java.util.List; @Slf4j @Service @Transactional(rollbackFor=Exception.class) -public class ShareService extends ServiceImpl implements IShareService { +public class ShareServiceImpl extends ServiceImpl implements IShareService { @Resource ShareMapper shareMapper; diff --git a/hb-file/src/main/java/com/ruoyi/file/service/StorageService.java b/hb-file/src/main/java/com/ruoyi/file/service/impl/StorageServiceImpl.java similarity index 94% rename from hb-file/src/main/java/com/ruoyi/file/service/StorageService.java rename to hb-file/src/main/java/com/ruoyi/file/service/impl/StorageServiceImpl.java index f1990af..b3b467d 100644 --- a/hb-file/src/main/java/com/ruoyi/file/service/StorageService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/impl/StorageServiceImpl.java @@ -1,13 +1,13 @@ -package com.ruoyi.file.service; +package com.ruoyi.file.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.file.api.IStorageService; import com.ruoyi.file.domain.StorageBean; import com.ruoyi.file.domain.SysParam; import com.ruoyi.file.mapper.StorageMapper; import com.ruoyi.file.mapper.SysParamMapper; import com.ruoyi.file.mapper.UserFileMapper; +import com.ruoyi.file.service.IStorageService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -17,7 +17,7 @@ import javax.annotation.Resource; @Slf4j @Service @Transactional(rollbackFor=Exception.class) -public class StorageService extends ServiceImpl implements IStorageService { +public class StorageServiceImpl extends ServiceImpl implements IStorageService { @Resource StorageMapper storageMapper; @Resource diff --git a/hb-file/src/main/java/com/ruoyi/file/service/SysParamService.java b/hb-file/src/main/java/com/ruoyi/file/service/impl/SysParamServiceImpl.java similarity index 81% rename from hb-file/src/main/java/com/ruoyi/file/service/SysParamService.java rename to hb-file/src/main/java/com/ruoyi/file/service/impl/SysParamServiceImpl.java index 98e7d0e..61a8a49 100644 --- a/hb-file/src/main/java/com/ruoyi/file/service/SysParamService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/impl/SysParamServiceImpl.java @@ -1,10 +1,10 @@ -package com.ruoyi.file.service; +package com.ruoyi.file.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.file.api.ISysParamService; import com.ruoyi.file.domain.SysParam; import com.ruoyi.file.mapper.SysParamMapper; +import com.ruoyi.file.service.ISysParamService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -19,7 +19,7 @@ import java.util.List; */ @Slf4j @Service -public class SysParamService extends ServiceImpl implements ISysParamService { +public class SysParamServiceImpl extends ServiceImpl implements ISysParamService { @Resource SysParamMapper sysParamMapper; diff --git a/hb-file/src/main/java/com/ruoyi/file/service/SysRoleUserFileService.java b/hb-file/src/main/java/com/ruoyi/file/service/impl/SysRoleUserFileServiceImpl.java similarity index 90% rename from hb-file/src/main/java/com/ruoyi/file/service/SysRoleUserFileService.java rename to hb-file/src/main/java/com/ruoyi/file/service/impl/SysRoleUserFileServiceImpl.java index 0287dcd..06cf93e 100644 --- a/hb-file/src/main/java/com/ruoyi/file/service/SysRoleUserFileService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/impl/SysRoleUserFileServiceImpl.java @@ -1,10 +1,9 @@ -package com.ruoyi.file.service; +package com.ruoyi.file.service.impl; import com.ruoyi.common.core.domain.entity.SysRole; -import com.ruoyi.file.api.ISysRoleUserFileService; import com.ruoyi.file.domain.SysRoleUserFile; import com.ruoyi.file.mapper.SysRoleUserFileMapper; -import com.ruoyi.system.domain.SysRoleDept; +import com.ruoyi.file.service.ISysRoleUserFileService; import com.ruoyi.system.mapper.SysRoleMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -17,7 +16,7 @@ import java.util.List; @Slf4j @Service @Transactional(rollbackFor = Exception.class) -public class SysRoleUserFileService implements ISysRoleUserFileService { +public class SysRoleUserFileServiceImpl implements ISysRoleUserFileService { @Autowired SysRoleUserFileMapper roleUserFileMapper; diff --git a/hb-file/src/main/java/com/ruoyi/file/service/UploadTaskDetailService.java b/hb-file/src/main/java/com/ruoyi/file/service/impl/UploadTaskDetailServiceImpl.java similarity index 69% rename from hb-file/src/main/java/com/ruoyi/file/service/UploadTaskDetailService.java rename to hb-file/src/main/java/com/ruoyi/file/service/impl/UploadTaskDetailServiceImpl.java index 12c7623..d455c6c 100644 --- a/hb-file/src/main/java/com/ruoyi/file/service/UploadTaskDetailService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/impl/UploadTaskDetailServiceImpl.java @@ -1,16 +1,16 @@ -package com.ruoyi.file.service; +package com.ruoyi.file.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.file.api.IUploadTaskDetailService; import com.ruoyi.file.domain.UploadTaskDetail; import com.ruoyi.file.mapper.UploadTaskDetailMapper; +import com.ruoyi.file.service.IUploadTaskDetailService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; @Service -public class UploadTaskDetailService extends ServiceImpl implements IUploadTaskDetailService { +public class UploadTaskDetailServiceImpl extends ServiceImpl implements IUploadTaskDetailService { @Resource UploadTaskDetailMapper uploadTaskDetailMapper; diff --git a/hb-file/src/main/java/com/ruoyi/file/service/UploadTaskService.java b/hb-file/src/main/java/com/ruoyi/file/service/impl/UploadTaskServiceImpl.java similarity index 51% rename from hb-file/src/main/java/com/ruoyi/file/service/UploadTaskService.java rename to hb-file/src/main/java/com/ruoyi/file/service/impl/UploadTaskServiceImpl.java index 4a3adc8..7744628 100644 --- a/hb-file/src/main/java/com/ruoyi/file/service/UploadTaskService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/impl/UploadTaskServiceImpl.java @@ -1,13 +1,13 @@ -package com.ruoyi.file.service; +package com.ruoyi.file.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.file.api.IUploadTaskService; import com.ruoyi.file.domain.UploadTask; import com.ruoyi.file.mapper.UploadTaskMapper; +import com.ruoyi.file.service.IUploadTaskService; import org.springframework.stereotype.Service; @Service -public class UploadTaskService extends ServiceImpl implements IUploadTaskService { +public class UploadTaskServiceImpl extends ServiceImpl implements IUploadTaskService { } diff --git a/hb-file/src/main/java/com/ruoyi/file/service/UserFileService.java b/hb-file/src/main/java/com/ruoyi/file/service/impl/UserFileServiceImpl.java similarity index 98% rename from hb-file/src/main/java/com/ruoyi/file/service/UserFileService.java rename to hb-file/src/main/java/com/ruoyi/file/service/impl/UserFileServiceImpl.java index bb34270..c4584cb 100644 --- a/hb-file/src/main/java/com/ruoyi/file/service/UserFileService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/impl/UserFileServiceImpl.java @@ -1,4 +1,4 @@ -package com.ruoyi.file.service; +package com.ruoyi.file.service.impl; import cn.hutool.core.net.URLDecoder; import cn.hutool.core.util.IdUtil; @@ -13,7 +13,6 @@ import com.qiwenshare.common.util.DateUtil; import com.ruoyi.file.dto.file.UserFileDTO; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.file.api.IUserFileService; import com.ruoyi.file.component.FileDealComp; import com.ruoyi.file.domain.RecoveryFile; import com.ruoyi.file.domain.UserFile; @@ -21,6 +20,7 @@ import com.ruoyi.file.io.QiwenFile; import com.ruoyi.file.mapper.RecoveryFileMapper; import com.ruoyi.file.mapper.SysRoleUserFileMapper; import com.ruoyi.file.mapper.UserFileMapper; +import com.ruoyi.file.service.IUserFileService; import com.ruoyi.file.util.FileTreeSelect; import com.ruoyi.file.vo.file.FileListVO; import lombok.extern.slf4j.Slf4j; @@ -38,7 +38,7 @@ import java.util.stream.Collectors; @Slf4j @Service @Transactional(rollbackFor = Exception.class) -public class UserFileService extends ServiceImpl implements IUserFileService { +public class UserFileServiceImpl extends ServiceImpl implements IUserFileService { @Resource UserFileMapper userFileMapper; @Resource diff --git a/hb-file/src/main/java/com/ruoyi/file/service/UserLoginInfoService.java b/hb-file/src/main/java/com/ruoyi/file/service/impl/UserLoginInfoServiceImpl.java similarity index 63% rename from hb-file/src/main/java/com/ruoyi/file/service/UserLoginInfoService.java rename to hb-file/src/main/java/com/ruoyi/file/service/impl/UserLoginInfoServiceImpl.java index 6d947e2..22cf654 100644 --- a/hb-file/src/main/java/com/ruoyi/file/service/UserLoginInfoService.java +++ b/hb-file/src/main/java/com/ruoyi/file/service/impl/UserLoginInfoServiceImpl.java @@ -1,9 +1,9 @@ -package com.ruoyi.file.service; +package com.ruoyi.file.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.file.api.IUserLoginInfoService; import com.ruoyi.file.domain.UserLoginInfo; import com.ruoyi.file.mapper.UserLoginInfoMapper; +import com.ruoyi.file.service.IUserLoginInfoService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -12,7 +12,7 @@ import org.springframework.transaction.annotation.Transactional; @Slf4j @Service @Transactional(rollbackFor=Exception.class) -public class UserLoginInfoService extends ServiceImpl implements IUserLoginInfoService { +public class UserLoginInfoServiceImpl extends ServiceImpl implements IUserLoginInfoService { } diff --git a/hb-file/src/main/resources/mapper/DownloadRecordMapper.xml b/hb-file/src/main/resources/mapper/DownloadRecordMapper.xml new file mode 100644 index 0000000..e296f79 --- /dev/null +++ b/hb-file/src/main/resources/mapper/DownloadRecordMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + select record_id, user_id, download_time, ipaddr, location, browser, os from download_record + + + + + + + + insert into download_record + + user_id, + download_time, + ipaddr, + location, + browser, + os, + + + #{userId}, + #{downloadTime}, + #{ipaddr}, + #{location}, + #{browser}, + #{os}, + + + + + update download_record + + user_id = #{userId}, + download_time = #{downloadTime}, + ipaddr = #{ipaddr}, + location = #{location}, + browser = #{browser}, + os = #{os}, + + where record_id = #{recordId} + + + + delete from download_record where record_id = #{recordId} + + + + delete from download_record where record_id in + + #{recordId} + + + + + delete from download_record_item where record_id in + + #{recordId} + + + + + delete from download_record_item where record_id = #{recordId} + + + + insert into download_record_item( item_id, record_id, userFileId) values + + ( #{item.itemId}, #{item.recordId}, #{item.userFileId}) + + + diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java index cc40df0..f8f211d 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java @@ -4,6 +4,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Set; import java.util.concurrent.TimeUnit; +import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import com.ruoyi.common.core.domain.entity.SysUser; @@ -237,6 +238,16 @@ public class TokenService if (StringUtils.isEmpty(token)) { token = request.getHeader("token"); } + if (StringUtils.isEmpty(token)) { + Cookie[] cookieArr = request.getCookies(); + if (cookieArr != null) { + for (Cookie cookie : cookieArr) { + if ("token".equals(cookie.getName())) { + token = cookie.getValue(); + } + } + } + } if (StringUtils.isNotEmpty(token) && token.startsWith(Constants.TOKEN_PREFIX)) { token = token.replace(Constants.TOKEN_PREFIX, "");