新增数据集API接口

master
xiaoCJ 8 months ago
parent 218bfbc8d5
commit 05b7fe5e3d

@ -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<String> 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<SysResourceData>
*/
@AnonymousAccess
@ApiOperation("数据集列表信息查询")
@PostMapping("selectResourceDataList")
private ResultEntity<List<SysResourceData>> selectResourceDataList(@RequestParam String caseId) {
SysResourceDataExample example = new SysResourceDataExample();
example.createCriteria().andCaseIdEqualTo(caseId);
return new ResultEntity<List<SysResourceData>>(sysResourceDataMapper.selectByExample(example));
}
/**
*
* deleteResourceData
* resourceId schoolId
* return: boolean
*/
@AnonymousAccess
@ApiOperation("数据集删除")
@PostMapping("deleteResourceData")
private ResultEntity<String> 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;
}
}

@ -1,26 +1,88 @@
package com.sztzjy.resource_center.controller.api; 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.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.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; 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 @RestController
@Api(tags = "课程方面API") @Api(tags = "课程方面API")
@RequestMapping("api/tea/ResourceApi") @RequestMapping("api/tea/ResourceApi")
public class ResourceDataApi { public class ResourceDataApi {
@Autowired
private SysResourceDataMapper sysResourceDataMapper;
@Autowired
private SysCaseQuestionMapper caseQuestionMapper;
@Autowired
IFileUtil fileUtil;
@Value("${file.path}")
private String filePath;
/** /**
* *
* uploadResourceData * uploadResourceData
* MultipartFile schoolId caseId * MultipartFile schoolId caseId
* return: boolean * 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 * selectResourceDataList
* caseId * caseId
* return: List<SysResource> * return: List<SysResourceData>
*/ */
@AnonymousAccess
@ApiOperation("数据集列表信息查询")
@PostMapping("selectResourceDataList")
private List<SysResourceData> 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 * resourceId schoolId
* return: boolean * 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 * resourceId response
* return: void * 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;
}
} }

@ -3,8 +3,10 @@ package com.sztzjy.resource_center.mapper;
import com.sztzjy.resource_center.entity.SysResourceData; import com.sztzjy.resource_center.entity.SysResourceData;
import com.sztzjy.resource_center.entity.SysResourceDataExample; import com.sztzjy.resource_center.entity.SysResourceDataExample;
import java.util.List; 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 { public interface SysResourceDataMapper {
long countByExample(SysResourceDataExample example); long countByExample(SysResourceDataExample example);

Loading…
Cancel
Save