1、业务接口类及业务接口实现类包路径优化;
2、下载记录增删查改接口实现; 3、下载和批量下载API接口增加保存下载记录功能; 4、获取Token方法增加从Cookie获取Token功能
This commit is contained in:
parent
375858c943
commit
80b5a98c57
@ -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;
|
||||
|
||||
@ -86,7 +86,7 @@ spring:
|
||||
# 端口,默认为6379
|
||||
port: 6379
|
||||
# 数据库索引
|
||||
database: 0
|
||||
database: 1
|
||||
# 密码
|
||||
password: hb123.com
|
||||
# 连接超时时间
|
||||
|
||||
@ -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,11 +78,15 @@ public class WebLogAcpect {
|
||||
if (ret instanceof RestResult) {
|
||||
boolean isSuccess = ((RestResult) ret).getSuccess();
|
||||
String errorMessage = ((RestResult) ret).getMessage();
|
||||
LoginUser sessionUser = SecurityUtils.getLoginUser();
|
||||
Long userId = null;
|
||||
try {
|
||||
LoginUser sessionUser = SecurityUtils.getLoginUser();
|
||||
if (sessionUser != null) {
|
||||
userId = sessionUser.getUserId();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
Integer code = ((RestResult) ret).getCode();
|
||||
if (code != null && code == 200001) {
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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<DownloadRecord> 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<DownloadRecord> list = downloadRecordService.selectDownloadRecordList(downloadRecord);
|
||||
ExcelUtil<DownloadRecord> util = new ExcelUtil<DownloadRecord>(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));
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
|
||||
@ -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"})
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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<DownloadRecordItem> downloadRecordItemList;
|
||||
|
||||
/** 用户昵称 */
|
||||
private String nickName;
|
||||
|
||||
/** 文件名称(多个用,隔开) */
|
||||
private String fileNames;
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
@ -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<DownloadRecord> 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<DownloadRecordItem> downloadRecordItemList);
|
||||
|
||||
|
||||
/**
|
||||
* 通过下载记录主键删除下载记录明显信息
|
||||
*
|
||||
* @param recordId 下载记录ID
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteDownloadRecordItemByRecordId(Long recordId);
|
||||
}
|
||||
@ -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;
|
||||
@ -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<DownloadRecord> 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<String> userFileIds);
|
||||
}
|
||||
@ -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;
|
||||
@ -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;
|
||||
@ -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;
|
||||
@ -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;
|
||||
@ -1,4 +1,4 @@
|
||||
package com.ruoyi.file.api;
|
||||
package com.ruoyi.file.service;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
@ -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;
|
||||
@ -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;
|
||||
@ -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;
|
||||
@ -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;
|
||||
@ -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;
|
||||
@ -1,4 +1,4 @@
|
||||
package com.ruoyi.file.api;
|
||||
package com.ruoyi.file.service;
|
||||
|
||||
import com.ruoyi.common.core.domain.entity.SysRole;
|
||||
|
||||
@ -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;
|
||||
@ -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;
|
||||
@ -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;
|
||||
@ -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;
|
||||
@ -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<CommonFileMapper, CommonFile> implements ICommonFileService {
|
||||
public class CommonFileServiceImpl extends ServiceImpl<CommonFileMapper, CommonFile> implements ICommonFileService {
|
||||
|
||||
@Resource
|
||||
CommonFileMapper commonFileMapper;
|
||||
@ -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<DownloadRecord> selectDownloadRecordList(DownloadRecord downloadRecord)
|
||||
{
|
||||
List<DownloadRecord> recordList = downloadRecordMapper.selectDownloadRecordList(downloadRecord);
|
||||
for (DownloadRecord record : recordList) {
|
||||
List<DownloadRecordItem> 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<String> 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<DownloadRecordItem> 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<DownloadRecordItem> downloadRecordItemList = downloadRecord.getDownloadRecordItemList();
|
||||
Long recordId = downloadRecord.getRecordId();
|
||||
if (StringUtils.isNotNull(downloadRecordItemList))
|
||||
{
|
||||
List<DownloadRecordItem> list = new ArrayList<DownloadRecordItem>();
|
||||
for (DownloadRecordItem downloadRecordItem : downloadRecordItemList)
|
||||
{
|
||||
downloadRecordItem.setRecordId(recordId);
|
||||
list.add(downloadRecordItem);
|
||||
}
|
||||
if (list.size() > 0)
|
||||
{
|
||||
downloadRecordMapper.batchDownloadRecordItem(list);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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<FilePermissionMapper, FilePermission> implements IFilePermissionService {
|
||||
public class FilePermissionServiceImpl extends ServiceImpl<FilePermissionMapper, FilePermission> implements IFilePermissionService {
|
||||
|
||||
}
|
||||
@ -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<FileMapper, FileBean> implements IFileService {
|
||||
public class FileServiceImpl extends ServiceImpl<FileMapper, FileBean> implements IFileService {
|
||||
public static Executor executor = Executors.newFixedThreadPool(20);
|
||||
@Resource
|
||||
FileMapper fileMapper;
|
||||
@ -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;
|
||||
@ -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<NoticeMapper, Notice> implements INoticeService {
|
||||
public class NoticeServiceImpl extends ServiceImpl<NoticeMapper, Notice> implements INoticeService {
|
||||
@Resource
|
||||
NoticeMapper noticeMapper;
|
||||
|
||||
@ -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<OperationLogMapper, OperationLogBean> implements IOperationLogService {
|
||||
public class OperationLogServiceImpl extends ServiceImpl<OperationLogMapper, OperationLogBean> implements IOperationLogService {
|
||||
|
||||
@Resource
|
||||
OperationLogMapper operationLogMapper;
|
||||
@ -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<RecoveryFileMapper, RecoveryFile> implements IRecoveryFileService {
|
||||
public class RecoveryFileServiceImpl extends ServiceImpl<RecoveryFileMapper, RecoveryFile> implements IRecoveryFileService {
|
||||
@Resource
|
||||
UserFileMapper userFileMapper;
|
||||
@Resource
|
||||
@ -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<ShareFileMapper, ShareFile> implements IShareFileService {
|
||||
public class ShareFileServiceImpl extends ServiceImpl<ShareFileMapper, ShareFile> implements IShareFileService {
|
||||
@Resource
|
||||
ShareFileMapper shareFileMapper;
|
||||
|
||||
@ -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<ShareMapper, Share> implements IShareService {
|
||||
public class ShareServiceImpl extends ServiceImpl<ShareMapper, Share> implements IShareService {
|
||||
|
||||
@Resource
|
||||
ShareMapper shareMapper;
|
||||
@ -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<StorageMapper, StorageBean> implements IStorageService {
|
||||
public class StorageServiceImpl extends ServiceImpl<StorageMapper, StorageBean> implements IStorageService {
|
||||
@Resource
|
||||
StorageMapper storageMapper;
|
||||
@Resource
|
||||
@ -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<SysParamMapper, SysParam> implements ISysParamService {
|
||||
public class SysParamServiceImpl extends ServiceImpl<SysParamMapper, SysParam> implements ISysParamService {
|
||||
|
||||
@Resource
|
||||
SysParamMapper sysParamMapper;
|
||||
@ -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;
|
||||
@ -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<UploadTaskDetailMapper, UploadTaskDetail> implements IUploadTaskDetailService {
|
||||
public class UploadTaskDetailServiceImpl extends ServiceImpl<UploadTaskDetailMapper, UploadTaskDetail> implements IUploadTaskDetailService {
|
||||
|
||||
@Resource
|
||||
UploadTaskDetailMapper uploadTaskDetailMapper;
|
||||
@ -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<UploadTaskMapper, UploadTask> implements IUploadTaskService {
|
||||
public class UploadTaskServiceImpl extends ServiceImpl<UploadTaskMapper, UploadTask> implements IUploadTaskService {
|
||||
|
||||
|
||||
}
|
||||
@ -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<UserFileMapper, UserFile> implements IUserFileService {
|
||||
public class UserFileServiceImpl extends ServiceImpl<UserFileMapper, UserFile> implements IUserFileService {
|
||||
@Resource
|
||||
UserFileMapper userFileMapper;
|
||||
@Resource
|
||||
@ -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<UserLoginInfoMapper, UserLoginInfo> implements IUserLoginInfoService {
|
||||
public class UserLoginInfoServiceImpl extends ServiceImpl<UserLoginInfoMapper, UserLoginInfo> implements IUserLoginInfoService {
|
||||
|
||||
|
||||
}
|
||||
115
hb-file/src/main/resources/mapper/DownloadRecordMapper.xml
Normal file
115
hb-file/src/main/resources/mapper/DownloadRecordMapper.xml
Normal file
@ -0,0 +1,115 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ruoyi.file.mapper.DownloadRecordMapper">
|
||||
|
||||
<resultMap type="DownloadRecord" id="DownloadRecordResult">
|
||||
<result property="recordId" column="record_id" />
|
||||
<result property="userId" column="user_id" />
|
||||
<result property="downloadTime" column="download_time" />
|
||||
<result property="ipaddr" column="ipaddr" />
|
||||
<result property="location" column="location" />
|
||||
<result property="browser" column="browser" />
|
||||
<result property="os" column="os" />
|
||||
<result property="nickName" column="nick_name" />
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="DownloadRecordDownloadRecordItemResult" type="DownloadRecord" extends="DownloadRecordResult">
|
||||
<collection property="downloadRecordItemList" notNullColumn="sub_item_id" javaType="java.util.List" resultMap="DownloadRecordItemResult" />
|
||||
</resultMap>
|
||||
|
||||
<resultMap type="DownloadRecordItem" id="DownloadRecordItemResult">
|
||||
<result property="itemId" column="sub_item_id" />
|
||||
<result property="recordId" column="sub_record_id" />
|
||||
<result property="userFileId" column="sub_userFileId" />
|
||||
<association property="userFile" javaType="com.ruoyi.file.domain.UserFile"
|
||||
select="com.ruoyi.file.mapper.UserFileMapper.selectByUserFileId" column="sub_userFileId"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectDownloadRecordVo">
|
||||
select record_id, user_id, download_time, ipaddr, location, browser, os from download_record
|
||||
</sql>
|
||||
|
||||
<select id="selectDownloadRecordList" parameterType="DownloadRecord" resultMap="DownloadRecordDownloadRecordItemResult">
|
||||
select a.record_id, a.user_id, a.download_time, a.ipaddr, a.location, a.browser, a.os, u.nick_name as nick_name,
|
||||
b.item_id as sub_item_id, b.record_id as sub_record_id, b.userFileId as sub_userFileId
|
||||
from download_record a
|
||||
left join download_record_item b on b.record_id = a.record_id
|
||||
left join sys_user u on u.user_id = a.user_id
|
||||
<where>
|
||||
<if test="params.beginDownloadTime != null and params.beginDownloadTime != '' and params.endDownloadTime != null and params.endDownloadTime != ''"> and download_time between #{params.beginDownloadTime} and #{params.endDownloadTime}</if>
|
||||
<if test="location != null and location != ''"> and location like concat('%', #{location}, '%')</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectDownloadRecordByRecordId" parameterType="Long" resultMap="DownloadRecordDownloadRecordItemResult">
|
||||
select a.record_id, a.user_id, a.download_time, a.ipaddr, a.location, a.browser, a.os,
|
||||
b.item_id as sub_item_id, b.record_id as sub_record_id, b.userFileId as sub_userFileId
|
||||
from download_record a
|
||||
left join download_record_item b on b.record_id = a.record_id
|
||||
where a.record_id = #{recordId}
|
||||
</select>
|
||||
|
||||
<insert id="insertDownloadRecord" parameterType="DownloadRecord" useGeneratedKeys="true" keyProperty="recordId">
|
||||
insert into download_record
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="userId != null">user_id,</if>
|
||||
<if test="downloadTime != null">download_time,</if>
|
||||
<if test="ipaddr != null">ipaddr,</if>
|
||||
<if test="location != null">location,</if>
|
||||
<if test="browser != null">browser,</if>
|
||||
<if test="os != null">os,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="userId != null">#{userId},</if>
|
||||
<if test="downloadTime != null">#{downloadTime},</if>
|
||||
<if test="ipaddr != null">#{ipaddr},</if>
|
||||
<if test="location != null">#{location},</if>
|
||||
<if test="browser != null">#{browser},</if>
|
||||
<if test="os != null">#{os},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<update id="updateDownloadRecord" parameterType="DownloadRecord">
|
||||
update download_record
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="userId != null">user_id = #{userId},</if>
|
||||
<if test="downloadTime != null">download_time = #{downloadTime},</if>
|
||||
<if test="ipaddr != null">ipaddr = #{ipaddr},</if>
|
||||
<if test="location != null">location = #{location},</if>
|
||||
<if test="browser != null">browser = #{browser},</if>
|
||||
<if test="os != null">os = #{os},</if>
|
||||
</trim>
|
||||
where record_id = #{recordId}
|
||||
</update>
|
||||
|
||||
<delete id="deleteDownloadRecordByRecordId" parameterType="Long">
|
||||
delete from download_record where record_id = #{recordId}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteDownloadRecordByRecordIds" parameterType="String">
|
||||
delete from download_record where record_id in
|
||||
<foreach item="recordId" collection="array" open="(" separator="," close=")">
|
||||
#{recordId}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<delete id="deleteDownloadRecordItemByRecordIds" parameterType="String">
|
||||
delete from download_record_item where record_id in
|
||||
<foreach item="recordId" collection="array" open="(" separator="," close=")">
|
||||
#{recordId}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<delete id="deleteDownloadRecordItemByRecordId" parameterType="Long">
|
||||
delete from download_record_item where record_id = #{recordId}
|
||||
</delete>
|
||||
|
||||
<insert id="batchDownloadRecordItem">
|
||||
insert into download_record_item( item_id, record_id, userFileId) values
|
||||
<foreach item="item" index="index" collection="list" separator=",">
|
||||
( #{item.itemId}, #{item.recordId}, #{item.userFileId})
|
||||
</foreach>
|
||||
</insert>
|
||||
</mapper>
|
||||
@ -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, "");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user