From 10ee4fbc4d23200a9b4d7494315e9bd283ebed70 Mon Sep 17 00:00:00 2001 From: pan <380711010@qq.com> Date: Sun, 1 Sep 2024 10:58:06 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E6=96=87=E6=A1=A3=E4=B8=AD=E5=BF=83?= =?UTF-8?q?=E6=9D=83=E9=99=90=E8=B0=83=E6=95=B4=202=E3=80=81=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E6=9D=83=E9=99=90=E8=B0=83=E6=95=B4=203=E3=80=81?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E4=B8=AD=E5=BF=83=204=E3=80=81=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E9=A2=84=E8=A7=88=E5=85=B3=E9=97=AD=E7=AA=97=E5=8F=A3?= =?UTF-8?q?=E6=97=B6=E8=A7=86=E5=B1=8F=E6=92=AD=E6=94=BE=E6=9A=82=E5=81=9C?= =?UTF-8?q?=E4=B8=8D=E4=BA=86=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/rzdata/web/domain/Document.java | 8 ++++++ .../com/rzdata/web/domain/DownloadCount.java | 1 + .../web/service/impl/DocumentServiceImpl.java | 28 +++++++++++++++++++ .../impl/DownloadCountServiceImpl.java | 9 ++++++ .../main/resources/mapper/DocumentMapper.xml | 3 ++ .../resources/mapper/DownloadCountMapper.xml | 3 +- .../main/resources/mapper/UseApplyMapper.xml | 2 +- .../com/rzdata/common/constant/Constants.java | 4 +++ 8 files changed, 56 insertions(+), 2 deletions(-) diff --git a/tool-tech-admin/src/main/java/com/rzdata/web/domain/Document.java b/tool-tech-admin/src/main/java/com/rzdata/web/domain/Document.java index 5bae6e9..ce34d8e 100644 --- a/tool-tech-admin/src/main/java/com/rzdata/web/domain/Document.java +++ b/tool-tech-admin/src/main/java/com/rzdata/web/domain/Document.java @@ -96,4 +96,12 @@ public class Document extends BaseEntity { private List excludeFields; + + private Boolean downloadCheck; + + private Boolean downloadStatus; + + private Boolean permissionCheck; + + private Boolean permission; } diff --git a/tool-tech-admin/src/main/java/com/rzdata/web/domain/DownloadCount.java b/tool-tech-admin/src/main/java/com/rzdata/web/domain/DownloadCount.java index 375eda6..ba94060 100644 --- a/tool-tech-admin/src/main/java/com/rzdata/web/domain/DownloadCount.java +++ b/tool-tech-admin/src/main/java/com/rzdata/web/domain/DownloadCount.java @@ -38,5 +38,6 @@ public class DownloadCount extends BaseEntity private String toolName; /** 工具下载数量 */ private String toolDownNum; + private String nickName; } diff --git a/tool-tech-admin/src/main/java/com/rzdata/web/service/impl/DocumentServiceImpl.java b/tool-tech-admin/src/main/java/com/rzdata/web/service/impl/DocumentServiceImpl.java index 56f87e0..c1a82e7 100644 --- a/tool-tech-admin/src/main/java/com/rzdata/web/service/impl/DocumentServiceImpl.java +++ b/tool-tech-admin/src/main/java/com/rzdata/web/service/impl/DocumentServiceImpl.java @@ -1,11 +1,15 @@ package com.rzdata.web.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.BooleanUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.rzdata.common.constant.Constants; import com.rzdata.common.core.domain.entity.SysDictData; +import com.rzdata.common.core.domain.entity.SysUser; +import com.rzdata.common.core.domain.model.LoginUser; +import com.rzdata.common.enums.RecordStatusEnum; import com.rzdata.common.utils.DateUtils; import com.rzdata.common.utils.SecurityUtils; import com.rzdata.system.service.ISysDictTypeService; @@ -14,6 +18,7 @@ import com.rzdata.web.domain.Document; import com.rzdata.web.domain.Tool; import com.rzdata.web.mapper.DocumentMapper; import com.rzdata.web.service.IDocumentService; +import com.rzdata.web.service.IUseApplyService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -37,6 +42,9 @@ public class DocumentServiceImpl implements IDocumentService @Autowired private ToolServiceImpl toolService; + @Autowired + private IUseApplyService iUseApplyService; + @Autowired private ISysDictTypeService sysDictTypeService; @@ -73,6 +81,11 @@ public class DocumentServiceImpl implements IDocumentService @Override public List selectDocumentList(Document document) { + if (BooleanUtil.isTrue(document.getPermissionCheck())) { + if(!SysUser.isAdmin(SecurityUtils.getUserId())){ + document.setPermission(SecurityUtils.hasPermi(Constants.DOC_VIEW_PERMISSION)); + } + } List documents = documentMapper.selectDocumentList(document); if(CollUtil.isEmpty(documents)){ return documents; @@ -93,6 +106,21 @@ public class DocumentServiceImpl implements IDocumentService } } } + + //前端传传参开启下载权限验证 + if (BooleanUtil.isTrue(document.getDownloadCheck())) { + String userId = SecurityUtils.getUserId().toString(); + for (Document dc: documents) { + //文档中 是创建人 或者 配置了下载权限 + boolean downStatus = false; + if(SecurityUtils.hasPermi(Constants.DOC_DOWNLOAD_PERMISSION) || userId.equals(dc.getCreateById()) || SysUser.isAdmin(SecurityUtils.getUserId())){ + downStatus = true; + }else if(StrUtil.isNotBlank(dc.getToolId()) && iUseApplyService.checkUseApply(dc.getToolId(),userId)){ + downStatus = true; + } + dc.setDownloadStatus(downStatus); + } + } return documents; } diff --git a/tool-tech-admin/src/main/java/com/rzdata/web/service/impl/DownloadCountServiceImpl.java b/tool-tech-admin/src/main/java/com/rzdata/web/service/impl/DownloadCountServiceImpl.java index a6b0a1b..1300816 100644 --- a/tool-tech-admin/src/main/java/com/rzdata/web/service/impl/DownloadCountServiceImpl.java +++ b/tool-tech-admin/src/main/java/com/rzdata/web/service/impl/DownloadCountServiceImpl.java @@ -1,7 +1,10 @@ package com.rzdata.web.service.impl; import java.util.List; + +import cn.hutool.core.lang.Snowflake; import com.rzdata.common.utils.DateUtils; +import com.rzdata.common.utils.SecurityUtils; import com.rzdata.web.domain.DownloadCount; import com.rzdata.web.mapper.DownloadCountMapper; import com.rzdata.web.service.IDownloadCountService; @@ -20,6 +23,9 @@ public class DownloadCountServiceImpl implements IDownloadCountService @Autowired private DownloadCountMapper downloadCountMapper; + @Autowired + private Snowflake snowflake; + /** * 查询工具下载统计 * @@ -53,7 +59,10 @@ public class DownloadCountServiceImpl implements IDownloadCountService @Override public int insertDownloadCount(DownloadCount downloadCount) { + downloadCount.setId(String.valueOf(snowflake.nextId())); downloadCount.setCreateTime(DateUtils.getNowDate()); + downloadCount.setCreateBy(SecurityUtils.getLoginUser().getUsername()); + downloadCount.setCreateById(String.valueOf(SecurityUtils.getLoginUser().getUserId())); return downloadCountMapper.insertDownloadCount(downloadCount); } diff --git a/tool-tech-admin/src/main/resources/mapper/DocumentMapper.xml b/tool-tech-admin/src/main/resources/mapper/DocumentMapper.xml index 5337fce..45cbb02 100644 --- a/tool-tech-admin/src/main/resources/mapper/DocumentMapper.xml +++ b/tool-tech-admin/src/main/resources/mapper/DocumentMapper.xml @@ -53,6 +53,9 @@ AND date_format(td.create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d') + + AND (td.create_by_id = #{createById} or td.doc_status = 'yfb') + and td.is_deleted = '0' order by td.create_time desc diff --git a/tool-tech-admin/src/main/resources/mapper/DownloadCountMapper.xml b/tool-tech-admin/src/main/resources/mapper/DownloadCountMapper.xml index 662d966..7fc6b7b 100644 --- a/tool-tech-admin/src/main/resources/mapper/DownloadCountMapper.xml +++ b/tool-tech-admin/src/main/resources/mapper/DownloadCountMapper.xml @@ -16,6 +16,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -95,7 +96,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" SELECT count(*) FROM `t_use_apply_item` uai - left join `t_use_apply` ua on uai.apply_id = ua.id + left join `t_tool_apply` ua on uai.apply_id = ua.id WHERE ua.record_status = 'done' and uai.tool_id = #{toolId} and ua.user_id = #{userId} diff --git a/tool-tech-common/src/main/java/com/rzdata/common/constant/Constants.java b/tool-tech-common/src/main/java/com/rzdata/common/constant/Constants.java index 6ee116b..d9bb90a 100644 --- a/tool-tech-common/src/main/java/com/rzdata/common/constant/Constants.java +++ b/tool-tech-common/src/main/java/com/rzdata/common/constant/Constants.java @@ -182,6 +182,7 @@ public class Constants public static final String DOWNLOAD_TOOL_PERMISSION = "download:done:tool"; + /** 文档-状态-已发布 **/ public static final String DOC_STATUS_YFB = "yfb"; /** 文档-状态-已上传 **/ @@ -195,4 +196,7 @@ public class Constants public static final String STR_ZERO = "0"; public static final String STR_ONE = "1"; + + public static final String DOC_DOWNLOAD_PERMISSION = "document:download"; + public static final String DOC_VIEW_PERMISSION = "document:query:data:all"; }