From 05b7fe5e3d6da51083e2ad753080e13c6bcab05f Mon Sep 17 00:00:00 2001 From: xiaoCJ <406612557@qq.com> Date: Mon, 15 Jul 2024 15:38:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=95=B0=E6=8D=AE=E9=9B=86AP?= =?UTF-8?q?I=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ResourceDataController.java | 120 ++++++++++++++++++ .../controller/api/ResourceDataApi.java | 92 +++++++++++++- .../mapper/SysResourceDataMapper.java | 4 +- 3 files changed, 214 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/sztzjy/resource_center/controller/ResourceDataController.java diff --git a/src/main/java/com/sztzjy/resource_center/controller/ResourceDataController.java b/src/main/java/com/sztzjy/resource_center/controller/ResourceDataController.java new file mode 100644 index 0000000..bd61270 --- /dev/null +++ b/src/main/java/com/sztzjy/resource_center/controller/ResourceDataController.java @@ -0,0 +1,120 @@ +package com.sztzjy.resource_center.controller; + +import com.sztzjy.resource_center.annotation.AnonymousAccess; +import com.sztzjy.resource_center.entity.SysResourceData; +import com.sztzjy.resource_center.entity.SysResourceDataExample; +import com.sztzjy.resource_center.mapper.SysCaseQuestionMapper; +import com.sztzjy.resource_center.mapper.SysResourceDataMapper; +import com.sztzjy.resource_center.util.ResultEntity; +import com.sztzjy.resource_center.util.file.IFileUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.UUID; + +/** + * @Author xcj + * @Date 2024/7/15 + */ +@Api(tags = "数据集相关") +@RestController +@RequestMapping("api/sys/resourceData") +public class ResourceDataController { + @Autowired + private SysResourceDataMapper sysResourceDataMapper; + @Autowired + IFileUtil fileUtil; + + /** + * 数据集文件上传 + * 方法名:uploadResourceData + * 参数:MultipartFile schoolId caseId + * return: boolean + */ + @AnonymousAccess + @ApiOperation("数据集文件上传") + @PostMapping("uploadResourceData") //todo 管理员可以上传任意来源的案例题数据集 + private ResultEntity uploadResourceData(@RequestParam MultipartFile file, + @RequestParam String schoolId, + @RequestParam String caseId) { + try { + String uploadUrl = fileUtil.upload(file); + SysResourceData resourceData = new SysResourceData(); + resourceData.setResourceDataId(String.valueOf(UUID.randomUUID())); + resourceData.setResourceName(file.getOriginalFilename()); + resourceData.setSize((double) file.getSize()); + resourceData.setSource(schoolId); + resourceData.setCaseId(caseId); + resourceData.setUrl(uploadUrl); + sysResourceDataMapper.insert(resourceData); + return new ResultEntity<>(HttpStatus.OK, "上传成功!"); + } catch (Exception e) { + return new ResultEntity<>(HttpStatus.INTERNAL_SERVER_ERROR, "上传失败!请联系管理员"); + } + } + + /** + * 数据集列表信息查询 + * 方法名:selectResourceDataList + * 参数:caseId + * return: List + */ + @AnonymousAccess + @ApiOperation("数据集列表信息查询") + @PostMapping("selectResourceDataList") + private ResultEntity> selectResourceDataList(@RequestParam String caseId) { + SysResourceDataExample example = new SysResourceDataExample(); + example.createCriteria().andCaseIdEqualTo(caseId); + return new ResultEntity>(sysResourceDataMapper.selectByExample(example)); + } + + + /** + * 数据集删除 + * 方法名:deleteResourceData + * 参数:resourceId schoolId + * return: boolean + */ + @AnonymousAccess + @ApiOperation("数据集删除") + @PostMapping("deleteResourceData") + private ResultEntity deleteResourceData(@RequestParam String resourceId) { + try { + sysResourceDataMapper.deleteByPrimaryKey(resourceId); + } catch (Exception e) { + return new ResultEntity<>(HttpStatus.INTERNAL_SERVER_ERROR, "删除失败!"); + } + return new ResultEntity<>(HttpStatus.OK, "删除成功!"); + } + + + /** + * 数据集下载 + * 方法名:downloadResourceData + * 参数:resourceId response + * return: void + */ + @AnonymousAccess + @ApiOperation("数据集下载") + @PostMapping("downloadResourceData") + private Boolean selectResourceDataList(@RequestParam String resourceId, + HttpServletResponse response) { + try { + SysResourceData sysResourceData = sysResourceDataMapper.selectByPrimaryKey(resourceId); + String resourceName = sysResourceData.getResourceName(); + fileUtil.download(response, resourceName, sysResourceData.getUrl()); + } catch (Exception e) { + return false; + } + return true; + } +} diff --git a/src/main/java/com/sztzjy/resource_center/controller/api/ResourceDataApi.java b/src/main/java/com/sztzjy/resource_center/controller/api/ResourceDataApi.java index fd90111..beb957a 100644 --- a/src/main/java/com/sztzjy/resource_center/controller/api/ResourceDataApi.java +++ b/src/main/java/com/sztzjy/resource_center/controller/api/ResourceDataApi.java @@ -1,26 +1,88 @@ package com.sztzjy.resource_center.controller.api; +import com.sztzjy.resource_center.annotation.AnonymousAccess; +import com.sztzjy.resource_center.entity.SysCaseQuestion; +import com.sztzjy.resource_center.entity.SysResourceData; +import com.sztzjy.resource_center.entity.SysResourceDataExample; +import com.sztzjy.resource_center.mapper.SysCaseQuestionMapper; +import com.sztzjy.resource_center.mapper.SysResourceDataMapper; +import com.sztzjy.resource_center.util.file.IFileUtil; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.UUID; @RestController @Api(tags = "课程方面API") @RequestMapping("api/tea/ResourceApi") public class ResourceDataApi { + + @Autowired + private SysResourceDataMapper sysResourceDataMapper; + @Autowired + private SysCaseQuestionMapper caseQuestionMapper; + @Autowired + IFileUtil fileUtil; + @Value("${file.path}") + private String filePath; + + /** * 数据集文件上传 * 方法名:uploadResourceData * 参数:MultipartFile schoolId caseId * return: boolean */ + @AnonymousAccess + @ApiOperation("数据集文件上传") + @PostMapping("uploadResourceData") + private Boolean uploadResourceData(@RequestParam MultipartFile file, + @RequestParam String schoolId, + @RequestParam String caseId) { + SysCaseQuestion sysCaseQuestion = caseQuestionMapper.selectByPrimaryKey(caseId); + if (!schoolId.equals(sysCaseQuestion.getSource())) { + return false; + } + try { + String uploadUrl = fileUtil.upload(file); + SysResourceData resourceData = new SysResourceData(); + resourceData.setResourceDataId(String.valueOf(UUID.randomUUID())); + resourceData.setResourceName(file.getOriginalFilename()); + resourceData.setSize((double) file.getSize()); + resourceData.setSource(schoolId); + resourceData.setCaseId(caseId); + resourceData.setUrl(uploadUrl); + sysResourceDataMapper.insert(resourceData); + } catch (Exception e) { + return false; + } + return true; + } /** * 数据集列表信息查询 * 方法名:selectResourceDataList * 参数:caseId - * return: List + * return: List */ + @AnonymousAccess + @ApiOperation("数据集列表信息查询") + @PostMapping("selectResourceDataList") + private List selectResourceDataList(@RequestParam String caseId) { + SysResourceDataExample example = new SysResourceDataExample(); + example.createCriteria().andCaseIdEqualTo(caseId); + return sysResourceDataMapper.selectByExample(example); + } + /** * 数据集删除 @@ -28,6 +90,20 @@ public class ResourceDataApi { * 参数:resourceId schoolId * return: boolean */ + @AnonymousAccess + @ApiOperation("数据集删除") + @PostMapping("deleteResourceData") + private Boolean deleteResourceData(@RequestParam String resourceId, + @RequestParam String schoolId) { + SysResourceData sysResourceData = sysResourceDataMapper.selectByPrimaryKey(resourceId); + if (!sysResourceData.getSource().equals(schoolId)) { + return false; + } else { + sysResourceDataMapper.deleteByPrimaryKey(resourceId); + return true; + } + } + /** * 数据集下载 @@ -35,4 +111,18 @@ public class ResourceDataApi { * 参数:resourceId response * return: void */ + @AnonymousAccess + @ApiOperation("数据集下载") + @PostMapping("downloadResourceData") + private Boolean selectResourceDataList(@RequestParam String resourceId, + HttpServletResponse response) { + try { + SysResourceData sysResourceData = sysResourceDataMapper.selectByPrimaryKey(resourceId); + String resourceName = sysResourceData.getResourceName(); + fileUtil.download(response,resourceName ,sysResourceData.getUrl()); + } catch (Exception e) { + return false; + } + return true; + } } diff --git a/src/main/java/com/sztzjy/resource_center/mapper/SysResourceDataMapper.java b/src/main/java/com/sztzjy/resource_center/mapper/SysResourceDataMapper.java index 72dc378..5f8129c 100644 --- a/src/main/java/com/sztzjy/resource_center/mapper/SysResourceDataMapper.java +++ b/src/main/java/com/sztzjy/resource_center/mapper/SysResourceDataMapper.java @@ -3,8 +3,10 @@ package com.sztzjy.resource_center.mapper; import com.sztzjy.resource_center.entity.SysResourceData; import com.sztzjy.resource_center.entity.SysResourceDataExample; import java.util.List; -import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +@Mapper public interface SysResourceDataMapper { long countByExample(SysResourceDataExample example);