@t2652009480 8 months ago
commit 901b449bf8

@ -218,6 +218,12 @@
<artifactId>ip2region</artifactId> <artifactId>ip2region</artifactId>
<version>2.6.5</version> <version>2.6.5</version>
</dependency> </dependency>
<!-- Apache HttpMime -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.5.14</version>
</dependency>
</dependencies> </dependencies>
<build> <build>

@ -33,4 +33,7 @@ public class Constant {
// public static final String THEORY = "理论考试模块"; // public static final String THEORY = "理论考试模块";
// public static final String RESOURCE = "资源中心模块"; // public static final String RESOURCE = "资源中心模块";
public static final String JUPYTERHUB_API_URL = "http://120.78.220.29:8000/hub/api";
public static final String ADMIN_TOKEN = "170bed30b34242cfb3fda3171e1a111d"; // 替换为你的JupyterHub管理员API令牌
} }

@ -151,8 +151,9 @@ public class CaseController {
@ApiOperation("案例题编辑") @ApiOperation("案例题编辑")
@PostMapping("updateCase") @PostMapping("updateCase")
public ResultEntity<HttpStatus> updateCase(@RequestBody SysCaseQuestion sysCaseQuestion, public ResultEntity<HttpStatus> updateCase(@RequestBody SysCaseQuestion sysCaseQuestion,
@ApiParam("谁调的请求,传管理员/学校ID") @RequestParam String source) { @ApiParam("谁调的请求,传管理员/学校ID") @RequestParam String source,
List<SysTopicAndCourse> sysTopicAndCourses = getSysTopicAndCourses(sysCaseQuestion.getCaseId(), sysCaseQuestion.getOneId()); @ApiParam("修改前旧的oneId") @RequestParam String oldOneId) {
List<SysTopicAndCourse> sysTopicAndCourses = getSysTopicAndCourses(sysCaseQuestion.getCaseId(), oldOneId);
// if (!sysTopicAndCourses.isEmpty()) { // if (!sysTopicAndCourses.isEmpty()) {
// return new ResultEntity<>(HttpStatus.BAD_REQUEST, "该案例题正在被使用!"); // return new ResultEntity<>(HttpStatus.BAD_REQUEST, "该案例题正在被使用!");
// } else { // } else {
@ -160,6 +161,8 @@ public class CaseController {
if ("管理员".equals(source) || source.equals(sysCaseQuestion.getSource())) { if ("管理员".equals(source) || source.equals(sysCaseQuestion.getSource())) {
if (!sysTopicAndCourses.isEmpty()) { if (!sysTopicAndCourses.isEmpty()) {
SysTopicAndCourse sysTopicAndCourse = sysTopicAndCourses.get(0); SysTopicAndCourse sysTopicAndCourse = sysTopicAndCourses.get(0);
sysTopicAndCourse.setOneId(sysCaseQuestion.getOneId());
sysTopicAndCourse.setOneName(sysCaseQuestion.getOneName());
sysTopicAndCourse.setTwoId(sysCaseQuestion.getTwoId()); sysTopicAndCourse.setTwoId(sysCaseQuestion.getTwoId());
sysTopicAndCourse.setThreeId(sysCaseQuestion.getThreeId()); sysTopicAndCourse.setThreeId(sysCaseQuestion.getThreeId());
sysTopicAndCourse.setTwoName(sysCaseQuestion.getTwoName()); sysTopicAndCourse.setTwoName(sysCaseQuestion.getTwoName());

@ -55,19 +55,19 @@ public class CaseStepController {
@PostMapping("updateCase") @PostMapping("updateCase")
public ResultEntity<HttpStatus> updateCase(@RequestBody SysCaseQuestionStepWithBLOBs caseQuestionStepWithBLOBs, public ResultEntity<HttpStatus> updateCase(@RequestBody SysCaseQuestionStepWithBLOBs caseQuestionStepWithBLOBs,
@ApiParam("谁调的请求,传管理员/学校ID") @RequestParam String source) { @ApiParam("谁调的请求,传管理员/学校ID") @RequestParam String source) {
List<SysTopicAndCourse> sysTopicAndCourses = getSysTopicAndCourses(caseQuestionStepWithBLOBs.getCaseId()); // List<SysTopicAndCourse> sysTopicAndCourses = getSysTopicAndCourses(caseQuestionStepWithBLOBs.getCaseId());
// if (!sysTopicAndCourses.isEmpty()) { // if (!sysTopicAndCourses.isEmpty()) {
// return new ResultEntity<>(HttpStatus.BAD_REQUEST, "该案例题正在被使用!"); // return new ResultEntity<>(HttpStatus.BAD_REQUEST, "该案例题正在被使用!");
// } // }
// else { // else {
//todo 管理员任意修改,老师只能改自己的 //todo 管理员任意修改,老师只能改自己的
SysCaseQuestion sysCaseQuestion = sysCaseQuestionMapper.selectByPrimaryKey(caseQuestionStepWithBLOBs.getCaseId()); SysCaseQuestion sysCaseQuestion = sysCaseQuestionMapper.selectByPrimaryKey(caseQuestionStepWithBLOBs.getCaseId());
if ("管理员".equals(source) || source.equals(sysCaseQuestion.getSource())) { if ("管理员".equals(source) || source.equals(sysCaseQuestion.getSource())) {
caseQuestionStepMapper.updateByPrimaryKey(caseQuestionStepWithBLOBs); caseQuestionStepMapper.updateByPrimaryKeyWithBLOBs(caseQuestionStepWithBLOBs);
return new ResultEntity<>(HttpStatus.OK, "编辑成功!"); return new ResultEntity<>(HttpStatus.OK, "编辑成功!");
} else { } else {
return new ResultEntity<>(HttpStatus.BAD_REQUEST, "权限不足!"); return new ResultEntity<>(HttpStatus.BAD_REQUEST, "权限不足!");
} }
// } // }
} }
@ -77,19 +77,17 @@ public class CaseStepController {
@PostMapping("deleteCase") @PostMapping("deleteCase")
public ResultEntity<HttpStatus> deleteCase(@RequestBody SysCaseQuestionStepWithBLOBs sysCaseQuestionStep, public ResultEntity<HttpStatus> deleteCase(@RequestBody SysCaseQuestionStepWithBLOBs sysCaseQuestionStep,
@ApiParam("哪个用的掉的请求,传管理员/学校ID") @RequestParam String source) { @ApiParam("哪个用的掉的请求,传管理员/学校ID") @RequestParam String source) {
List<SysTopicAndCourse> sysTopicAndCourses = getSysTopicAndCourses(sysCaseQuestionStep.getCaseId()); // List<SysTopicAndCourse> sysTopicAndCourses = getSysTopicAndCourses(sysCaseQuestionStep.getCaseId());
if (!sysTopicAndCourses.isEmpty()) { // if (!sysTopicAndCourses.isEmpty()) {
return new ResultEntity<>(HttpStatus.BAD_REQUEST, "无法删除!该案例题正在被使用!"); // return new ResultEntity<>(HttpStatus.BAD_REQUEST, "无法删除!该案例题正在被使用!"); todo 暂时把判断去掉
} else { // }
//todo 管理员任意删除 老师只能删除自己上传的 //todo 管理员任意删除 老师只能删除自己上传的
SysCaseQuestion sysCaseQuestion = sysCaseQuestionMapper.selectByPrimaryKey(sysCaseQuestionStep.getCaseId()); SysCaseQuestion sysCaseQuestion = sysCaseQuestionMapper.selectByPrimaryKey(sysCaseQuestionStep.getCaseId());
if ("管理员".equals(source) || source.equals(sysCaseQuestion.getSource())) { if ("管理员".equals(source) || source.equals(sysCaseQuestion.getSource())) {
caseQuestionStepMapper.deleteByPrimaryKey(sysCaseQuestionStep.getCaseStepId()); caseQuestionStepMapper.deleteByPrimaryKey(sysCaseQuestionStep.getCaseStepId());
return new ResultEntity<>(HttpStatus.OK, "删除成功!"); return new ResultEntity<>(HttpStatus.OK, "删除成功!");
} else {
return new ResultEntity<>(HttpStatus.BAD_REQUEST, "权限不足!");
}
} }
return new ResultEntity<>(HttpStatus.BAD_REQUEST, "权限不足!");
} }
private List<SysTopicAndCourse> getSysTopicAndCourses(String caseId) { private List<SysTopicAndCourse> getSysTopicAndCourses(String caseId) {

@ -43,6 +43,12 @@ public class CourseTagManageController {
private SysTopicAndCourseMapper sysTopicAndCourseMapper; private SysTopicAndCourseMapper sysTopicAndCourseMapper;
@Autowired @Autowired
private SysResourceAndCourseMapper sysResourceAndCourseMapper; private SysResourceAndCourseMapper sysResourceAndCourseMapper;
@Autowired
private SysResourceMapper sysResourceMapper;
@Autowired
private SysCaseQuestionMapper sysCaseQuestionMapper;
@Autowired
private SysObjectiveQuestionsMapper sysObjectiveQuestionsMapper;
@AnonymousAccess @AnonymousAccess
@ -98,11 +104,11 @@ public class CourseTagManageController {
List<String> ids = sysResourceAndCourses.stream().map(SysResourceAndCourse::getId).collect(Collectors.toList()); List<String> ids = sysResourceAndCourses.stream().map(SysResourceAndCourse::getId).collect(Collectors.toList());
sysResourceAndCourseMapper.batchUpdateTwoName(ids, name); sysResourceAndCourseMapper.batchUpdateTwoName(ids, name);
SysTopicAndCourseExample example1 =new SysTopicAndCourseExample(); SysTopicAndCourseExample example1 = new SysTopicAndCourseExample();
example1.createCriteria().andTwoIdEqualTo(id); example1.createCriteria().andTwoIdEqualTo(id);
List<SysTopicAndCourse> sysTopicAndCourses = sysTopicAndCourseMapper.selectByExample(example1); List<SysTopicAndCourse> sysTopicAndCourses = sysTopicAndCourseMapper.selectByExample(example1);
List<String> collect = sysTopicAndCourses.stream().map(SysTopicAndCourse::getId).collect(Collectors.toList()); List<String> collect = sysTopicAndCourses.stream().map(SysTopicAndCourse::getId).collect(Collectors.toList());
sysTopicAndCourseMapper.batchUpdateTwoName(collect,name); sysTopicAndCourseMapper.batchUpdateTwoName(collect, name);
} else { } else {
SysThreeCatalog sysThreeCatalog = sysThreeCatalogMapper.selectByPrimaryKey(id); SysThreeCatalog sysThreeCatalog = sysThreeCatalogMapper.selectByPrimaryKey(id);
@ -115,11 +121,11 @@ public class CourseTagManageController {
List<String> ids = sysResourceAndCourses.stream().map(SysResourceAndCourse::getId).collect(Collectors.toList()); List<String> ids = sysResourceAndCourses.stream().map(SysResourceAndCourse::getId).collect(Collectors.toList());
sysResourceAndCourseMapper.batchUpdateThreeName(ids, name); sysResourceAndCourseMapper.batchUpdateThreeName(ids, name);
SysTopicAndCourseExample example1 =new SysTopicAndCourseExample(); SysTopicAndCourseExample example1 = new SysTopicAndCourseExample();
example1.createCriteria().andThreeIdEqualTo(id); example1.createCriteria().andThreeIdEqualTo(id);
List<SysTopicAndCourse> sysTopicAndCourses = sysTopicAndCourseMapper.selectByExample(example1); List<SysTopicAndCourse> sysTopicAndCourses = sysTopicAndCourseMapper.selectByExample(example1);
List<String> collect = sysTopicAndCourses.stream().map(SysTopicAndCourse::getId).collect(Collectors.toList()); List<String> collect = sysTopicAndCourses.stream().map(SysTopicAndCourse::getId).collect(Collectors.toList());
sysTopicAndCourseMapper.batchUpdateThreeName(collect,name); sysTopicAndCourseMapper.batchUpdateThreeName(collect, name);
} }
return new ResultEntity<>(HttpStatus.OK, "修改成功"); return new ResultEntity<>(HttpStatus.OK, "修改成功");
} }
@ -133,59 +139,87 @@ public class CourseTagManageController {
try { try {
if (type == 2) { if (type == 2) {
sysTwoCatalogMapper.deleteByPrimaryKey(id); sysTwoCatalogMapper.deleteByPrimaryKey(id);
//删除资源 //删除资源关系表
SysResourceAndCourseExample example1 = new SysResourceAndCourseExample(); SysResourceAndCourseExample example1 = new SysResourceAndCourseExample();
example1.createCriteria().andTwoIdEqualTo(id); example1.createCriteria().andTwoIdEqualTo(id);
List<SysResourceAndCourse> sysResourceAndCourses = sysResourceAndCourseMapper.selectByExample(example1);
List<String> resourceIds = sysResourceAndCourses.stream().map(SysResourceAndCourse::getResourceId).collect(Collectors.toList());
sysResourceAndCourseMapper.deleteByExample(example1); sysResourceAndCourseMapper.deleteByExample(example1);
//删除题目 //删除资源
if (!resourceIds.isEmpty()) {
SysResourceExample sysResourceExample = new SysResourceExample();
sysResourceExample.createCriteria().andResourceIdIn(resourceIds);
sysResourceMapper.deleteByExample(sysResourceExample);
}
//删除题目关系表
SysTopicAndCourseExample example = new SysTopicAndCourseExample(); SysTopicAndCourseExample example = new SysTopicAndCourseExample();
example.createCriteria().andTwoIdEqualTo(id); example.createCriteria().andTwoIdEqualTo(id);
List<SysTopicAndCourse> topicAndCourseList = sysTopicAndCourseMapper.selectByExample(example);
List<String> topicIds = topicAndCourseList.stream().map(SysTopicAndCourse::getTopicId).collect(Collectors.toList());
sysTopicAndCourseMapper.deleteByExample(example); sysTopicAndCourseMapper.deleteByExample(example);
//删除案例题
if (!topicIds.isEmpty()) {
SysCaseQuestionExample sysCaseQuestionExample = new SysCaseQuestionExample();
sysCaseQuestionExample.createCriteria().andCaseIdIn(topicIds);
sysCaseQuestionMapper.deleteByExample(sysCaseQuestionExample);
//删除客观题
SysObjectiveQuestionsExample sysObjectiveQuestionsExample = new SysObjectiveQuestionsExample();
sysObjectiveQuestionsExample.createCriteria().andObjectiveIdIn(topicIds);
sysObjectiveQuestionsMapper.deleteByExample(sysObjectiveQuestionsExample);
}
} else { } else {
sysThreeCatalogMapper.deleteByPrimaryKey(id); sysThreeCatalogMapper.deleteByPrimaryKey(id);
//删除资源关系表
SysResourceAndCourseExample sysResourceAndCourseExample = new SysResourceAndCourseExample();
sysResourceAndCourseExample.createCriteria().andThreeIdEqualTo(id);
List<SysResourceAndCourse> sysResourceAndCourses = sysResourceAndCourseMapper.selectByExample(sysResourceAndCourseExample);
List<String> resourceIds = sysResourceAndCourses.stream().map(SysResourceAndCourse::getResourceId).collect(Collectors.toList());
sysResourceAndCourseMapper.deleteByExample(sysResourceAndCourseExample);
//删除资源 //删除资源
SysResourceAndCourseExample example1 = new SysResourceAndCourseExample(); if (!resourceIds.isEmpty()) {
example1.createCriteria().andThreeIdEqualTo(id); SysResourceExample sysResourceExample = new SysResourceExample();
sysResourceAndCourseMapper.deleteByExample(example1); sysResourceExample.createCriteria().andResourceIdIn(resourceIds);
sysResourceMapper.deleteByExample(sysResourceExample);
}
//删除题目 //删除题目关系表
SysTopicAndCourseExample example = new SysTopicAndCourseExample(); SysTopicAndCourseExample sysTopicAndCourseExample = new SysTopicAndCourseExample();
example.createCriteria().andThreeIdEqualTo(id); sysTopicAndCourseExample.createCriteria().andThreeIdEqualTo(id);
sysTopicAndCourseMapper.deleteByExample(example);
sysThreeCatalogMapper.deleteByPrimaryKey(id); List<SysTopicAndCourse> topicAndCourseList = sysTopicAndCourseMapper.selectByExample(sysTopicAndCourseExample);
List<String> topicIds = topicAndCourseList.stream().map(SysTopicAndCourse::getTopicId).collect(Collectors.toList());
sysTopicAndCourseMapper.deleteByExample(sysTopicAndCourseExample);
//删除案例题
if (!topicIds.isEmpty()) {
SysCaseQuestionExample sysCaseQuestionExample = new SysCaseQuestionExample();
sysCaseQuestionExample.createCriteria().andCaseIdIn(topicIds);
sysCaseQuestionMapper.deleteByExample(sysCaseQuestionExample);
//删除客观题
SysObjectiveQuestionsExample sysObjectiveQuestionsExample = new SysObjectiveQuestionsExample();
sysObjectiveQuestionsExample.createCriteria().andObjectiveIdIn(topicIds);
sysObjectiveQuestionsMapper.deleteByExample(sysObjectiveQuestionsExample);
}
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
return new ResultEntity<>(HttpStatus.INTERNAL_SERVER_ERROR,"删除失败,请联系管理员"); return new ResultEntity<>(HttpStatus.INTERNAL_SERVER_ERROR, "删除失败,请联系管理员");
} }
return new ResultEntity<>(HttpStatus.OK, "删除成功"); return new ResultEntity<>(HttpStatus.OK, "删除成功");
} }
// @AnonymousAccess
// @ApiOperation("排序")
// @PostMapping("setRank") //修改成LIST
// public ResultEntity<String> setRank(@ApiParam("一级传1/二级传2/三级传3") @RequestParam int type,
// @RequestParam String id,
// @RequestParam int rank) {
// if (type == 1) {
// SysOneCatalog sysOneCatalog = sysOneCatalogMapper.selectByPrimaryKey(id);
// sysOneCatalog.setSort(rank);
// sysOneCatalogMapper.updateByPrimaryKey(sysOneCatalog);
// return new ResultEntity<>(HttpStatus.OK, "排序成功");
// } else if (type == 2) {
// SysTwoCatalog sysTwoCatalog = sysTwoCatalogMapper.selectByPrimaryKey(id);
// sysTwoCatalog.setSort(rank);
// sysTwoCatalogMapper.updateByPrimaryKey(sysTwoCatalog);
// return new ResultEntity<>(HttpStatus.OK, "排序成功");
// } else {
// SysThreeCatalog sysThreeCatalog = sysThreeCatalogMapper.selectByPrimaryKey(id);
// sysThreeCatalog.setSort(rank);
// sysThreeCatalogMapper.updateByPrimaryKey(sysThreeCatalog);
// return new ResultEntity<>(HttpStatus.OK, "排序成功");
// }
// }
@AnonymousAccess @AnonymousAccess
@ApiOperation("一级目录重新排序") @ApiOperation("一级目录重新排序")

@ -234,7 +234,7 @@ public class TopicResourceController {
SysObjectiveQuestions newData = new SysObjectiveQuestions(); SysObjectiveQuestions newData = new SysObjectiveQuestions();
BeanUtils.copyProperties(dto, newData); BeanUtils.copyProperties(dto, newData);
sysObjectiveQuestionMapper.updateByPrimaryKey(newData); sysObjectiveQuestionMapper.updateByPrimaryKey(newData);
return new ResultEntity<>(HttpStatus.BAD_REQUEST, "编辑完成!"); return new ResultEntity<>(HttpStatus.OK, "编辑完成!");
} }
@AnonymousAccess @AnonymousAccess

@ -293,6 +293,7 @@ public class CaseApi {
SysCaseQuestionExample example1 = new SysCaseQuestionExample(); SysCaseQuestionExample example1 = new SysCaseQuestionExample();
example1.createCriteria().andCaseIdIn(collect).andSourceEqualTo("管理员"); example1.createCriteria().andCaseIdIn(collect).andSourceEqualTo("管理员");
example1.setOrderByClause("create_time");
List<SysCaseQuestion> list = caseQuestionMapper.selectByExampleWithBLOBs(example1); List<SysCaseQuestion> list = caseQuestionMapper.selectByExampleWithBLOBs(example1);
return list; return list;
} }
@ -307,12 +308,8 @@ public class CaseApi {
@PostMapping("selectCaseStepListBatchByIdListAndSort") @PostMapping("selectCaseStepListBatchByIdListAndSort")
@ApiOperation("查询案例题步骤并排序") @ApiOperation("查询案例题步骤并排序")
@AnonymousAccess @AnonymousAccess
public List<SysCaseQuestionStepWithBLOBs> selectCaseStepListBatchByIdListAndSort(@RequestBody List<String> caseIdList) { public List<SysCaseQuestionStepWithBLOBs> selectCaseStepListBatchByIdListAndSort(@RequestParam String threeId) {
SysCaseQuestionStepExample example = new SysCaseQuestionStepExample(); return caseQuestionStepMapper.selectCaseStepListBatchByIdListAndSort(threeId);
example.createCriteria().andCaseIdIn(caseIdList);
example.setOrderByClause("sort");
List<SysCaseQuestionStepWithBLOBs> sysCaseQuestionStepWithBLOBs = caseQuestionStepMapper.selectByExampleWithBLOBs(example);
return sysCaseQuestionStepWithBLOBs;
} }

@ -123,15 +123,40 @@ public class CourseApi {
return false; return false;
} }
twoCatalogMapper.deleteByPrimaryKey(twoId); twoCatalogMapper.deleteByPrimaryKey(twoId);
//删除资源 //删除资源关系表
SysResourceAndCourseExample example1 = new SysResourceAndCourseExample(); SysResourceAndCourseExample example1 = new SysResourceAndCourseExample();
example1.createCriteria().andTwoIdEqualTo(twoId); example1.createCriteria().andTwoIdEqualTo(twoId);
List<SysResourceAndCourse> sysResourceAndCourses = sysResourceAndCourseMapper.selectByExample(example1);
List<String> resourceIds = sysResourceAndCourses.stream().map(SysResourceAndCourse::getResourceId).collect(Collectors.toList());
sysResourceAndCourseMapper.deleteByExample(example1); sysResourceAndCourseMapper.deleteByExample(example1);
//删除题目 //删除资源
if (!resourceIds.isEmpty()) {
SysResourceExample sysResourceExample = new SysResourceExample();
sysResourceExample.createCriteria().andResourceIdIn(resourceIds);
sysResourceMapper.deleteByExample(sysResourceExample);
}
//删除题目关系表
SysTopicAndCourseExample example = new SysTopicAndCourseExample(); SysTopicAndCourseExample example = new SysTopicAndCourseExample();
example.createCriteria().andTwoIdEqualTo(twoId); example.createCriteria().andTwoIdEqualTo(twoId);
List<SysTopicAndCourse> topicAndCourseList = sysTopicAndCourseMapper.selectByExample(example);
List<String> topicIds = topicAndCourseList.stream().map(SysTopicAndCourse::getTopicId).collect(Collectors.toList());
sysTopicAndCourseMapper.deleteByExample(example); sysTopicAndCourseMapper.deleteByExample(example);
//删除案例题
if (!topicIds.isEmpty()) {
SysCaseQuestionExample sysCaseQuestionExample = new SysCaseQuestionExample();
sysCaseQuestionExample.createCriteria().andCaseIdIn(topicIds);
sysCaseQuestionMapper.deleteByExample(sysCaseQuestionExample);
//删除客观题
SysObjectiveQuestionsExample sysObjectiveQuestionsExample = new SysObjectiveQuestionsExample();
sysObjectiveQuestionsExample.createCriteria().andObjectiveIdIn(topicIds);
sysObjectiveQuestionsMapper.deleteByExample(sysObjectiveQuestionsExample);
}
return true; return true;
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();

@ -1,32 +1,24 @@
package com.sztzjy.resource_center.controller.api; package com.sztzjy.resource_center.controller.api;
import cn.hutool.core.util.CharsetUtil;
import com.sztzjy.resource_center.annotation.AnonymousAccess; import com.sztzjy.resource_center.annotation.AnonymousAccess;
import com.sztzjy.resource_center.entity.SysCaseQuestion; import com.sztzjy.resource_center.entity.SysCaseQuestion;
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 com.sztzjy.resource_center.mapper.SysCaseQuestionMapper; import com.sztzjy.resource_center.mapper.SysCaseQuestionMapper;
import com.sztzjy.resource_center.mapper.SysResourceDataMapper; import com.sztzjy.resource_center.mapper.SysResourceDataMapper;
import com.sztzjy.resource_center.util.CompressUtil;
import com.sztzjy.resource_center.util.file.IFileUtil; import com.sztzjy.resource_center.util.file.IFileUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.BufferedInputStream;
import java.io.File; import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;
import java.nio.file.Files;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.UUID; import java.util.UUID;
@RestController @RestController
@ -40,7 +32,8 @@ public class ResourceDataApi {
private SysCaseQuestionMapper caseQuestionMapper; private SysCaseQuestionMapper caseQuestionMapper;
@Autowired @Autowired
IFileUtil fileUtil; IFileUtil fileUtil;
@Value("${file.path}")
private String filePath;
/** /**
* *
@ -91,6 +84,8 @@ public class ResourceDataApi {
} }
/** /**
* *
* deleteResourceData * deleteResourceData
@ -120,14 +115,22 @@ public class ResourceDataApi {
*/ */
@AnonymousAccess @AnonymousAccess
@ApiOperation("数据集下载") @ApiOperation("数据集下载")
@GetMapping("downloadResourceData") @PostMapping("downloadResourceData")
private void selectResourceDataList(@RequestParam String resourceId, private void downloadResourceData(@RequestBody List<String> ids, HttpServletResponse response) {
HttpServletResponse response) { this.downloadFile(ids, response);
try { }
SysResourceData sysResourceData = sysResourceDataMapper.selectByPrimaryKey(resourceId);
String resourceName = sysResourceData.getResourceName();
fileUtil.download(response, resourceName, sysResourceData.getUrl()); public void downloadFile(List<String> ids, HttpServletResponse response) {
} catch (Exception e) { if (ids != null && !ids.isEmpty()) {
List<Map<String, String>> filePaths = sysResourceDataMapper.getByIds(ids);
String zipName = "TZ_" + ((int) (Math.random() * 10000)) + ".zip";
String zipPath = filePath + "/" + zipName;
CompressUtil.compress11(filePaths, zipPath, false);
File pocZipFile = new File(zipPath);
CompressUtil.downloadZip(response, zipName, pocZipFile);
pocZipFile.delete();
} }
} }
} }

@ -8,6 +8,7 @@ import com.nimbusds.jose.shaded.gson.JsonSyntaxException;
import com.sztzjy.resource_center.annotation.AnonymousAccess; import com.sztzjy.resource_center.annotation.AnonymousAccess;
import com.sztzjy.resource_center.entity.admin.*; import com.sztzjy.resource_center.entity.admin.*;
import com.sztzjy.resource_center.mapper.admin.AdminCaseMapper; import com.sztzjy.resource_center.mapper.admin.AdminCaseMapper;
import com.sztzjy.resource_center.mapper.admin.AdminCollectCaseMapper;
import com.sztzjy.resource_center.mapper.admin.AdminDataLabelMapper; import com.sztzjy.resource_center.mapper.admin.AdminDataLabelMapper;
import com.sztzjy.resource_center.mapper.admin.AdminFileMapper; import com.sztzjy.resource_center.mapper.admin.AdminFileMapper;
import com.sztzjy.resource_center.util.PageUtil; import com.sztzjy.resource_center.util.PageUtil;
@ -47,6 +48,8 @@ public class AdminCaseController {
@Autowired @Autowired
private AdminFileMapper adminFileMapper; private AdminFileMapper adminFileMapper;
@Autowired @Autowired
private AdminCollectCaseMapper adminCollectCaseMapper;
@Autowired
private IFileUtil fileUtil; private IFileUtil fileUtil;
@Value("${file.path}") @Value("${file.path}")
private String filePath; private String filePath;
@ -325,25 +328,31 @@ public class AdminCaseController {
} }
@PostMapping("deleteCase") @PostMapping("deleteAdminCase")
@ApiOperation("删除案例题/管理员使用") @ApiOperation("案例集锦/删除")
private ResultEntity<String> deleteCase(@RequestParam String caseId) { @AnonymousAccess
private ResultEntity<HttpStatus> deleteAdminData(@RequestParam String caseId) {
try { try {
//删除案例绑定文件 //删除数据
AdminFileExample example = new AdminFileExample();
example.createCriteria().andDataCaseIdEqualTo(caseId);
adminFileMapper.deleteByExample(example);
//删除案例绑定标签
AdminDataLabelExample example1 = new AdminDataLabelExample();
example1.createCriteria().andDataCaseIdEqualTo(caseId);
adminDataLabelMapper.deleteByExample(example1);
adminCaseMapper.deleteByPrimaryKey(caseId); adminCaseMapper.deleteByPrimaryKey(caseId);
//删除标签绑定表
AdminDataLabelExample adminDataLabelExample = new AdminDataLabelExample();
adminDataLabelExample.createCriteria().andDataCaseIdEqualTo(caseId);
adminDataLabelMapper.deleteByExample(adminDataLabelExample);
AdminFileExample adminFileExample = new AdminFileExample();
adminFileExample.createCriteria().andDataCaseIdEqualTo(caseId);
adminFileMapper.deleteByExample(adminFileExample);
AdminCollectCaseExample adminCollectCaseExample = new AdminCollectCaseExample();
adminCollectCaseExample.createCriteria().andCaseIdEqualTo(caseId);
adminCollectCaseMapper.deleteByExample(adminCollectCaseExample);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
return new ResultEntity<>(HttpStatus.INTERNAL_SERVER_ERROR, "上传失败,请联系管理员!"); return new ResultEntity<>(HttpStatus.BAD_REQUEST, "删除失败,请联系管理员!");
} }
return new ResultEntity<>(HttpStatus.OK, "删除成功!"); return new ResultEntity<HttpStatus>(HttpStatus.OK, "删除成功!");
} }
} }

@ -1,12 +1,12 @@
package com.sztzjy.resource_center.controller.new_module.admin; package com.sztzjy.resource_center.controller.new_module.admin;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.nimbusds.jose.shaded.gson.Gson; import com.nimbusds.jose.shaded.gson.Gson;
import com.nimbusds.jose.shaded.gson.JsonSyntaxException; import com.nimbusds.jose.shaded.gson.JsonSyntaxException;
import com.sztzjy.resource_center.annotation.AnonymousAccess; import com.sztzjy.resource_center.annotation.AnonymousAccess;
import com.sztzjy.resource_center.entity.admin.*; import com.sztzjy.resource_center.entity.admin.*;
import com.sztzjy.resource_center.mapper.admin.AdminCollectDataMapper;
import com.sztzjy.resource_center.mapper.admin.AdminDataLabelMapper; import com.sztzjy.resource_center.mapper.admin.AdminDataLabelMapper;
import com.sztzjy.resource_center.mapper.admin.AdminDataMapper; import com.sztzjy.resource_center.mapper.admin.AdminDataMapper;
import com.sztzjy.resource_center.mapper.admin.AdminFileMapper; import com.sztzjy.resource_center.mapper.admin.AdminFileMapper;
@ -46,6 +46,9 @@ public class AdminDataController {
private AdminFileMapper adminFileMapper; private AdminFileMapper adminFileMapper;
@Autowired @Autowired
private AdminDataMapper adminDataMapper; private AdminDataMapper adminDataMapper;
@Autowired
private AdminCollectDataMapper adminCollectDataMapper;
@PostMapping("/add") @PostMapping("/add")
@ApiOperation("新增") @ApiOperation("新增")
@ -90,6 +93,8 @@ public class AdminDataController {
adminDataWithBLOBs.setName(adminDataDto.getName()); adminDataWithBLOBs.setName(adminDataDto.getName());
adminDataWithBLOBs.setDataScenarios(adminDataDto.getDataScenarios()); adminDataWithBLOBs.setDataScenarios(adminDataDto.getDataScenarios());
adminDataWithBLOBs.setFieldDescription(adminDataDto.getFieldDescription()); adminDataWithBLOBs.setFieldDescription(adminDataDto.getFieldDescription());
adminDataWithBLOBs.setDataScenariosOriginal(adminDataDto.getDataScenariosOriginal());
adminDataWithBLOBs.setFieldDescriptionOriginal(adminDataDto.getFieldDescriptionOriginal());
adminDataWithBLOBs.setStatus(0); //默认下架,发布后上架 adminDataWithBLOBs.setStatus(0); //默认下架,发布后上架
adminDataWithBLOBs.setCreateTime(new Date()); adminDataWithBLOBs.setCreateTime(new Date());
if (pictureFile != null) { if (pictureFile != null) {
@ -189,7 +194,9 @@ public class AdminDataController {
adminDataWithBLOBs.setDataId(adminDataDto.getDataId()); adminDataWithBLOBs.setDataId(adminDataDto.getDataId());
adminDataWithBLOBs.setName(adminDataDto.getName()); adminDataWithBLOBs.setName(adminDataDto.getName());
adminDataWithBLOBs.setDataScenarios(adminDataDto.getDataScenarios()); adminDataWithBLOBs.setDataScenarios(adminDataDto.getDataScenarios());
adminDataWithBLOBs.setDataScenariosOriginal(adminDataDto.getDataScenariosOriginal());
adminDataWithBLOBs.setFieldDescription(adminDataDto.getFieldDescription()); adminDataWithBLOBs.setFieldDescription(adminDataDto.getFieldDescription());
adminDataWithBLOBs.setFieldDescriptionOriginal(adminDataDto.getFieldDescriptionOriginal());
adminDataWithBLOBs.setStatus(adminDataDto.getStatus()); //默认下架,发布后上架 adminDataWithBLOBs.setStatus(adminDataDto.getStatus()); //默认下架,发布后上架
adminDataWithBLOBs.setCreateTime(adminDataDto.getCreateTime()); adminDataWithBLOBs.setCreateTime(adminDataDto.getCreateTime());
// 文件上传并行处理 // 文件上传并行处理
@ -269,4 +276,32 @@ public class AdminDataController {
} }
return new ResultEntity<HttpStatus>(HttpStatus.OK, "删除成功!"); return new ResultEntity<HttpStatus>(HttpStatus.OK, "删除成功!");
} }
@PostMapping("deleteAdminData")
@ApiOperation("数据仓库/删除")
@AnonymousAccess
private ResultEntity<HttpStatus> deleteAdminData(@RequestParam String dataId) {
try {
//删除数据
adminDataMapper.deleteByPrimaryKey(dataId);
//删除标签绑定表
AdminDataLabelExample adminDataLabelExample = new AdminDataLabelExample();
adminDataLabelExample.createCriteria().andDataCaseIdEqualTo(dataId);
adminDataLabelMapper.deleteByExample(adminDataLabelExample);
AdminFileExample adminFileExample = new AdminFileExample();
adminFileExample.createCriteria().andDataCaseIdEqualTo(dataId);
adminFileMapper.deleteByExample(adminFileExample);
AdminCollectDataExample adminCollectDataExample = new AdminCollectDataExample();
adminCollectDataExample.createCriteria().andDataIdEqualTo(dataId);
adminCollectDataMapper.deleteByExample(adminCollectDataExample);
} catch (Exception e) {
e.printStackTrace();
return new ResultEntity<>(HttpStatus.BAD_REQUEST, "删除失败,请联系管理员!");
}
return new ResultEntity<HttpStatus>(HttpStatus.OK, "删除成功!");
}
} }

@ -0,0 +1,243 @@
package com.sztzjy.resource_center.controller.new_module.stu;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.sztzjy.resource_center.annotation.AnonymousAccess;
import com.sztzjy.resource_center.config.Constant;
import com.sztzjy.resource_center.util.ResultEntity;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.entity.mime.content.ByteArrayBody;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Optional;
/**
* @author 17803
* @date 2024-07-30 15:23
*/
@Api(tags = "jupyterhub的Api接口")
@RequestMapping("api/jupyterhub")
@RestController
public class JupyterhubController {
@ApiOperation("创建容器")
@GetMapping("/jumpJupyerHub")
public ResultEntity jumpJupyerHub() throws IOException {
startServer("jupyterhub");
System.out.println("启动服务!");
String url = generateToken("jupyterhub");
return new ResultEntity<>(HttpStatus.OK,"容器创建成功!",url);
}
public static String generateToken(String username) throws IOException {
CloseableHttpClient client = HttpClients.createDefault();
HttpPost request = new HttpPost(Constant.JUPYTERHUB_API_URL + "/users/" + username + "/tokens");
request.addHeader("Authorization", "Bearer " + Constant.ADMIN_TOKEN);
request.addHeader("Content-Type", "application/json");
String json = "{\"note\": \"" + username + "\"}";
StringEntity entity = new StringEntity(json);
request.setEntity(entity);
HttpResponse response = client.execute(request);
HttpEntity responseEntity = response.getEntity();
String responseBody = EntityUtils.toString(responseEntity);
if (response.getStatusLine().getStatusCode() == 201) {
// 解析 JSON 响应体
JSONObject jsonObject = JSON.parseObject(responseBody);
// 提取生成的令牌
String token = jsonObject.getString("token");
System.out.println("Token : " + token);
String url = "http://jrdsj.sztzjy.com:8000/user/" + username + "/?token=" + token;
return url;
} else {
System.err.println("Failed to generate token. Status code: " + response.getStatusLine().getStatusCode());
System.err.println("Response: " + responseBody);
return null;
}
}
// 启动用户的 Jupyter 服务器
public static void startServer(String username) throws IOException {
// 启动服务器后将需要的文件复制到刚创建的容器内 模拟实现文件挂载
CloseableHttpClient client = HttpClients.createDefault();
HttpPost request = new HttpPost(Constant.JUPYTERHUB_API_URL + "/users/" + username + "/server");
request.addHeader("Authorization", "Bearer " + Constant.ADMIN_TOKEN);
request.addHeader("Content-Type", "application/json");
HttpResponse response = client.execute(request);
HttpEntity responseEntity = response.getEntity();
String responseBody = EntityUtils.toString(responseEntity);
if (response.getStatusLine().getStatusCode() == 200 || response.getStatusLine().getStatusCode() == 201) {
System.out.println("服务成功的启动: " + username);
client.close();
}
}
@ApiOperation("超管端或者教师端上传ipynb文件")
@PostMapping("/uploadFileByIpynb")
@AnonymousAccess
public ResponseEntity<String> uploadFileByIpynb(@RequestPart @ApiParam("文件") MultipartFile file, @ApiParam("案例名") String caseName) {
String url = "https://jrdsj.sztzjy.com:598/api/jupyterhub/uploadFileByIpynb";
try {
uploadFile(url, file, caseName);
return new ResponseEntity<>("上传成功", HttpStatus.OK);
} catch (IOException e) {
e.printStackTrace();
return new ResponseEntity<>("上传失败", HttpStatus.INTERNAL_SERVER_ERROR);
}
}
// public static void uploadFile(String url, MultipartFile file, String caseName) throws IOException {
// try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
// HttpPost uploadFile = new HttpPost(url);
//
// // Build the multipart entity
// MultipartEntityBuilder builder = MultipartEntityBuilder.create();
// builder.addPart("file", new ByteArrayBody(file.getBytes(), file.getOriginalFilename())); // Use ByteArrayBody for MultipartFile
// builder.addTextBody("caseName", caseName);
//
// HttpEntity entity = builder.build();
// uploadFile.setEntity(entity);
//
// // Execute the request
// try (CloseableHttpResponse response = httpClient.execute(uploadFile)) {
// HttpEntity responseEntity = response.getEntity();
// String responseString = EntityUtils.toString(responseEntity, "UTF-8");
// System.out.println("Response: " + responseString);
// }
// }
// }
public static void uploadFile(String url, MultipartFile file, String caseName) throws IOException {
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
HttpPost uploadFile = new HttpPost(url);
// Build the multipart entity
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
// Use ByteArrayBody with proper encoding for the file name
ByteArrayBody byteArrayBody = new ByteArrayBody(file.getBytes(), file.getOriginalFilename());
builder.addPart("file", byteArrayBody);
builder.addTextBody("caseName", caseName, ContentType.TEXT_PLAIN.withCharset("UTF-8"));
builder.setMode(HttpMultipartMode.RFC6532);//解决文件名乱码问题
HttpEntity entity = builder.build();
uploadFile.setEntity(entity);
// Execute the request
try (CloseableHttpResponse response = httpClient.execute(uploadFile)) {
HttpEntity responseEntity = response.getEntity();
// Convert response entity to String with UTF-8 encoding
String responseString = EntityUtils.toString(responseEntity, "UTF-8");
System.out.println("Response: " + responseString);
}
}
}
@ApiOperation("保存时候判断ipynb文件是否存在")
@GetMapping("/filesIfExist")
@AnonymousAccess
public ResultEntity filesIfExist(@ApiParam("参数为:案例名") String caseName) throws InterruptedException, IOException {
String url = "https://jrdsj.sztzjy.com:598/api/jupyterhub/uploadFileByIpynbExist?caseName=" + caseName;
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
HttpGet httpGet = new HttpGet(url);
// 执行 GET 请求
try (CloseableHttpResponse response = httpClient.execute(httpGet)) {
HttpEntity responseEntity = response.getEntity();
String responseString = EntityUtils.toString(responseEntity);
// 解析 JSON 响应
ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonResponse = objectMapper.readTree(responseString);
// 假设返回的 JSON 对象包含 "data" 字段
JsonNode dataNode = jsonResponse.get("data");
return new ResultEntity<>(HttpStatus.OK,dataNode != null && dataNode.asBoolean());
}
}
}
@ApiOperation("删除ipynb文件")
@GetMapping("/delUploadFileByIpynb")
@AnonymousAccess
public ResultEntity delUploadFileByIpynb(@ApiParam("参数为:案例名") String caseName) throws InterruptedException, IOException {
String url = "https://jrdsj.sztzjy.com:598/api/jupyterhub/delUploadFileByIpynb?caseName=" + caseName;
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
HttpGet httpGet = new HttpGet(url);
// 执行 GET 请求
try (CloseableHttpResponse response = httpClient.execute(httpGet)) {
HttpEntity responseEntity = response.getEntity();
String responseString = EntityUtils.toString(responseEntity);
// 解析 JSON 响应
ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonResponse = objectMapper.readTree(responseString);
// 假设返回的 JSON 对象包含 "data" 字段
JsonNode dataNode = jsonResponse.get("data");
return new ResultEntity<>(HttpStatus.OK,dataNode != null && dataNode.asBoolean());
}
}
}
}

@ -381,67 +381,33 @@ public class StuJupyterController {
//文件查询 ,判断有无文件 //文件查询 ,判断有无文件
@ApiOperation("文件上传") @ApiOperation("Html文件上传")
@PostMapping("/importIpynb") @PostMapping("/importHtml")
@AnonymousAccess @AnonymousAccess
public ResultEntity importIpynb(@ApiParam("案例名") String caseName,@RequestPart MultipartFile file ) { public ResultEntity importHtml(@ApiParam("案例名") String caseName,@RequestPart MultipartFile file) {
String originalFilename = file.getOriginalFilename(); String originalFilename = file.getOriginalFilename();
int i = originalFilename.lastIndexOf("."); int i = originalFilename.lastIndexOf(".");
String substring = originalFilename.substring(i); String substring = originalFilename.substring(i);
if ("html".equals(substring)|| "md".equals(substring)) if ("html".equals(substring)) {
{
// 上传到不同文件夹
if (!(caseName+".md").equals(file.getOriginalFilename()))
{
return new ResultEntity<>(HttpStatus.ACCEPTED,"请上传和案例名相同的文件!");
}
String upload = localFileUtil.uploadByRelativePath(file,"/usr/local/tianzeProject/jupyter/tch");
if (upload!=null) String htmlPath = "/usr/local/tianzeProject/jupyter/md/html";
{
return new ResultEntity<>(HttpStatus.OK,"上传成功!");
}else {
return new ResultEntity<>(HttpStatus.BAD_REQUEST,"上传失败!");
}
} String upload = localFileUtil.uploadByRelativePath(file, htmlPath,caseName);
if ("ipynb".equals(substring))
{
// 上传到不同文件夹
if (!(caseName+".ipynb").equals(file.getOriginalFilename()))
{
return new ResultEntity<>(HttpStatus.ACCEPTED,"请上传和案例名相同的文件!");
}
String upload = localFileUtil.uploadByRelativePath(file,"/usr/local/tianzeProject/jupyter/tch");
if (upload!=null) if (upload != null) {
{ return new ResultEntity<>(HttpStatus.OK, "上传成功!");
return new ResultEntity<>(HttpStatus.OK,"上传成功!"); } else {
}else { return new ResultEntity<>(HttpStatus.BAD_REQUEST, "上传失败!");
return new ResultEntity<>(HttpStatus.BAD_REQUEST,"上传失败!");
} }
} }
//转换出md文件
return new ResultEntity<>("上传成功!"); return new ResultEntity<>("上传成功!");
} }
// 导入ipynb文件 // 导入ipynb文件

@ -2,7 +2,6 @@ package com.sztzjy.resource_center.entity.admin;
import java.util.Date; import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
/** /**
* *

@ -31,12 +31,18 @@ public class AdminDataReturnDto {
@ApiModelProperty("数据应用场景") @ApiModelProperty("数据应用场景")
private String dataScenarios; private String dataScenarios;
@ApiModelProperty("数据应用场景原始数据")
private String dataScenariosOriginal;
@ApiModelProperty("收藏ID") @ApiModelProperty("收藏ID")
private String collectId; private String collectId;
@ApiModelProperty("字段描述") @ApiModelProperty("字段描述")
private String fieldDescription; private String fieldDescription;
@ApiModelProperty("字段描述原始数据")
private String fieldDescriptionOriginal;
@ApiModelProperty("创建时间") @ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date createTime; private Date createTime;

@ -1,5 +1,6 @@
package com.sztzjy.resource_center.entity.admin; package com.sztzjy.resource_center.entity.admin;
import com.sztzjy.resource_center.entity.admin.AdminData;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
/** /**
* *
@ -10,9 +11,15 @@ public class AdminDataWithBLOBs extends AdminData {
@ApiModelProperty("数据应用场景") @ApiModelProperty("数据应用场景")
private String dataScenarios; private String dataScenarios;
@ApiModelProperty("数据应用场景原始数据")
private String dataScenariosOriginal;
@ApiModelProperty("字段描述") @ApiModelProperty("字段描述")
private String fieldDescription; private String fieldDescription;
@ApiModelProperty("字段描述原始数据")
private String fieldDescriptionOriginal;
public String getDataScenarios() { public String getDataScenarios() {
return dataScenarios; return dataScenarios;
} }
@ -21,6 +28,14 @@ public class AdminDataWithBLOBs extends AdminData {
this.dataScenarios = dataScenarios == null ? null : dataScenarios.trim(); this.dataScenarios = dataScenarios == null ? null : dataScenarios.trim();
} }
public String getDataScenariosOriginal() {
return dataScenariosOriginal;
}
public void setDataScenariosOriginal(String dataScenariosOriginal) {
this.dataScenariosOriginal = dataScenariosOriginal == null ? null : dataScenariosOriginal.trim();
}
public String getFieldDescription() { public String getFieldDescription() {
return fieldDescription; return fieldDescription;
} }
@ -28,4 +43,12 @@ public class AdminDataWithBLOBs extends AdminData {
public void setFieldDescription(String fieldDescription) { public void setFieldDescription(String fieldDescription) {
this.fieldDescription = fieldDescription == null ? null : fieldDescription.trim(); this.fieldDescription = fieldDescription == null ? null : fieldDescription.trim();
} }
public String getFieldDescriptionOriginal() {
return fieldDescriptionOriginal;
}
public void setFieldDescriptionOriginal(String fieldDescriptionOriginal) {
this.fieldDescriptionOriginal = fieldDescriptionOriginal == null ? null : fieldDescriptionOriginal.trim();
}
} }

@ -45,4 +45,6 @@ public interface SysCaseQuestionStepMapper {
List<TrainingDto> selectTrainingByIds(@Param("list") List<String> caseStepIdList); List<TrainingDto> selectTrainingByIds(@Param("list") List<String> caseStepIdList);
List<SysCaseQuestionStepWithBLOBs> getCaseStepByIds(@Param("ids") List<String> ids); List<SysCaseQuestionStepWithBLOBs> getCaseStepByIds(@Param("ids") List<String> ids);
List<SysCaseQuestionStepWithBLOBs> selectCaseStepListBatchByIdListAndSort(@Param("threeId") String threeId);
} }

@ -3,6 +3,7 @@ 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 java.util.Map;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -29,4 +30,6 @@ public interface SysResourceDataMapper {
int updateByPrimaryKeySelective(SysResourceData record); int updateByPrimaryKeySelective(SysResourceData record);
int updateByPrimaryKey(SysResourceData record); int updateByPrimaryKey(SysResourceData record);
List<Map<String, String>> getByIds(@Param("ids") List<String> ids);
} }

@ -4,11 +4,10 @@ import com.sztzjy.resource_center.entity.admin.AdminData;
import com.sztzjy.resource_center.entity.admin.AdminDataExample; import com.sztzjy.resource_center.entity.admin.AdminDataExample;
import com.sztzjy.resource_center.entity.admin.AdminDataReturnDto; import com.sztzjy.resource_center.entity.admin.AdminDataReturnDto;
import com.sztzjy.resource_center.entity.admin.AdminDataWithBLOBs; import com.sztzjy.resource_center.entity.admin.AdminDataWithBLOBs;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper @Mapper
public interface AdminDataMapper { public interface AdminDataMapper {
long countByExample(AdminDataExample example); long countByExample(AdminDataExample example);

@ -48,7 +48,51 @@ public class CompressUtil {
if (keepDirStructure != null && keepDirStructure) { if (keepDirStructure != null && keepDirStructure) {
zos.putNextEntry(new ZipEntry(relativePath)); zos.putNextEntry(new ZipEntry(relativePath));
} else { } else {
zos.putNextEntry(new ZipEntry(i + "_" + relativeName)); zos.putNextEntry(new ZipEntry(relativeName));
}
int len;
while ((len = fis.read(buf)) > 0) {
zos.write(buf, 0, len);
}
zos.closeEntry();
// zos.close();
}
zos.close();
if (!zipFile.exists()) {
zipFile.createNewFile();
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* zip
* @param filePaths
* @param zipFilePath
* @param keepDirStructure
*/
public static void compress11(List<Map<String, String>> filePaths, String zipFilePath, Boolean keepDirStructure) {
byte[] buf = new byte[1024];
File zipFile = new File(zipFilePath);
try {
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFile));
for (int i = 0; i < filePaths.size(); i++) {
String relativeName = filePaths.get(i).get("resource_name");
String relativePath = filePath+filePaths.get(i).get("url");
if (StringUtils.isEmpty(relativePath)) {
continue;
}
File sourceFile = new File(relativePath);
if (sourceFile == null || !sourceFile.exists()) {
continue;
}
FileInputStream fis = new FileInputStream(sourceFile);
if (keepDirStructure != null && keepDirStructure) {
zos.putNextEntry(new ZipEntry(relativePath));
} else {
zos.putNextEntry(new ZipEntry(relativeName));
} }
int len; int len;
while ((len = fis.read(buf)) > 0) { while ((len = fis.read(buf)) > 0) {

@ -84,6 +84,6 @@ public interface IFileUtil {
*/ */
String getDiskRelativePath(String fileName, String suffix); String getDiskRelativePath(String fileName, String suffix);
String uploadByRelativePath(MultipartFile file, String relativePath); String uploadByRelativePath(MultipartFile file, String relativePath,String caseName);
} }

@ -176,24 +176,29 @@ public class LocalFileUtil implements IFileUtil{
} }
public String uploadByRelativePath(MultipartFile file, String relativePath) { public String uploadByRelativePath(MultipartFile file, String relativePath,String caseName) {
Assert.isTrue(!file.isEmpty(), "文件不存在"); Assert.isTrue(!file.isEmpty(), "文件不存在");
String originalFilename = file.getOriginalFilename();
try { try {
String filePath; // 创建目录如果不存在
File directory = new File(relativePath);
if (!directory.exists()) {
directory.mkdirs();
}
// 设置目标文件路径
String result = caseName == null ? file.getOriginalFilename() : caseName;
relativePath = relativePath.endsWith("/") ? relativePath : relativePath + "/"; int i = file.getOriginalFilename().lastIndexOf(".");
filePath = relativePath + originalFilename; String substring = file.getOriginalFilename().substring(i);
File destFile = new File(relativePath + File.separator + result+substring);
File destFile = new File(getFullPath(filePath));
destFile.getParentFile().mkdirs();
file.transferTo(destFile); file.transferTo(destFile);
return filePath; return "上传成功!";
} catch (FileNotFoundException e) { } catch (FileNotFoundException e) {
throw new IllegalArgumentException("上传文件失败,FileNotFound错误"); throw new IllegalArgumentException("上传文件失败,FileNotFound错误", e);
} catch (IOException e) { } catch (IOException e) {
throw new IllegalArgumentException("上传文件失败,IO错误"); throw new IllegalArgumentException("上传文件失败,IO错误", e);
} }
} }
} }

@ -13,7 +13,7 @@ spring:
application: application:
name: trading_system name: trading_system
profiles: profiles:
active: dev active: pro
mvc: mvc:
pathmatch: pathmatch:
matching-strategy: ant_path_matcher matching-strategy: ant_path_matcher

@ -46,14 +46,14 @@
<!-- <table tableName="sys_model_question" domainObjectName="SysModelQuestion" />--> <!-- <table tableName="sys_model_question" domainObjectName="SysModelQuestion" />-->
<!-- <table tableName="sys_objective_questions" domainObjectName="SysObjectiveQuestions" />--> <!-- <table tableName="sys_objective_questions" domainObjectName="SysObjectiveQuestions" />-->
<!-- <table tableName="sys_one_catalog" domainObjectName="SysOneCatalog" />--> <!-- <table tableName="sys_one_catalog" domainObjectName="SysOneCatalog" />-->
<table tableName="sys_resource" domainObjectName="SysResource" /> <!-- <table tableName="sys_resource" domainObjectName="SysResource" />-->
<!-- <table tableName="sys_resource_and_course" domainObjectName="SysResourceAndCourse" />--> <!-- <table tableName="sys_resource_and_course" domainObjectName="SysResourceAndCourse" />-->
<!-- <table tableName="sys_resource_data" domainObjectName="SysResourceData" />--> <!-- <table tableName="sys_resource_data" domainObjectName="SysResourceData" />-->
<!-- <table tableName="sys_school" domainObjectName="SysSchool" />--> <!-- <table tableName="sys_school" domainObjectName="SysSchool" />-->
<!-- <table tableName="sys_three_catalog" domainObjectName="SysThreeCatalog" />--> <!-- <table tableName="sys_three_catalog" domainObjectName="SysThreeCatalog" />-->
<!-- <table tableName="sys_topic_and_course" domainObjectName="SysTopicAndCourse" />--> <!-- <table tableName="sys_topic_and_course" domainObjectName="SysTopicAndCourse" />-->
<!-- <table tableName="admin_case" domainObjectName="AdminCase" />--> <!-- <table tableName="admin_case" domainObjectName="AdminCase" />-->
<!-- <table tableName="admin_data" domainObjectName="AdminData" />--> <table tableName="admin_data" domainObjectName="AdminData" />
<!-- <table tableName="admin_collect_case" domainObjectName="AdminCollectCase" />--> <!-- <table tableName="admin_collect_case" domainObjectName="AdminCollectCase" />-->
<!-- <table tableName="admin_collect_data" domainObjectName="AdminCollectData" />--> <!-- <table tableName="admin_collect_data" domainObjectName="AdminCollectData" />-->
<!-- <table tableName="admin_data_label" domainObjectName="AdminDataLabel" />--> <!-- <table tableName="admin_data_label" domainObjectName="AdminDataLabel" />-->

@ -1,388 +1,412 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sztzjy.resource_center.mapper.admin.AdminDataMapper"> <mapper namespace="com.sztzjy.resource_center.mapper.admin.AdminDataMapper">
<resultMap id="BaseResultMap" type="com.sztzjy.resource_center.entity.admin.AdminData"> <resultMap id="BaseResultMap" type="com.sztzjy.resource_center.entity.admin.AdminData">
<id column="data_id" jdbcType="VARCHAR" property="dataId"/> <id column="data_id" jdbcType="VARCHAR" property="dataId" />
<result column="name" jdbcType="VARCHAR" property="name"/> <result column="name" jdbcType="VARCHAR" property="name" />
<result column="picture_url" jdbcType="VARCHAR" property="pictureUrl"/> <result column="picture_url" jdbcType="VARCHAR" property="pictureUrl" />
<result column="status" jdbcType="INTEGER" property="status"/> <result column="status" jdbcType="INTEGER" property="status" />
<result column="source" jdbcType="VARCHAR" property="source"/> <result column="source" jdbcType="VARCHAR" property="source" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime"/> <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
</resultMap> </resultMap>
<resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.sztzjy.resource_center.entity.admin.AdminDataWithBLOBs">
type="com.sztzjy.resource_center.entity.admin.AdminDataWithBLOBs"> <result column="data_scenarios" jdbcType="LONGVARCHAR" property="dataScenarios" />
<result column="data_scenarios" jdbcType="LONGVARCHAR" property="dataScenarios"/> <result column="data_scenarios_original" jdbcType="LONGVARCHAR" property="dataScenariosOriginal" />
<result column="field_description" jdbcType="LONGVARCHAR" property="fieldDescription"/> <result column="field_description" jdbcType="LONGVARCHAR" property="fieldDescription" />
</resultMap> <result column="field_description_original" jdbcType="LONGVARCHAR" property="fieldDescriptionOriginal" />
<sql id="Example_Where_Clause"> </resultMap>
<where> <sql id="Example_Where_Clause">
<foreach collection="oredCriteria" item="criteria" separator="or"> <where>
<if test="criteria.valid"> <foreach collection="oredCriteria" item="criteria" separator="or">
<trim prefix="(" prefixOverrides="and" suffix=")"> <if test="criteria.valid">
<foreach collection="criteria.criteria" item="criterion"> <trim prefix="(" prefixOverrides="and" suffix=")">
<choose> <foreach collection="criteria.criteria" item="criterion">
<when test="criterion.noValue"> <choose>
and ${criterion.condition} <when test="criterion.noValue">
</when> and ${criterion.condition}
<when test="criterion.singleValue"> </when>
and ${criterion.condition} #{criterion.value} <when test="criterion.singleValue">
</when> and ${criterion.condition} #{criterion.value}
<when test="criterion.betweenValue"> </when>
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} <when test="criterion.betweenValue">
</when> and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
<when test="criterion.listValue"> </when>
and ${criterion.condition} <when test="criterion.listValue">
<foreach close=")" collection="criterion.value" item="listItem" open="(" and ${criterion.condition}
separator=","> <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem} #{listItem}
</foreach> </foreach>
</when> </when>
</choose> </choose>
</foreach>
</trim>
</if>
</foreach> </foreach>
</where> </trim>
</sql>
<sql id="Update_By_Example_Where_Clause">
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="("
separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List">
data_id
, name, picture_url, status, source, create_time
</sql>
<sql id="Blob_Column_List">
data_scenarios
, field_description
</sql>
<select id="selectByExampleWithBLOBs" parameterType="com.sztzjy.resource_center.entity.admin.AdminDataExample"
resultMap="ResultMapWithBLOBs">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List"/>
,
<include refid="Blob_Column_List"/>
from admin_data
<if test="_parameter != null">
<include refid="Example_Where_Clause"/>
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByExample" parameterType="com.sztzjy.resource_center.entity.admin.AdminDataExample"
resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List"/>
from admin_data
<if test="_parameter != null">
<include refid="Example_Where_Clause"/>
</if> </if>
<if test="orderByClause != null"> </foreach>
order by ${orderByClause} </where>
</if> </sql>
</select> <sql id="Update_By_Example_Where_Clause">
<select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="ResultMapWithBLOBs"> <where>
select <foreach collection="example.oredCriteria" item="criteria" separator="or">
<include refid="Base_Column_List"/> <if test="criteria.valid">
, <trim prefix="(" prefixOverrides="and" suffix=")">
<include refid="Blob_Column_List"/> <foreach collection="criteria.criteria" item="criterion">
from admin_data <choose>
where data_id = #{dataId,jdbcType=VARCHAR} <when test="criterion.noValue">
</select> and ${criterion.condition}
<delete id="deleteByPrimaryKey" parameterType="java.lang.String"> </when>
delete <when test="criterion.singleValue">
from admin_data and ${criterion.condition} #{criterion.value}
where data_id = #{dataId,jdbcType=VARCHAR} </when>
</delete> <when test="criterion.betweenValue">
<delete id="deleteByExample" parameterType="com.sztzjy.resource_center.entity.admin.AdminDataExample"> and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
delete from admin_data </when>
<if test="_parameter != null"> <when test="criterion.listValue">
<include refid="Example_Where_Clause"/> and ${criterion.condition}
</if> <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
</delete> #{listItem}
<insert id="insert" parameterType="com.sztzjy.resource_center.entity.admin.AdminDataWithBLOBs"> </foreach>
insert into admin_data (data_id, name, picture_url, </when>
status, source, create_time, </choose>
data_scenarios, field_description) </foreach>
values (#{dataId,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{pictureUrl,jdbcType=VARCHAR}, </trim>
#{status,jdbcType=INTEGER}, #{source,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP},
#{dataScenarios,jdbcType=LONGVARCHAR}, #{fieldDescription,jdbcType=LONGVARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.sztzjy.resource_center.entity.admin.AdminDataWithBLOBs">
insert into admin_data
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="dataId != null">
data_id,
</if>
<if test="name != null">
name,
</if>
<if test="pictureUrl != null">
picture_url,
</if>
<if test="status != null">
status,
</if>
<if test="source != null">
source,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="dataScenarios != null">
data_scenarios,
</if>
<if test="fieldDescription != null">
field_description,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="dataId != null">
#{dataId,jdbcType=VARCHAR},
</if>
<if test="name != null">
#{name,jdbcType=VARCHAR},
</if>
<if test="pictureUrl != null">
#{pictureUrl,jdbcType=VARCHAR},
</if>
<if test="status != null">
#{status,jdbcType=INTEGER},
</if>
<if test="source != null">
#{source,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="dataScenarios != null">
#{dataScenarios,jdbcType=LONGVARCHAR},
</if>
<if test="fieldDescription != null">
#{fieldDescription,jdbcType=LONGVARCHAR},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.sztzjy.resource_center.entity.admin.AdminDataExample"
resultType="java.lang.Long">
select count(*) from admin_data
<if test="_parameter != null">
<include refid="Example_Where_Clause"/>
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update admin_data
<set>
<if test="record.dataId != null">
data_id = #{record.dataId,jdbcType=VARCHAR},
</if>
<if test="record.name != null">
name = #{record.name,jdbcType=VARCHAR},
</if>
<if test="record.pictureUrl != null">
picture_url = #{record.pictureUrl,jdbcType=VARCHAR},
</if>
<if test="record.status != null">
status = #{record.status,jdbcType=INTEGER},
</if>
<if test="record.source != null">
source = #{record.source,jdbcType=VARCHAR},
</if>
<if test="record.createTime != null">
create_time = #{record.createTime,jdbcType=TIMESTAMP},
</if>
<if test="record.dataScenarios != null">
data_scenarios = #{record.dataScenarios,jdbcType=LONGVARCHAR},
</if>
<if test="record.fieldDescription != null">
field_description = #{record.fieldDescription,jdbcType=LONGVARCHAR},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause"/>
</if> </if>
</update> </foreach>
<update id="updateByExampleWithBLOBs" parameterType="map"> </where>
update admin_data </sql>
set data_id = #{record.dataId,jdbcType=VARCHAR}, <sql id="Base_Column_List">
data_id, name, picture_url, status, source, create_time
</sql>
<sql id="Blob_Column_List">
data_scenarios, data_scenarios_original, field_description, field_description_original
</sql>
<select id="selectByExampleWithBLOBs" parameterType="com.sztzjy.resource_center.entity.admin.AdminDataExample" resultMap="ResultMapWithBLOBs">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
,
<include refid="Blob_Column_List" />
from admin_data
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByExample" parameterType="com.sztzjy.resource_center.entity.admin.AdminDataExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from admin_data
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="ResultMapWithBLOBs">
select
<include refid="Base_Column_List" />
,
<include refid="Blob_Column_List" />
from admin_data
where data_id = #{dataId,jdbcType=VARCHAR}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
delete from admin_data
where data_id = #{dataId,jdbcType=VARCHAR}
</delete>
<delete id="deleteByExample" parameterType="com.sztzjy.resource_center.entity.admin.AdminDataExample">
delete from admin_data
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="com.sztzjy.resource_center.entity.admin.AdminDataWithBLOBs">
insert into admin_data (data_id, name, picture_url,
status, source, create_time,
data_scenarios, data_scenarios_original,
field_description, field_description_original
)
values (#{dataId,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{pictureUrl,jdbcType=VARCHAR},
#{status,jdbcType=INTEGER}, #{source,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP},
#{dataScenarios,jdbcType=LONGVARCHAR}, #{dataScenariosOriginal,jdbcType=LONGVARCHAR},
#{fieldDescription,jdbcType=LONGVARCHAR}, #{fieldDescriptionOriginal,jdbcType=LONGVARCHAR}
)
</insert>
<insert id="insertSelective" parameterType="com.sztzjy.resource_center.entity.admin.AdminDataWithBLOBs">
insert into admin_data
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="dataId != null">
data_id,
</if>
<if test="name != null">
name,
</if>
<if test="pictureUrl != null">
picture_url,
</if>
<if test="status != null">
status,
</if>
<if test="source != null">
source,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="dataScenarios != null">
data_scenarios,
</if>
<if test="dataScenariosOriginal != null">
data_scenarios_original,
</if>
<if test="fieldDescription != null">
field_description,
</if>
<if test="fieldDescriptionOriginal != null">
field_description_original,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="dataId != null">
#{dataId,jdbcType=VARCHAR},
</if>
<if test="name != null">
#{name,jdbcType=VARCHAR},
</if>
<if test="pictureUrl != null">
#{pictureUrl,jdbcType=VARCHAR},
</if>
<if test="status != null">
#{status,jdbcType=INTEGER},
</if>
<if test="source != null">
#{source,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="dataScenarios != null">
#{dataScenarios,jdbcType=LONGVARCHAR},
</if>
<if test="dataScenariosOriginal != null">
#{dataScenariosOriginal,jdbcType=LONGVARCHAR},
</if>
<if test="fieldDescription != null">
#{fieldDescription,jdbcType=LONGVARCHAR},
</if>
<if test="fieldDescriptionOriginal != null">
#{fieldDescriptionOriginal,jdbcType=LONGVARCHAR},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.sztzjy.resource_center.entity.admin.AdminDataExample" resultType="java.lang.Long">
select count(*) from admin_data
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update admin_data
<set>
<if test="record.dataId != null">
data_id = #{record.dataId,jdbcType=VARCHAR},
</if>
<if test="record.name != null">
name = #{record.name,jdbcType=VARCHAR}, name = #{record.name,jdbcType=VARCHAR},
</if>
<if test="record.pictureUrl != null">
picture_url = #{record.pictureUrl,jdbcType=VARCHAR}, picture_url = #{record.pictureUrl,jdbcType=VARCHAR},
</if>
<if test="record.status != null">
status = #{record.status,jdbcType=INTEGER}, status = #{record.status,jdbcType=INTEGER},
</if>
<if test="record.source != null">
source = #{record.source,jdbcType=VARCHAR}, source = #{record.source,jdbcType=VARCHAR},
</if>
<if test="record.createTime != null">
create_time = #{record.createTime,jdbcType=TIMESTAMP}, create_time = #{record.createTime,jdbcType=TIMESTAMP},
</if>
<if test="record.dataScenarios != null">
data_scenarios = #{record.dataScenarios,jdbcType=LONGVARCHAR}, data_scenarios = #{record.dataScenarios,jdbcType=LONGVARCHAR},
field_description = #{record.fieldDescription,jdbcType=LONGVARCHAR} </if>
<if test="_parameter != null"> <if test="record.dataScenariosOriginal != null">
<include refid="Update_By_Example_Where_Clause"/> data_scenarios_original = #{record.dataScenariosOriginal,jdbcType=LONGVARCHAR},
</if> </if>
</update> <if test="record.fieldDescription != null">
<update id="updateByExample" parameterType="map"> field_description = #{record.fieldDescription,jdbcType=LONGVARCHAR},
update admin_data </if>
set data_id = #{record.dataId,jdbcType=VARCHAR}, <if test="record.fieldDescriptionOriginal != null">
name = #{record.name,jdbcType=VARCHAR}, field_description_original = #{record.fieldDescriptionOriginal,jdbcType=LONGVARCHAR},
picture_url = #{record.pictureUrl,jdbcType=VARCHAR}, </if>
status = #{record.status,jdbcType=INTEGER}, </set>
source = #{record.source,jdbcType=VARCHAR}, <if test="_parameter != null">
create_time = #{record.createTime,jdbcType=TIMESTAMP} <include refid="Update_By_Example_Where_Clause" />
<if test="_parameter != null"> </if>
<include refid="Update_By_Example_Where_Clause"/> </update>
</if> <update id="updateByExampleWithBLOBs" parameterType="map">
</update> update admin_data
<update id="updateByPrimaryKeySelective" parameterType="com.sztzjy.resource_center.entity.admin.AdminDataWithBLOBs"> set data_id = #{record.dataId,jdbcType=VARCHAR},
update admin_data name = #{record.name,jdbcType=VARCHAR},
<set> picture_url = #{record.pictureUrl,jdbcType=VARCHAR},
<if test="name != null"> status = #{record.status,jdbcType=INTEGER},
name = #{name,jdbcType=VARCHAR}, source = #{record.source,jdbcType=VARCHAR},
</if> create_time = #{record.createTime,jdbcType=TIMESTAMP},
<if test="pictureUrl != null"> data_scenarios = #{record.dataScenarios,jdbcType=LONGVARCHAR},
picture_url = #{pictureUrl,jdbcType=VARCHAR}, data_scenarios_original = #{record.dataScenariosOriginal,jdbcType=LONGVARCHAR},
</if> field_description = #{record.fieldDescription,jdbcType=LONGVARCHAR},
<if test="status != null"> field_description_original = #{record.fieldDescriptionOriginal,jdbcType=LONGVARCHAR}
status = #{status,jdbcType=INTEGER}, <if test="_parameter != null">
</if> <include refid="Update_By_Example_Where_Clause" />
<if test="source != null"> </if>
source = #{source,jdbcType=VARCHAR}, </update>
</if> <update id="updateByExample" parameterType="map">
<if test="createTime != null"> update admin_data
create_time = #{createTime,jdbcType=TIMESTAMP}, set data_id = #{record.dataId,jdbcType=VARCHAR},
</if> name = #{record.name,jdbcType=VARCHAR},
<if test="dataScenarios != null"> picture_url = #{record.pictureUrl,jdbcType=VARCHAR},
data_scenarios = #{dataScenarios,jdbcType=LONGVARCHAR}, status = #{record.status,jdbcType=INTEGER},
</if> source = #{record.source,jdbcType=VARCHAR},
<if test="fieldDescription != null"> create_time = #{record.createTime,jdbcType=TIMESTAMP}
field_description = #{fieldDescription,jdbcType=LONGVARCHAR}, <if test="_parameter != null">
</if> <include refid="Update_By_Example_Where_Clause" />
</set> </if>
where data_id = #{dataId,jdbcType=VARCHAR} </update>
</update> <update id="updateByPrimaryKeySelective" parameterType="com.sztzjy.resource_center.entity.admin.AdminDataWithBLOBs">
<update id="updateByPrimaryKeyWithBLOBs" parameterType="com.sztzjy.resource_center.entity.admin.AdminDataWithBLOBs"> update admin_data
update admin_data <set>
set name = #{name,jdbcType=VARCHAR}, <if test="name != null">
picture_url = #{pictureUrl,jdbcType=VARCHAR}, name = #{name,jdbcType=VARCHAR},
status = #{status,jdbcType=INTEGER}, </if>
source = #{source,jdbcType=VARCHAR}, <if test="pictureUrl != null">
create_time = #{createTime,jdbcType=TIMESTAMP}, picture_url = #{pictureUrl,jdbcType=VARCHAR},
data_scenarios = #{dataScenarios,jdbcType=LONGVARCHAR}, </if>
field_description = #{fieldDescription,jdbcType=LONGVARCHAR} <if test="status != null">
where data_id = #{dataId,jdbcType=VARCHAR} status = #{status,jdbcType=INTEGER},
</update> </if>
<update id="updateByPrimaryKey" parameterType="com.sztzjy.resource_center.entity.admin.AdminData"> <if test="source != null">
update admin_data source = #{source,jdbcType=VARCHAR},
set name = #{name,jdbcType=VARCHAR}, </if>
picture_url = #{pictureUrl,jdbcType=VARCHAR}, <if test="createTime != null">
status = #{status,jdbcType=INTEGER}, create_time = #{createTime,jdbcType=TIMESTAMP},
source = #{source,jdbcType=VARCHAR}, </if>
create_time = #{createTime,jdbcType=TIMESTAMP} <if test="dataScenarios != null">
where data_id = #{dataId,jdbcType=VARCHAR} data_scenarios = #{dataScenarios,jdbcType=LONGVARCHAR},
</update> </if>
<if test="dataScenariosOriginal != null">
data_scenarios_original = #{dataScenariosOriginal,jdbcType=LONGVARCHAR},
<resultMap id="dtoMap" type="com.sztzjy.resource_center.entity.admin.AdminDataReturnDto"> </if>
<id column="data_id" jdbcType="VARCHAR" property="dataId"/> <if test="fieldDescription != null">
<result column="name" jdbcType="VARCHAR" property="name"/> field_description = #{fieldDescription,jdbcType=LONGVARCHAR},
<result column="picture_url" jdbcType="VARCHAR" property="pictureUrl"/> </if>
<result column="status" jdbcType="INTEGER" property="status"/> <if test="fieldDescriptionOriginal != null">
<result column="data_scenarios" jdbcType="LONGVARCHAR" property="dataScenarios"/> field_description_original = #{fieldDescriptionOriginal,jdbcType=LONGVARCHAR},
<result column="field_description" jdbcType="LONGVARCHAR" property="fieldDescription"/> </if>
<result column="source" jdbcType="VARCHAR" property="source"/> </set>
<result column="create_time" jdbcType="TIMESTAMP" property="createTime"/> where data_id = #{dataId,jdbcType=VARCHAR}
<result column="id" jdbcType="VARCHAR" property="collectId"/> </update>
<collection property="adminDataLabels" ofType="com.sztzjy.resource_center.entity.admin.AdminDataLabel"> <update id="updateByPrimaryKeyWithBLOBs" parameterType="com.sztzjy.resource_center.entity.admin.AdminDataWithBLOBs">
<id column="label_id" jdbcType="VARCHAR" property="labelId"/> update admin_data
<result column="label_name" jdbcType="VARCHAR" property="name"/> set name = #{name,jdbcType=VARCHAR},
<result column="type" jdbcType="VARCHAR" property="type"/> picture_url = #{pictureUrl,jdbcType=VARCHAR},
<result column="data_case_id" jdbcType="VARCHAR" property="dataCaseId"/> status = #{status,jdbcType=INTEGER},
</collection> source = #{source,jdbcType=VARCHAR},
<collection property="adminFiles" ofType="com.sztzjy.resource_center.entity.admin.AdminFile"> create_time = #{createTime,jdbcType=TIMESTAMP},
<id column="file_url" jdbcType="VARCHAR" property="fileUrl"/> data_scenarios = #{dataScenarios,jdbcType=LONGVARCHAR},
<id column="file_id" jdbcType="VARCHAR" property="fileId"/> data_scenarios_original = #{dataScenariosOriginal,jdbcType=LONGVARCHAR},
<result column="file_name" jdbcType="VARCHAR" property="name"/> field_description = #{fieldDescription,jdbcType=LONGVARCHAR},
<result column="source" jdbcType="VARCHAR" property="source"/> field_description_original = #{fieldDescriptionOriginal,jdbcType=LONGVARCHAR}
<result column="data_case_id" jdbcType="VARCHAR" property="dataCaseId"/> where data_id = #{dataId,jdbcType=VARCHAR}
</collection> </update>
</resultMap> <update id="updateByPrimaryKey" parameterType="com.sztzjy.resource_center.entity.admin.AdminData">
update admin_data
<select id="selectByConditions" resultMap="dtoMap"> set name = #{name,jdbcType=VARCHAR},
SELECT a.data_id,a.name,a.picture_url,a.data_scenarios,a.field_description,a.`status`,a.source,a.create_time, picture_url = #{pictureUrl,jdbcType=VARCHAR},
ad.`name`as label_name,ad.label_id,ad.type,ad.data_case_id, status = #{status,jdbcType=INTEGER},
af.file_url,af.`name` as file_name,af.source,af.file_id,af.data_case_id source = #{source,jdbcType=VARCHAR},
FROM admin_data a create_time = #{createTime,jdbcType=TIMESTAMP}
LEFT join admin_data_label ad ON a.data_id = ad.data_case_id where data_id = #{dataId,jdbcType=VARCHAR}
LEFT JOIN admin_file af on a.data_id = af.data_case_id </update>
LEFT JOIN admin_collect_data acc on a.data_id = acc.data_id <resultMap id="dtoMap" type="com.sztzjy.resource_center.entity.admin.AdminDataReturnDto">
<where> <id column="data_id" jdbcType="VARCHAR" property="dataId"/>
<if test="keyWord !=null and keyWord !=''"> <result column="name" jdbcType="VARCHAR" property="name"/>
and a.name like CONCAT('%', #{keyWord}, '%') <result column="picture_url" jdbcType="VARCHAR" property="pictureUrl"/>
</if> <result column="status" jdbcType="INTEGER" property="status"/>
<if test="labelName !=null and labelName !=''"> <result column="data_scenarios" jdbcType="LONGVARCHAR" property="dataScenarios"/>
and ad.name in (#{labelName}) <result column="data_scenarios_original" jdbcType="LONGVARCHAR" property="dataScenariosOriginal"/>
</if> <result column="field_description" jdbcType="LONGVARCHAR" property="fieldDescription"/>
<if test="type !=null and type !=''"> <result column="field_description_original" jdbcType="LONGVARCHAR" property="fieldDescriptionOriginal"/>
and a.source != '管理员' <result column="source" jdbcType="VARCHAR" property="source"/>
</if> <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
</where> <result column="id" jdbcType="VARCHAR" property="collectId"/>
order by a.create_time desc <collection property="adminDataLabels" ofType="com.sztzjy.resource_center.entity.admin.AdminDataLabel">
</select> <id column="label_id" jdbcType="VARCHAR" property="labelId"/>
<result column="label_name" jdbcType="VARCHAR" property="name"/>
<result column="type" jdbcType="VARCHAR" property="type"/>
<result column="data_case_id" jdbcType="VARCHAR" property="dataCaseId"/>
</collection>
<collection property="adminFiles" ofType="com.sztzjy.resource_center.entity.admin.AdminFile">
<id column="file_url" jdbcType="VARCHAR" property="fileUrl"/>
<id column="file_id" jdbcType="VARCHAR" property="fileId"/>
<result column="file_name" jdbcType="VARCHAR" property="name"/>
<result column="source" jdbcType="VARCHAR" property="source"/>
<result column="data_case_id" jdbcType="VARCHAR" property="dataCaseId"/>
</collection>
</resultMap>
<select id="selectByConditions" resultMap="dtoMap">
SELECT a.data_id,a.name,a.picture_url,a.data_scenarios,a.data_scenarios_original,a.field_description,a.field_description_original,a.`status`,a.source,a.create_time,
ad.`name`as label_name,ad.label_id,ad.type,ad.data_case_id,
af.file_url,af.`name` as file_name,af.source,af.file_id,af.data_case_id
FROM admin_data a
LEFT join admin_data_label ad ON a.data_id = ad.data_case_id
LEFT JOIN admin_file af on a.data_id = af.data_case_id
LEFT JOIN admin_collect_data acc on a.data_id = acc.data_id
<where>
<if test="keyWord !=null and keyWord !=''">
and a.name like CONCAT('%', #{keyWord}, '%')
</if>
<if test="labelName !=null and labelName !=''">
and ad.name in (#{labelName})
</if>
<if test="type !=null and type !=''">
and a.source != '管理员'
</if>
</where>
order by a.create_time desc
</select>
<select id="selectByConditionsBySchoolId" resultMap="dtoMap">
SELECT a.data_id,a.name,a.picture_url,a.data_scenarios,a.field_description,a.`status`,a.source,a.create_time,
ad.`name`as label_name,ad.label_id,ad.type,ad.data_case_id,
af.file_url,af.`name` as file_name,af.source,af.file_id,af.data_case_id,
acc.id
FROM admin_data a
LEFT join admin_data_label ad ON a.data_id = ad.data_case_id
LEFT JOIN admin_file af on a.data_id = af.data_case_id
LEFT JOIN admin_collect_data acc on a.data_id = acc.data_id
<where>
and a.status=1
<if test="keyWord !=null and keyWord !=''">
and a.name like CONCAT('%', #{keyWord}, '%')
</if>
<if test="labelName !=null and labelName !=''">
and ad.name = #{labelName}
</if>
<if test="source !=null and source !=''">
and a.source in (#{source},'管理员')
</if>
<if test="userId !=null and userId !=''">
and acc.user_id = #{userId}
</if>
</where>
order by a.create_time desc
</select>
<select id="selectByConditionsBySchoolId" resultMap="dtoMap">
SELECT a.data_id,a.name,a.picture_url,a.data_scenarios,a.data_scenarios_original,a.field_description,a.field_description_original,a.`status`,a.source,a.create_time,
ad.`name`as label_name,ad.label_id,ad.type,ad.data_case_id,
af.file_url,af.`name` as file_name,af.source,af.file_id,af.data_case_id,
acc.id
FROM admin_data a
LEFT join admin_data_label ad ON a.data_id = ad.data_case_id
LEFT JOIN admin_file af on a.data_id = af.data_case_id
LEFT JOIN admin_collect_data acc on a.data_id = acc.data_id
<where>
and a.status=1
<if test="keyWord !=null and keyWord !=''">
and a.name like CONCAT('%', #{keyWord}, '%')
</if>
<if test="labelName !=null and labelName !=''">
and ad.name = #{labelName}
</if>
<if test="source !=null and source !=''">
and a.source in (#{source},'管理员')
</if>
<if test="userId !=null and userId !=''">
and acc.user_id = #{userId}
</if>
</where>
order by a.create_time desc
</select>
</mapper> </mapper>

@ -421,7 +421,8 @@
</resultMap> </resultMap>
<select id="selectTrainingByIds" resultMap="DtoBaseResultMap"> <select id="selectTrainingByIds" resultMap="DtoBaseResultMap">
SELECT SUM(sqs.score) AS total_steps_score, sqs.case_id,COUNT(sqs.case_step_id) AS total_steps_count, sq.title, s3.three_name SELECT SUM(sqs.score) AS total_steps_score, sqs.case_id,COUNT(sqs.case_step_id) AS total_steps_count, sq.title,
s3.three_name
FROM sys_case_question_steps sqs FROM sys_case_question_steps sqs
JOIN sys_case_questions sq ON sqs.case_id = sq.case_id JOIN sys_case_questions sq ON sqs.case_id = sq.case_id
JOIN sys_topic_and_course s3 ON sq.case_id = s3.topic_id JOIN sys_topic_and_course s3 ON sq.case_id = s3.topic_id
@ -440,4 +441,15 @@
#{item} #{item}
</foreach> </foreach>
</select> </select>
<select id="selectCaseStepListBatchByIdListAndSort" resultMap="ResultMapWithBLOBs">
SELECT sc.*
from sys_case_question_steps sc
left join sys_case_questions s
on sc.case_id = s.case_id
left join sys_topic_and_course st
on st.topic_id = s.case_id
where st.three_id = #{threeId}
order by s.create_time ,sc.sort
</select>
</mapper> </mapper>

@ -223,4 +223,12 @@
source = #{source,jdbcType=VARCHAR} source = #{source,jdbcType=VARCHAR}
where resource_data_id = #{resourceDataId,jdbcType=VARCHAR} where resource_data_id = #{resourceDataId,jdbcType=VARCHAR}
</update> </update>
<select id="getByIds" parameterType="String" resultType="map">
SELECT af.url,af.resource_name FROM sys_resource_data af
WHERE af.url IS NOT NULL
AND af.resource_data_id IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
</mapper> </mapper>
Loading…
Cancel
Save