diff --git a/src/main/java/com/sztzjy/resource_center/controller/CaseController.java b/src/main/java/com/sztzjy/resource_center/controller/CaseController.java index f312f5e..63216b6 100644 --- a/src/main/java/com/sztzjy/resource_center/controller/CaseController.java +++ b/src/main/java/com/sztzjy/resource_center/controller/CaseController.java @@ -97,7 +97,7 @@ public class CaseController { @RequestParam(required = false) String title, @RequestParam(required = false) String oneId) { PageHelper.startPage(index, size); - List list = caseQuestionMapper.selectCaseByConditions(title, oneId); + List list = caseQuestionMapper.selectCaseByConditions(title, oneId,null); PageInfo pageInfo = new PageInfo(list); return new ResultEntity>(pageInfo); } diff --git a/src/main/java/com/sztzjy/resource_center/controller/api/CaseApi.java b/src/main/java/com/sztzjy/resource_center/controller/api/CaseApi.java index 7f58ff0..13dcf71 100644 --- a/src/main/java/com/sztzjy/resource_center/controller/api/CaseApi.java +++ b/src/main/java/com/sztzjy/resource_center/controller/api/CaseApi.java @@ -20,6 +20,7 @@ import org.springframework.web.bind.annotation.*; import java.util.Date; import java.util.List; +import java.util.UUID; @RestController @Api(tags = "课程方面API") @@ -35,30 +36,29 @@ public class CaseApi { @Autowired private SysOneCatalogMapper sysOneCatalogMapper; - //案例题新增 SysCaseQuestion @AnonymousAccess @ApiOperation("案例题新增") @PostMapping("insertCase") - public ResultEntity insertCase(@ApiParam("目前二级三级ID可以为空,来源和题型要传,上架状态传true") @RequestBody SysCaseQuestion sysCaseQuestion) { + public Boolean insertCase(@ApiParam("目前二级三级ID可以为空,来源和题型要传,上架状态传true") @RequestBody SysCaseQuestion sysCaseQuestion) { if (("3").equals(sysCaseQuestion.getType())) { - return new ResultEntity<>(HttpStatus.BAD_REQUEST, "题型错误!"); + return false; } if (StringUtils.isBlank(sysCaseQuestion.getOneId())) { //todo 目前二级三级ID可以为空 - return new ResultEntity<>(HttpStatus.BAD_REQUEST, "课程不能为空!"); + return false; } if (StringUtils.isBlank(sysCaseQuestion.getContent()) || StringUtils.isBlank(sysCaseQuestion.getTitle())) { - return new ResultEntity<>(HttpStatus.BAD_REQUEST, "题目内容不能为空!"); + return false; } if (StringUtils.isBlank(sysCaseQuestion.getSource())) { - return new ResultEntity<>(HttpStatus.BAD_REQUEST, "题目来源不能为空!"); + return false; } String title = sysCaseQuestion.getTitle(); SysCaseQuestionExample example = new SysCaseQuestionExample(); example.createCriteria().andTitleEqualTo(title); List sysCaseQuestions = caseQuestionMapper.selectByExample(example); if (!sysCaseQuestions.isEmpty()) { - return new ResultEntity<>(HttpStatus.BAD_REQUEST, "案例名称不能重复!"); + return false; } String uuid = IdUtil.randomUUID(); @@ -74,6 +74,7 @@ public class CaseApi { SysOneCatalog sysOneCatalogs = getSysOneCatalogs(sysCaseQuestion.getOneId()); //name放在ID传过来 String oneId = sysOneCatalogs.getOneId(); sysTopicAndCourse.setOneId(oneId); + sysTopicAndCourse.setOneName(sysCaseQuestion.getOneId()); if (StringUtils.isNotBlank(sysCaseQuestion.getTwoId())) { sysTopicAndCourse.setTwoId(sysCaseQuestion.getTwoId()); } @@ -81,7 +82,7 @@ public class CaseApi { sysTopicAndCourse.setThreeId(sysCaseQuestion.getThreeId()); } topicAndCourseMapper.insert(sysTopicAndCourse); - return new ResultEntity<>(HttpStatus.OK, "新增成功!"); + return true; } private SysOneCatalog getSysOneCatalogs(String systemOwner) { @@ -97,21 +98,144 @@ public class CaseApi { @PostMapping("selectCaseByConditions") public ResultEntity> selectCaseByConditions(@RequestParam Integer index, @RequestParam Integer size, - @RequestParam(required = false) String title, - @RequestParam(required = false) String oneId) { + @RequestParam(required = false) String keyword, + @RequestParam(required = false) String systemOwner, + @RequestParam(required = false) String schoolId) { PageHelper.startPage(index, size); - List list = caseQuestionMapper.selectCaseByConditions(title, oneId); + SysOneCatalog sysOneCatalogs = getSysOneCatalogs(systemOwner); + String oneId = sysOneCatalogs.getOneId(); + List list = caseQuestionMapper.selectCaseByConditions(keyword, oneId, schoolId); PageInfo pageInfo = new PageInfo(list); return new ResultEntity>(pageInfo); } + //案例题详情查询 caseId + @AnonymousAccess + @ApiOperation("案例题详细内容展示") + @PostMapping("selectCaseByConditionsByID") + public ResultEntity selectCaseByConditionsByID(@RequestParam String caseId) { + SysCaseQuestion sysCaseQuestion = caseQuestionMapper.selectByPrimaryKey(caseId); + return new ResultEntity(sysCaseQuestion); + } + + //案例题删除 caseId + @AnonymousAccess + @ApiOperation("案例题删除") //逻辑删除 + @PostMapping("deleteCase") + public Boolean deleteCase(@RequestParam String caseId) { + List sysTopicAndCourses = getSysTopicAndCourses(caseId); + if (!sysTopicAndCourses.isEmpty()) { + return false; + } else { + SysCaseQuestion sysCaseQuestion = caseQuestionMapper.selectByPrimaryKey(caseId); + String source = sysCaseQuestion.getSource(); + //todo 管理员任意删除 老师只能删除自己上传的 + if (!"管理员".equals(source)) { + SysCaseQuestion dataSysCaseQuestion = caseQuestionMapper.selectByPrimaryKey(sysCaseQuestion.getCaseId()); + dataSysCaseQuestion.setUnmountStatus(true); + caseQuestionMapper.updateByPrimaryKey(dataSysCaseQuestion); + return true; + } else { + return false; + } + } + } + + private List getSysTopicAndCourses(String caseId) { + SysTopicAndCourseExample example = new SysTopicAndCourseExample(); + example.createCriteria().andTopicIdEqualTo(caseId).andTopicTypeEqualTo("1"); + List sysTopicAndCourses = topicAndCourseMapper.selectByExample(example); + return sysTopicAndCourses; + } + + //案例题编辑 SysCaseQuestion - //案例题信息查询 caseId + @AnonymousAccess + @ApiOperation("案例题编辑") + @PostMapping("updateCase") + public Boolean updateCase(@RequestBody SysCaseQuestion sysCaseQuestion) { + List sysTopicAndCourses = getSysTopicAndCourses(sysCaseQuestion.getCaseId()); + if (!sysTopicAndCourses.isEmpty()) { + return false; + } else { + caseQuestionMapper.updateByPrimaryKey(sysCaseQuestion); + return true; + } + } + //案例题步骤信息查询 caseId + @AnonymousAccess + @ApiOperation("案例步骤展示") + @PostMapping("selectCaseStep") + public ResultEntity> selectCaseStep(@ApiParam("案例题ID") @RequestParam String caseId) { + SysCaseQuestionStepExample example = new SysCaseQuestionStepExample(); + example.createCriteria().andCaseIdEqualTo(caseId); +// example.setOrderByClause("sort ASC"); + List stepList = caseQuestionStepMapper.selectByExampleWithBLOBs(example); + return new ResultEntity<>(stepList); + } + + //案例题步骤新增 SysCaseQuestionStep - //案例步骤编辑 SysCaseQuestionStep + @AnonymousAccess + @ApiOperation("案例题添加步骤") + @PostMapping("insertCaseStepByCaseId") + public Boolean insertCaseStepByCaseId(@RequestBody SysCaseQuestionStepWithBLOBs caseQuestionStep) { + if (caseQuestionStep.getCaseId().isEmpty()) { + return false; + } + if (caseQuestionStep.getTitle().isEmpty() + || caseQuestionStep.getQuestion().isEmpty() + || caseQuestionStep.getAnswer().isEmpty() + || caseQuestionStep.getContent().isEmpty()) { + return false; + } + try { + caseQuestionStep.setCaseStepId(String.valueOf(UUID.randomUUID())); + caseQuestionStepMapper.insert(caseQuestionStep); + return true; + } catch (Exception e) { + return false; + } + } + + + //案例步骤编辑 SysCaseQuestionStepWithBLOBs + @AnonymousAccess + @ApiOperation("案例题步骤编辑") + @PostMapping("updateCaseStep") + public Boolean updateCaseStep(@RequestBody SysCaseQuestionStepWithBLOBs caseQuestionStepWithBLOBs) { + List sysTopicAndCourses = getSysTopicAndCourses(caseQuestionStepWithBLOBs.getCaseId()); + if (!sysTopicAndCourses.isEmpty()) { + return false; + } else { + caseQuestionStepMapper.updateByPrimaryKey(caseQuestionStepWithBLOBs); + return true; + } + } + //案例步骤删除 caseStepId + @AnonymousAccess + @ApiOperation("案例题步骤删除") + @PostMapping("deleteCaseStep") + public Boolean deleteCaseStep(@RequestParam String caseStepId) { + List sysTopicAndCourses = getSysTopicAndCourses(caseStepId); + if (!sysTopicAndCourses.isEmpty()) { + return false; + } else { + caseQuestionStepMapper.deleteByPrimaryKey(caseStepId); + return true; + } + } + //案例题步骤内容查看 caseStepId + @PostMapping("selectCaseStepDetails") + @ApiOperation("案例题步骤内容查看") + public ResultEntity selectCaseStepDetails(@ApiParam("案例题步骤ID") @RequestParam String caseStepId) { + SysCaseQuestionStep sysCaseQuestionStep = caseQuestionStepMapper.selectByPrimaryKey(caseStepId); + return new ResultEntity<>(HttpStatus.OK, "案例题步骤内容查看成功", sysCaseQuestionStep); + } + } diff --git a/src/main/java/com/sztzjy/resource_center/mapper/SysCaseQuestionMapper.java b/src/main/java/com/sztzjy/resource_center/mapper/SysCaseQuestionMapper.java index 1e00d3f..4867070 100644 --- a/src/main/java/com/sztzjy/resource_center/mapper/SysCaseQuestionMapper.java +++ b/src/main/java/com/sztzjy/resource_center/mapper/SysCaseQuestionMapper.java @@ -2,10 +2,11 @@ package com.sztzjy.resource_center.mapper; import com.sztzjy.resource_center.entity.SysCaseQuestion; import com.sztzjy.resource_center.entity.SysCaseQuestionExample; -import java.util.List; - import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; + +import java.util.List; + @Mapper public interface SysCaseQuestionMapper { long countByExample(SysCaseQuestionExample example); @@ -36,7 +37,9 @@ public interface SysCaseQuestionMapper { int updateByPrimaryKey(SysCaseQuestion record); - List selectCaseByConditions(@Param("title")String title, @Param("oneId")String oneId); + List selectCaseByConditions(@Param("title") String title, + @Param("oneId") String oneId, + @Param("source") String source); - List selectCaseByConditionsByBind(@Param("title")String title); + List selectCaseByConditionsByBind(@Param("title") String title); } \ No newline at end of file diff --git a/src/main/resources/mapper/SysCaseQuestionMapper.xml b/src/main/resources/mapper/SysCaseQuestionMapper.xml index 6e23d2a..12e6b9a 100644 --- a/src/main/resources/mapper/SysCaseQuestionMapper.xml +++ b/src/main/resources/mapper/SysCaseQuestionMapper.xml @@ -443,6 +443,9 @@ and s.title = #{title} + + and s.source in('管理员',source) + and s.unmount_status is false order by s.create_time