From d74244903fdc1378a4af3fdc7fd5ca2275dfd069 Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Mon, 22 Sep 2025 10:37:21 +0800 Subject: [PATCH] =?UTF-8?q?feat(portal):=20=E6=9B=B4=E6=96=B0Hw=E8=B5=84?= =?UTF-8?q?=E6=96=99=E6=96=87=E4=BB=B6=E6=8E=A5=E5=8F=A3=E8=B7=AF=E5=BE=84?= =?UTF-8?q?=E5=B9=B6=E6=96=B0=E5=A2=9E=E5=AE=89=E5=85=A8=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=9C=B0=E5=9D=80=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将Hw资料文件相关接口的URL前缀从`/com.ruoyi.portal`统一调整为`/portal`,同时新增获取安全文件地址的功能,支持通过密钥验证后获取文件访问地址。 该功能包括前端API调用、后端控制器接口及服务层实现,并引入了相应的请求参数封装类。 --- .../controller/HwWebDocumentController.java | 31 +++++++++++++++---- .../portal/domain/SecureDocumentRequest.java | 9 ++++++ .../portal/service/IHwWebDocumentService.java | 10 ++++++ .../impl/HwWebDocumentServiceImpl.java | 18 +++++++++++ .../HwWebDocumentMapper.xml | 0 ruoyi-ui/src/api/portal/hwWebDocument.js | 19 +++++++++--- 6 files changed, 76 insertions(+), 11 deletions(-) create mode 100644 ruoyi-modules/hw-portal/src/main/java/com/ruoyi/portal/domain/SecureDocumentRequest.java rename ruoyi-modules/hw-portal/src/main/resources/mapper/{com.ruoyi.portal => portal}/HwWebDocumentMapper.xml (100%) diff --git a/ruoyi-modules/hw-portal/src/main/java/com/ruoyi/portal/controller/HwWebDocumentController.java b/ruoyi-modules/hw-portal/src/main/java/com/ruoyi/portal/controller/HwWebDocumentController.java index e7e6f7b..7e9ba60 100644 --- a/ruoyi-modules/hw-portal/src/main/java/com/ruoyi/portal/controller/HwWebDocumentController.java +++ b/ruoyi-modules/hw-portal/src/main/java/com/ruoyi/portal/controller/HwWebDocumentController.java @@ -3,6 +3,8 @@ package com.ruoyi.portal.controller; import java.util.List; import java.io.IOException; import javax.servlet.http.HttpServletResponse; + +import com.ruoyi.portal.domain.SecureDocumentRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -38,7 +40,7 @@ public class HwWebDocumentController extends BaseController /** * 查询Hw资料文件列表 */ - @RequiresPermissions("com.ruoyi.portal:hwWebDocument:list") + @RequiresPermissions("portal:hwWebDocument:list") @GetMapping("/list") public TableDataInfo list(HwWebDocument hwWebDocument) { @@ -50,7 +52,7 @@ public class HwWebDocumentController extends BaseController /** * 导出Hw资料文件列表 */ - @RequiresPermissions("com.ruoyi.portal:hwWebDocument:export") + @RequiresPermissions("portal:hwWebDocument:export") @Log(title = "Hw资料文件", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, HwWebDocument hwWebDocument) @@ -63,7 +65,7 @@ public class HwWebDocumentController extends BaseController /** * 获取Hw资料文件详细信息 */ - @RequiresPermissions("com.ruoyi.portal:hwWebDocument:query") + @RequiresPermissions("portal:hwWebDocument:query") @GetMapping(value = "/{documentId}") public AjaxResult getInfo(@PathVariable("documentId") Long documentId) { @@ -73,7 +75,7 @@ public class HwWebDocumentController extends BaseController /** * 新增Hw资料文件 */ - @RequiresPermissions("com.ruoyi.portal:hwWebDocument:add") + @RequiresPermissions("portal:hwWebDocument:add") @Log(title = "Hw资料文件", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody HwWebDocument hwWebDocument) @@ -84,7 +86,7 @@ public class HwWebDocumentController extends BaseController /** * 修改Hw资料文件 */ - @RequiresPermissions("com.ruoyi.portal:hwWebDocument:edit") + @RequiresPermissions("portal:hwWebDocument:edit") @Log(title = "Hw资料文件", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody HwWebDocument hwWebDocument) @@ -95,11 +97,28 @@ public class HwWebDocumentController extends BaseController /** * 删除Hw资料文件 */ - @RequiresPermissions("com.ruoyi.portal:hwWebDocument:remove") + @RequiresPermissions("portal:hwWebDocument:remove") @Log(title = "Hw资料文件", businessType = BusinessType.DELETE) @DeleteMapping("/{documentIds}") public AjaxResult remove(@PathVariable Long[] documentIds) { return toAjax(hwWebDocumentService.deleteHwWebDocumentByDocumentIds(documentIds)); } + + /** + * 获取安全文件地址 + */ + @RequiresPermissions("portal:hwWebDocument:query") + @Log(title = "获取安全文件地址", businessType = BusinessType.OTHER) + @PostMapping("/getSecureDocumentAddress") + public AjaxResult getSecureDocumentAddress(@RequestBody SecureDocumentRequest request) + { + try { + String address = hwWebDocumentService.verifyAndGetDocumentAddress(request.getDocumentId(), request.getProvidedKey()); + return success(address); + } catch (Exception e) { + return error(e.getMessage()); + } + } + } diff --git a/ruoyi-modules/hw-portal/src/main/java/com/ruoyi/portal/domain/SecureDocumentRequest.java b/ruoyi-modules/hw-portal/src/main/java/com/ruoyi/portal/domain/SecureDocumentRequest.java new file mode 100644 index 0000000..b9a3a4c --- /dev/null +++ b/ruoyi-modules/hw-portal/src/main/java/com/ruoyi/portal/domain/SecureDocumentRequest.java @@ -0,0 +1,9 @@ +package com.ruoyi.portal.domain; + +import lombok.Data; + +@Data +public class SecureDocumentRequest { + private Long documentId; + private String providedKey; +} \ No newline at end of file diff --git a/ruoyi-modules/hw-portal/src/main/java/com/ruoyi/portal/service/IHwWebDocumentService.java b/ruoyi-modules/hw-portal/src/main/java/com/ruoyi/portal/service/IHwWebDocumentService.java index 86bd2e7..aa4b44b 100644 --- a/ruoyi-modules/hw-portal/src/main/java/com/ruoyi/portal/service/IHwWebDocumentService.java +++ b/ruoyi-modules/hw-portal/src/main/java/com/ruoyi/portal/service/IHwWebDocumentService.java @@ -58,4 +58,14 @@ public interface IHwWebDocumentService * @return 结果 */ public int deleteHwWebDocumentByDocumentId(Long documentId); + + /** + * 验证密钥并获取文件地址 + * @param documentId 文件ID + * @param providedKey 提供的密钥 + * @return 文件地址 + * @throws Exception 如果密钥不匹配 + */ + String verifyAndGetDocumentAddress(Long documentId, String providedKey) throws Exception; + } diff --git a/ruoyi-modules/hw-portal/src/main/java/com/ruoyi/portal/service/impl/HwWebDocumentServiceImpl.java b/ruoyi-modules/hw-portal/src/main/java/com/ruoyi/portal/service/impl/HwWebDocumentServiceImpl.java index f75ff0e..4fad635 100644 --- a/ruoyi-modules/hw-portal/src/main/java/com/ruoyi/portal/service/impl/HwWebDocumentServiceImpl.java +++ b/ruoyi-modules/hw-portal/src/main/java/com/ruoyi/portal/service/impl/HwWebDocumentServiceImpl.java @@ -1,6 +1,8 @@ package com.ruoyi.portal.service.impl; import java.util.List; + +import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -92,4 +94,20 @@ public class HwWebDocumentServiceImpl implements IHwWebDocumentService { return hwWebDocumentMapper.deleteHwWebDocumentByDocumentId(documentId); } + + @Override + public String verifyAndGetDocumentAddress(Long documentId, String providedKey) throws Exception { + HwWebDocument document = selectHwWebDocumentByDocumentId(documentId); + if (document == null) { + throw new ServiceException("文件不存在"); + } + String secretKey = document.getSecretKey(); + if (secretKey == null || secretKey.equals(providedKey)) { + return document.getDocumentAddress(); + } else { + throw new ServiceException("密钥错误"); + } + } + + } diff --git a/ruoyi-modules/hw-portal/src/main/resources/mapper/com.ruoyi.portal/HwWebDocumentMapper.xml b/ruoyi-modules/hw-portal/src/main/resources/mapper/portal/HwWebDocumentMapper.xml similarity index 100% rename from ruoyi-modules/hw-portal/src/main/resources/mapper/com.ruoyi.portal/HwWebDocumentMapper.xml rename to ruoyi-modules/hw-portal/src/main/resources/mapper/portal/HwWebDocumentMapper.xml diff --git a/ruoyi-ui/src/api/portal/hwWebDocument.js b/ruoyi-ui/src/api/portal/hwWebDocument.js index b86e648..7171c4f 100644 --- a/ruoyi-ui/src/api/portal/hwWebDocument.js +++ b/ruoyi-ui/src/api/portal/hwWebDocument.js @@ -3,7 +3,7 @@ import request from '@/utils/request' // 查询Hw资料文件列表 export function listHwWebDocument(query) { return request({ - url: '/com.ruoyi.portal/hwWebDocument/list', + url: '/portal/hwWebDocument/list', method: 'get', params: query }) @@ -12,7 +12,7 @@ export function listHwWebDocument(query) { // 查询Hw资料文件详细 export function getHwWebDocument(documentId) { return request({ - url: '/com.ruoyi.portal/hwWebDocument/' + documentId, + url: '/portal/hwWebDocument/' + documentId, method: 'get' }) } @@ -20,7 +20,7 @@ export function getHwWebDocument(documentId) { // 新增Hw资料文件 export function addHwWebDocument(data) { return request({ - url: '/com.ruoyi.portal/hwWebDocument', + url: '/portal/hwWebDocument', method: 'post', data: data }) @@ -29,7 +29,7 @@ export function addHwWebDocument(data) { // 修改Hw资料文件 export function updateHwWebDocument(data) { return request({ - url: '/com.ruoyi.portal/hwWebDocument', + url: '/portal/hwWebDocument', method: 'put', data: data }) @@ -38,7 +38,16 @@ export function updateHwWebDocument(data) { // 删除Hw资料文件 export function delHwWebDocument(documentId) { return request({ - url: '/com.ruoyi.portal/hwWebDocument/' + documentId, + url: '/portal/hwWebDocument/' + documentId, method: 'delete' }) } + +// 获取安全文件地址 +export function getSecureDocumentAddress(data) { + return request({ + url: '/portal/hwWebDocument/getSecureDocumentAddress', + method: 'post', + data: data + }) +}