修改bug

This commit is contained in:
haozq 2025-11-21 13:38:23 +08:00
parent a1c05d44d3
commit f939eba40a
7 changed files with 118 additions and 44 deletions

View File

@ -91,6 +91,12 @@ public class DocumentScreenController extends BaseController {
return service.addDocument(vo); return service.addDocument(vo);
} }
@PostMapping("/addLookNum")
public AjaxResult addLookNum(@RequestBody TbFolderFileVo vo) {
return service.addLookNum(vo);
}
/** /**
* 新增文档 * 新增文档
* @param vo * @param vo

View File

@ -190,4 +190,11 @@ public interface DocumentScreenMapper {
* @return * @return
*/ */
int cancelShare(TbFolderFileVo vo); int cancelShare(TbFolderFileVo vo);
/**
* 查询是否是上级节点
* @param vo
* @return
*/
Integer getPublicFolderNum(TbFolderFileVo vo);
} }

View File

@ -91,4 +91,11 @@ public interface DocumentScreenService {
* @return * @return
*/ */
AjaxResult cancelShare(TbFolderFileVo vo); AjaxResult cancelShare(TbFolderFileVo vo);
/**
* 增加文件查看次数
* @param vo
* @return
*/
AjaxResult addLookNum(TbFolderFileVo vo);
} }

View File

