feat(portal): 更新Hw资料文件接口路径并新增安全文件地址功能

将Hw资料文件相关接口的URL前缀从`/com.ruoyi.portal`统一调整为`/portal`,同时新增获取安全文件地址的功能,支持通过密钥验证后获取文件访问地址。
该功能包括前端API调用、后端控制器接口及服务层实现,并引入了相应的请求参数封装类。
master
zangch@mesnac.com 3 months ago
parent 8003a57595
commit d74244903f

@ -3,6 +3,8 @@ package com.ruoyi.portal.controller;
import java.util.List; import java.util.List;
import java.io.IOException; import java.io.IOException;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.ruoyi.portal.domain.SecureDocumentRequest;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
@ -38,7 +40,7 @@ public class HwWebDocumentController extends BaseController
/** /**
* Hw * Hw
*/ */
@RequiresPermissions("com.ruoyi.portal:hwWebDocument:list") @RequiresPermissions("portal:hwWebDocument:list")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo list(HwWebDocument hwWebDocument) public TableDataInfo list(HwWebDocument hwWebDocument)
{ {
@ -50,7 +52,7 @@ public class HwWebDocumentController extends BaseController
/** /**
* Hw * Hw
*/ */
@RequiresPermissions("com.ruoyi.portal:hwWebDocument:export") @RequiresPermissions("portal:hwWebDocument:export")
@Log(title = "Hw资料文件", businessType = BusinessType.EXPORT) @Log(title = "Hw资料文件", businessType = BusinessType.EXPORT)
@PostMapping("/export") @PostMapping("/export")
public void export(HttpServletResponse response, HwWebDocument hwWebDocument) public void export(HttpServletResponse response, HwWebDocument hwWebDocument)
@ -63,7 +65,7 @@ public class HwWebDocumentController extends BaseController
/** /**
* Hw * Hw
*/ */
@RequiresPermissions("com.ruoyi.portal:hwWebDocument:query") @RequiresPermissions("portal:hwWebDocument:query")
@GetMapping(value = "/{documentId}") @GetMapping(value = "/{documentId}")
public AjaxResult getInfo(@PathVariable("documentId") Long documentId) public AjaxResult getInfo(@PathVariable("documentId") Long documentId)
{ {
@ -73,7 +75,7 @@ public class HwWebDocumentController extends BaseController
/** /**
* Hw * Hw
*/ */
@RequiresPermissions("com.ruoyi.portal:hwWebDocument:add") @RequiresPermissions("portal:hwWebDocument:add")
@Log(title = "Hw资料文件", businessType = BusinessType.INSERT) @Log(title = "Hw资料文件", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
public AjaxResult add(@RequestBody HwWebDocument hwWebDocument) public AjaxResult add(@RequestBody HwWebDocument hwWebDocument)
@ -84,7 +86,7 @@ public class HwWebDocumentController extends BaseController
/** /**
* Hw * Hw
*/ */
@RequiresPermissions("com.ruoyi.portal:hwWebDocument:edit") @RequiresPermissions("portal:hwWebDocument:edit")
@Log(title = "Hw资料文件", businessType = BusinessType.UPDATE) @Log(title = "Hw资料文件", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping
public AjaxResult edit(@RequestBody HwWebDocument hwWebDocument) public AjaxResult edit(@RequestBody HwWebDocument hwWebDocument)
@ -95,11 +97,28 @@ public class HwWebDocumentController extends BaseController
/** /**
* Hw * Hw
*/ */
@RequiresPermissions("com.ruoyi.portal:hwWebDocument:remove") @RequiresPermissions("portal:hwWebDocument:remove")
@Log(title = "Hw资料文件", businessType = BusinessType.DELETE) @Log(title = "Hw资料文件", businessType = BusinessType.DELETE)
@DeleteMapping("/{documentIds}") @DeleteMapping("/{documentIds}")
public AjaxResult remove(@PathVariable Long[] documentIds) public AjaxResult remove(@PathVariable Long[] documentIds)
{ {
return toAjax(hwWebDocumentService.deleteHwWebDocumentByDocumentIds(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());
}
}
} }

@ -0,0 +1,9 @@
package com.ruoyi.portal.domain;
import lombok.Data;
@Data
public class SecureDocumentRequest {
private Long documentId;
private String providedKey;
}

@ -58,4 +58,14 @@ public interface IHwWebDocumentService
* @return * @return
*/ */
public int deleteHwWebDocumentByDocumentId(Long documentId); public int deleteHwWebDocumentByDocumentId(Long documentId);
/**
*
* @param documentId ID
* @param providedKey
* @return
* @throws Exception
*/
String verifyAndGetDocumentAddress(Long documentId, String providedKey) throws Exception;
} }

@ -1,6 +1,8 @@
package com.ruoyi.portal.service.impl; package com.ruoyi.portal.service.impl;
import java.util.List; import java.util.List;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -92,4 +94,20 @@ public class HwWebDocumentServiceImpl implements IHwWebDocumentService
{ {
return hwWebDocumentMapper.deleteHwWebDocumentByDocumentId(documentId); 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("密钥错误");
}
}
} }

@ -3,7 +3,7 @@ import request from '@/utils/request'
// 查询Hw资料文件列表 // 查询Hw资料文件列表
export function listHwWebDocument(query) { export function listHwWebDocument(query) {
return request({ return request({
url: '/com.ruoyi.portal/hwWebDocument/list', url: '/portal/hwWebDocument/list',
method: 'get', method: 'get',
params: query params: query
}) })
@ -12,7 +12,7 @@ export function listHwWebDocument(query) {
// 查询Hw资料文件详细 // 查询Hw资料文件详细
export function getHwWebDocument(documentId) { export function getHwWebDocument(documentId) {
return request({ return request({
url: '/com.ruoyi.portal/hwWebDocument/' + documentId, url: '/portal/hwWebDocument/' + documentId,
method: 'get' method: 'get'
}) })
} }
@ -20,7 +20,7 @@ export function getHwWebDocument(documentId) {
// 新增Hw资料文件 // 新增Hw资料文件
export function addHwWebDocument(data) { export function addHwWebDocument(data) {
return request({ return request({
url: '/com.ruoyi.portal/hwWebDocument', url: '/portal/hwWebDocument',
method: 'post', method: 'post',
data: data data: data
}) })
@ -29,7 +29,7 @@ export function addHwWebDocument(data) {
// 修改Hw资料文件 // 修改Hw资料文件
export function updateHwWebDocument(data) { export function updateHwWebDocument(data) {
return request({ return request({
url: '/com.ruoyi.portal/hwWebDocument', url: '/portal/hwWebDocument',
method: 'put', method: 'put',
data: data data: data
}) })
@ -38,7 +38,16 @@ export function updateHwWebDocument(data) {
// 删除Hw资料文件 // 删除Hw资料文件
export function delHwWebDocument(documentId) { export function delHwWebDocument(documentId) {
return request({ return request({
url: '/com.ruoyi.portal/hwWebDocument/' + documentId, url: '/portal/hwWebDocument/' + documentId,
method: 'delete' method: 'delete'
}) })
} }
// 获取安全文件地址
export function getSecureDocumentAddress(data) {
return request({
url: '/portal/hwWebDocument/getSecureDocumentAddress',
method: 'post',
data: data
})
}

Loading…
Cancel
Save