@ -40,6 +40,10 @@ public class DocumentScreenImpl implements DocumentScreenService {
private MinioUtil minioUtil; private MinioUtil minioUtil;
@Autowired
public FileServiceUtils fileServiceUtils;
protected String dataIds=",companyDocument,myShare,otherShare,share,"; protected String dataIds=",companyDocument,myShare,otherShare,share,";
protected String day= DateUtils.getCurrentDay(); protected String day= DateUtils.getCurrentDay();
@ -126,6 +130,8 @@ public class DocumentScreenImpl implements DocumentScreenService {
return AjaxResult.error("取消失败"); return AjaxResult.error("取消失败");
} }
/** /**
* 新建文件夹 * 新建文件夹
* @param vo * @param vo
@ -300,8 +306,14 @@ public class DocumentScreenImpl implements DocumentScreenService {
List<String> ids=Arrays.asList(vo.getLabelIds().split(",")); List<String> ids=Arrays.asList(vo.getLabelIds().split(","));
vo.setLabelIdList(ids); vo.setLabelIdList(ids);
} }
List<TbFolderFileVo> list=mapper.getFileFolderList(vo); List<TbFolderFileVo> list=mapper.getFileFolderList(vo);
for (TbFolderFileVo tbFolderFileVo : list) {
if("1".equals(tbFolderFileVo.getFileType()) && StringUtils.isNotEmpty(tbFolderFileVo.getFilePath())){
String path = fileServiceUtils.getFileUrl(tbFolderFileVo.getFilePath(),null);
tbFolderFileVo.setFilePath(path);
}
}
//进行数据查看进行插入数据 //进行数据查看进行插入数据
Integer num=mapper.getLookNum(vo); Integer num=mapper.getLookNum(vo);
if (num==null){ if (num==null){
@ -316,7 +328,27 @@ public class DocumentScreenImpl implements DocumentScreenService {
} }
return Collections.emptyList(); return Collections.emptyList();
} }
@Override
public AjaxResult addLookNum(TbFolderFileVo vo) {
try{
if(vo.getId().split("_").length==3){
vo.setId(vo.getId().split("_")[2]);
}
vo.setParentId(vo.getId());
vo.setType("2");
Integer num=mapper.getLookNum(vo);
if (num==null){
num=0;
}
num++;
vo.setReadNum(num+"");
mapper.updateLookNum(vo);
}catch (Exception e){
log.error(e.toString(),e);
}
return AjaxResult.success();
}
/** /**
* 移动文件/文件夹 * 移动文件/文件夹
* @param vo * @param vo
@ -352,22 +384,25 @@ public class DocumentScreenImpl implements DocumentScreenService {
if("companyDocument".equals(vo.getNewParentId()) || "myShare".equals(vo.getNewParentId()) || "otherShare".equals(vo.getNewParentId())){ if("companyDocument".equals(vo.getNewParentId()) || "myShare".equals(vo.getNewParentId()) || "otherShare".equals(vo.getNewParentId())){
return AjaxResult.error("目标文件夹没有权限"); return AjaxResult.error("目标文件夹没有权限");
} }
TbFolderFileVo data=mapper.getDocumentRealData(vo);
if(data==null || !"1".equals(data.getDataType())){
return AjaxResult.error("共享及分享的文件夹不允许移动");
}
//验证目标文件夹名称 //验证目标文件夹名称
String name=mapper.getNowName(vo); String name=mapper.getNowName(vo);
Integer publicFolderNum= mapper.getPublicFolderNum(vo);
if(publicFolderNum==null){
publicFolderNum=0;
}
//如果是初始化节点 //如果是初始化节点
if ("0".equals(vo.getParentId())) { if ("0".equals(vo.getParentId())) {
TbFolderFileVo data=mapper.getDocumentRealData(vo);
TbDocumentFolder documentFolder = getTbDocumentFolder(vo, data); TbDocumentFolder documentFolder = getTbDocumentFolder(vo, data);
//目标不是文档中心 //目标不是文档中心
if("userDocument".equals(vo.getNewParentId())) { if("userDocument".equals(vo.getNewParentId())) {
mapper.deleteDocumentReal(data);
int num=mapper.getToName(name,vo.getPublicFolderId()); int num=mapper.getToName(name,vo.getPublicFolderId());
if(num>0){ if(num>0){
return AjaxResult.error("目标文件夹名称已存在"); return AjaxResult.error("目标文件夹名称已存在");
} }
mapper.deleteDocumentReal(data);
mapper.addDocumentRealUser(documentFolder); mapper.addDocumentRealUser(documentFolder);
}else{ }else{
@ -378,11 +413,12 @@ public class DocumentScreenImpl implements DocumentScreenService {
if(isChiild){ if(isChiild){
return AjaxResult.error("目标文件夹不能是自己子文件夹"); return AjaxResult.error("目标文件夹不能是自己子文件夹");
} }
mapper.deleteDocumentReal(data);
int num=mapper.getToName2(name,vo.getNewParentId()); int num=mapper.getToName2(name,vo.getNewParentId());
if(num>0){ if(num>0){
return AjaxResult.error("目标文件夹名称已存在"); return AjaxResult.error("目标文件夹名称已存在");
} }
mapper.deleteDocumentReal(data);
if("3".equals(vo.getToType())){ if("3".equals(vo.getToType())){
vo.setToType("3"); vo.setToType("3");
}else{ }else{
@ -392,15 +428,12 @@ public class DocumentScreenImpl implements DocumentScreenService {
} }
}else{ }else{
//非初始化节点 查询全部子数据 //非初始化节点 查询全部子数据
if("3".equals(vo.getToType())){ if("3".equals(vo.getToType())){
vo.setToType("3"); vo.setToType("3");
}else{ }else{
vo.setToType(null); vo.setToType(null);
} }
if("userDocument".equals(vo.getNewParentId())) { if("userDocument".equals(vo.getNewParentId()) || publicFolderNum>0) {
TbDocumentFolder documentFolder =new TbDocumentFolder(); TbDocumentFolder documentFolder =new TbDocumentFolder();
documentFolder.setPublicFolderId(vo.getNewParentId()); documentFolder.setPublicFolderId(vo.getNewParentId());
documentFolder.setAuthType("1"); documentFolder.setAuthType("1");
@ -466,6 +499,9 @@ public class DocumentScreenImpl implements DocumentScreenService {
public AjaxResult delete(TbFolderFileVo vo) { public AjaxResult delete(TbFolderFileVo vo) {
try{ try{
if(dataIds.contains(vo.getParentId())){
return AjaxResult.error("当前文件夹不允许删除");
}
//父节点更新 //父节点更新
String userId=SecurityUtils.getUserId().toString(); String userId=SecurityUtils.getUserId().toString();
vo.setUserId(userId); vo.setUserId(userId);
@ -484,9 +520,9 @@ public class DocumentScreenImpl implements DocumentScreenService {
//如果是初始化节点 //如果是初始化节点
if ("0".equals(vo.getParentId())) { if ("0".equals(vo.getParentId())) {
TbFolderFileVo data=mapper.getDocumentRealData(vo); TbFolderFileVo data=mapper.getDocumentRealData(vo);
if(!"1".equals(data.getDataType())){ // if(!"1".equals(data.getDataType())){
return AjaxResult.success("共享及分享的文件夹不允许删除"); // return AjaxResult.success("共享及分享的文件夹不允许删除");
} // }
int num= mapper.deleteDocumentReal(data); int num= mapper.deleteDocumentReal(data);
}else{ }else{
@ -569,6 +605,7 @@ public class DocumentScreenImpl implements DocumentScreenService {
if(dataIds.contains(vo.getId())){ if(dataIds.contains(vo.getId())){
return AjaxResult.error("当前文件夹不允许重命名"); return AjaxResult.error("当前文件夹不允许重命名");
} }
//父节点更新 //父节点更新
String userId=SecurityUtils.getUserId().toString(); String userId=SecurityUtils.getUserId().toString();
vo.setUserId(userId); vo.setUserId(userId);
@ -661,8 +698,8 @@ public class DocumentScreenImpl implements DocumentScreenService {
} }
//全部数据集合--treeList 需要创建文件夹及文件 //全部数据集合--treeList 需要创建文件夹及文件
long timestamp1 = System.currentTimeMillis(); long timestamp1 = System.currentTimeMillis();
String dir="F:\\download\\"+timestamp1; String dir=getDownloadPath()+timestamp1;
String downloadPath="F:\\downZip\\"+timestamp1+"\\"; String downloadPath=getZipPath()+timestamp1+"\\";
boolean success =createDirectories(downloadPath); boolean success =createDirectories(downloadPath);
//创建文件夹 //创建文件夹
downloadFiles(treeList1,dir); downloadFiles(treeList1,dir);
@ -682,8 +719,8 @@ public class DocumentScreenImpl implements DocumentScreenService {
} }
//全部数据集合--treeList 需要创建文件夹及文件 //全部数据集合--treeList 需要创建文件夹及文件
long timestamp1 = System.currentTimeMillis(); long timestamp1 = System.currentTimeMillis();
String dir="F:\\download\\"+timestamp1; String dir=getDownloadPath()+timestamp1;
String downloadPath="F:\\downZip\\"+timestamp1+"\\"; String downloadPath=getZipPath()+timestamp1+"\\";
boolean success =createDirectories(downloadPath); boolean success =createDirectories(downloadPath);
//创建文件夹 //创建文件夹
downloadFiles(treeList,dir); downloadFiles(treeList,dir);
@ -698,6 +735,30 @@ public class DocumentScreenImpl implements DocumentScreenService {
} }
} }
public static String getDownloadPath(){
String osName = System.getProperty("os.name").toLowerCase();
if (osName.contains("win")) {
return "F:\\download\\";
} else if (osName.contains("nix") || osName.contains("nux") || osName.contains("aix")) {
return "/data/local/tmp/";
} else {
return "/data/local/tmp/";
}
}
public static String getZipPath(){
String osName = System.getProperty("os.name").toLowerCase();
if (osName.contains("win")) {
return "F:\\downZip\\";
} else if (osName.contains("nix") || osName.contains("nux") || osName.contains("aix")) {
return "/data/local/tmp/";
} else {
return "/data/local/tmp/";
}
}
public HttpServletResponse download(String path, HttpServletResponse response) { public HttpServletResponse download(String path, HttpServletResponse response) {
try { try {
@ -792,20 +853,8 @@ public class DocumentScreenImpl implements DocumentScreenService {
} }
return false; return false;
} }
public static void main(String[] args) {
String path = "F:\\HAHAH\\DD\\PPP";
Path dir = Paths.get(path);
try {
boolean success = Files.createDirectories(dir).isAbsolute();
} catch (IOException e) {
throw new RuntimeException(e);
}
String sourceDirPath = "F:\\新建文件夹"; // 指定源目录路径
String zipFilePath = "F:\\files\\test.zip"; // 指定输出ZIP文件的路径
zipDirectory(sourceDirPath, zipFilePath);
System.out.println("Directory zipped successfully.");
}
public static void deleteDirectoryContents(String path) { public static void deleteDirectoryContents(String path) {
try { try {
Path directory = Paths.get(path); Path directory = Paths.get(path);
@ -1015,12 +1064,13 @@ public class DocumentScreenImpl implements DocumentScreenService {
// //
String[] ids=files.getLabelIds().split(","); String[] ids=files.getLabelIds().split(",");
String[] name= files.getLabels().split(","); String[] name= files.getLabels().split(",");
TbUserLabel vo=new TbUserLabel();
for (MultipartFile file: multipartFileList) { for (MultipartFile file: multipartFileList) {
List<TbUserLabel> list=new ArrayList<>(); List<TbUserLabel> list=new ArrayList<>();
String documentId=StringUtils.randomUUID(); String documentId=StringUtils.randomUUID();
documentFolder.setId(documentId); documentFolder.setId(documentId);
for (int i = 0; i <ids.length ; i++) { for (int i = 0; i <ids.length ; i++) {
TbUserLabel vo=new TbUserLabel();
vo.setFileId(documentId); vo.setFileId(documentId);
vo.setLabelId(ids[i]); vo.setLabelId(ids[i]);
vo.setLabelName(name[i]); vo.setLabelName(name[i]);

View File

@ -53,6 +53,6 @@
<select id="getLabelNumById" resultType="java.lang.Integer"> <select id="getLabelNumById" resultType="java.lang.Integer">
select count(1) select count(1)
from tb_document_files_label from tb_document_files_label
where label_id = #{id} where lable_id = #{id}
</select> </select>
</mapper> </mapper>

View File

@ -163,7 +163,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="getFileFolderList" resultType="com.bonus.business.domain.TbFolderFileVo"> <select id="getFileFolderList" resultType="com.bonus.business.domain.TbFolderFileVo">
<if test='type=="1" or type==1 '> <if test='type=="1" or type==1 '>
select tpf.id,tpf.folder_name name ,tpf.parent_id parentId,tpf.parent_ids,1 type ,tpf.down_times downNum,0 fileType, '文件夹' fileSuffix, select tpf.id,tpf.folder_name name ,tpf.parent_id parentId,tpf.parent_ids,1 type ,tpf.down_times downNum,0 fileType, '文件夹' fileSuffix,
'' labName, tpf.id publicFolderId,#{auth} auth, '' labName, tpf.id publicFolderId,#{auth} auth,'' filePath,
tpf.see_times readNum,tpf.create_user,tpf.create_time createTime,tpf.update_time updateTime,su.user_name createUser tpf.see_times readNum,tpf.create_user,tpf.create_time createTime,tpf.update_time updateTime,su.user_name createUser
from tb_public_folder tpf from tb_public_folder tpf
<if test='isAdmin!="1" '> <if test='isAdmin!="1" '>
@ -178,9 +178,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and tpf.id='0000000'; and tpf.id='0000000';
</if> </if>
union ALL union ALL
SELECT SELECT distinct
tudf.id, tudf.folder_name,tudf.parent_id,tudf.parent_ids,IFNULL(tudf.type,2) type ,tudf.down_times,tudf.file_type fileType,tudf.file_suffix fileSuffix, tudf.id, tudf.folder_name,tudf.parent_id,tudf.parent_ids,IFNULL(tudf.type,2) type ,tudf.down_times,tudf.file_type fileType,tudf.file_suffix fileSuffix,
GROUP_CONCAT(tdfl.lable_name SEPARATOR ',') AS labName,tpru.public_folder_id publicFolderId,if(tpru.auth is null,#{auth},tpru.auth) auth, tudf.labels AS labName,tpru.public_folder_id publicFolderId,if(tpru.auth is null,#{auth},tpru.auth) auth,tudf.file_path filePath,
tudf.see_times, tudf.create_user,tudf.create_time,tudf.update_time,su.user_name tudf.see_times, tudf.create_user,tudf.create_time,tudf.update_time,su.user_name
FROM tb_public_real_user tpru FROM tb_public_real_user tpru
left join tb_user_document_folder tudf on tpru.user_folder_id=tudf.id left join tb_user_document_folder tudf on tpru.user_folder_id=tudf.id
@ -200,13 +200,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach> </foreach>
) )
</if> </if>
GROUP BY tudf.id
</if> </if>
<if test='type=="2" or type==2 or type=="4" or type==4'> <if test='type=="2" or type==2 or type=="4" or type==4'>
SELECT tudf.id, tudf.folder_name name,tudf.parent_id parentId,tudf.parent_ids,IFNULL(tudf.type,2) type ,tudf.down_times downNum, SELECT distinct tudf.id, tudf.folder_name name,tudf.parent_id parentId,tudf.parent_ids,IFNULL(tudf.type,2) type ,tudf.down_times downNum,
tudf.file_type fileType,tudf.file_suffix fileSuffix,tpru.public_folder_id publicFolderId,if(tpru.auth is null,#{auth},tpru.auth) auth, tudf.file_type fileType,tudf.file_suffix fileSuffix,tpru.public_folder_id publicFolderId,if(tpru.auth is null,#{auth},tpru.auth) auth,
tudf.see_times readNum, tudf.create_user,tudf.create_time createTime,tudf.update_time updateTime,su.user_name createUser, tudf.see_times readNum, tudf.create_user,tudf.create_time createTime,tudf.update_time updateTime,su.user_name createUser,
GROUP_CONCAT(tdfl.lable_name SEPARATOR ',') AS labName tudf.file_path filePath,
tudf.labels AS labName
FROM tb_user_document_folder tudf FROM tb_user_document_folder tudf
left join tb_public_real_user tpru on tpru.user_folder_id=tudf.id left join tb_public_real_user tpru on tpru.user_folder_id=tudf.id
left join sys_user su on su.user_id=tudf.create_user left join sys_user su on su.user_id=tudf.create_user
@ -222,13 +222,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach> </foreach>
) )
</if> </if>
GROUP BY tudf.id
</if> </if>
<if test='type=="3" or type==3 '> <if test='type=="3" or type==3 '>
SELECT tudf.id, tudf.folder_name name,tudf.parent_id parentId,tudf.parent_ids,IFNULL(tudf.type,2) type ,tudf.down_times downNum, SELECT distinct tudf.id, tudf.folder_name name,tudf.parent_id parentId,tudf.parent_ids,IFNULL(tudf.type,2) type ,tudf.down_times downNum,
tudf.file_type fileType,tudf.file_suffix fileSuffix,tpru.public_folder_id publicFolderId,if(tpru.auth is null,#{auth},tpru.auth) auth, tudf.file_type fileType,tudf.file_suffix fileSuffix,tpru.public_folder_id publicFolderId,if(tpru.auth is null,#{auth},tpru.auth) auth,
tudf.see_times readNum, tudf.create_user,tudf.create_time createTime,tudf.update_time updateTime,su.user_name createUser, tudf.see_times readNum, tudf.create_user,tudf.create_time createTime,tudf.update_time updateTime,su.user_name createUser,
GROUP_CONCAT(tdfl.lable_name SEPARATOR ',') AS labName tudf.file_path filePath,
tudf.labels AS labName
FROM tb_user_document_folder tudf FROM tb_user_document_folder tudf
left join tb_public_real_user tpru on tpru.user_folder_id=tudf.id left join tb_public_real_user tpru on tpru.user_folder_id=tudf.id
left join sys_user su on su.user_id=tudf.create_user left join sys_user su on su.user_id=tudf.create_user
@ -250,7 +250,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach> </foreach>
) )
</if> </if>
GROUP BY tudf.id
</if> </if>
</select> </select>
@ -337,6 +336,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
from tb_user_document_folder from tb_user_document_folder
where file_type=0 where file_type=0
</select> </select>
<select id="getPublicFolderNum" resultType="java.lang.Integer">
select count(1)
FROM tb_public_folder
WHERE id=#{newParentId}
</select>
</mapper> </mapper>

View File

@ -47,7 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
GROUP BY GROUP BY
d.dept_id d.dept_id
<!-- 数据范围过滤 --> <!-- 数据范围过滤 -->
${params.dataScope} -- ${params.dataScope}
order by d.parent_id, d.order_num order by d.parent_id, d.order_num
</select> </select>