diff --git a/src/main/java/com/peanut/modules/master/controller/CourseTaihumedController.java b/src/main/java/com/peanut/modules/master/controller/CourseTaihumedController.java new file mode 100644 index 00000000..3b769384 --- /dev/null +++ b/src/main/java/com/peanut/modules/master/controller/CourseTaihumedController.java @@ -0,0 +1,168 @@ +package com.peanut.modules.master.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.peanut.common.utils.R; +import com.peanut.modules.common.entity.CourseEntity; +import com.peanut.modules.common.entity.CourseTaihumed; +import com.peanut.modules.common.entity.CourseToTaihumed; +import com.peanut.modules.common.service.CourseTaihumedService; +import com.peanut.modules.common.service.CourseToTaihumedService; +import com.peanut.modules.common.to.ParamTo; +import com.peanut.modules.master.service.CourseService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +//课程医学标签管理 +@Slf4j +@RestController("masterCourseTaihumed") +@RequestMapping("master/courseTaihumed") +public class CourseTaihumedController { + @Autowired + private CourseTaihumedService courseTaihumedService; + @Autowired + private CourseToTaihumedService courseToTaihumedService; + @Autowired + private CourseService courseService; + + //课程标签列表 + @RequestMapping("/getCourseTaihumedList") + public R getCourseTaihumedList(){ + List courseTaihumedList = courseTaihumeds(0); + return R.ok().put("courseTaihumedList", courseTaihumedList); + } + + @RequestMapping("/addCourseTaihumed") + public R addCourseTaihumed(@RequestBody CourseTaihumed courseTaihumed){ + courseTaihumedService.save(courseTaihumed); + return R.ok().put("courseTaihumed", courseTaihumed); + } + + @RequestMapping("/delCourseTaihumed") + public R delCourseTaihumed(@RequestBody Map params){ + //查看下一级是否存在 + int count = courseTaihumedService.count(new LambdaQueryWrapper() + .eq(CourseTaihumed::getPid, params.get("id"))); + if(count>0){ + return R.error(501,"删除失败,请先删除子项目后再尝试"); + } + //查看绑定关系是否存在 + List toTaihumeds = courseToTaihumedService.list(new LambdaQueryWrapper() + .eq(CourseToTaihumed::getTaihumedId, params.get("id"))); + for (CourseToTaihumed toTaihumed:toTaihumeds){ + CourseEntity c = courseService.getById(toTaihumed.getCourseId()); + if (c!=null){ + return R.error(502,"删除失败,请先解绑课程与医学标签的绑定关系"); + }else { + courseToTaihumedService.removeById(toTaihumed.getId()); + } + } + courseTaihumedService.removeById(params.get("id").toString()); + return R.ok(); + } + + @RequestMapping("/editCourseTaihumed") + public R editCourseTaihumed(@RequestBody CourseTaihumed courseTaihumed){ + CourseTaihumed old = courseTaihumedService.getById(courseTaihumed.getId()); + if(old.getIsLast()==0&& courseTaihumed.getIsLast()==1){ + CourseTaihumed one = courseTaihumedService.getOne(new LambdaQueryWrapper() + .eq(CourseTaihumed::getPid, courseTaihumed.getId())); + if(one!=null){ + return R.error(501,"更新失败,请先清空此项的下级标签,才能将此标签变成终极标签"); + } + } + if(old.getIsLast()==1&& courseTaihumed.getIsLast()==0){ + Integer integer = courseToTaihumedService.count(new LambdaQueryWrapper() + .eq(CourseToTaihumed::getTaihumedId, courseTaihumed.getId())); + if(integer>0){ + return R.error(502,"更新失败,请先把此项与课程的关联关系清空后才可把此标签变成普通标签"); + } + } + courseTaihumedService.updateById(courseTaihumed); + return R.ok().put("courseTaihumed", courseTaihumed); + } + + @RequestMapping("/getCourseListForTaihumed") + public R getCourseListForMedical(@RequestBody Map params){ + MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); + wrapper.selectAll(CourseEntity.class); + wrapper.selectAs(CourseToTaihumed::getId,"bindId"); + wrapper.selectAs(CourseToTaihumed::getSort,"toSociologySort"); + wrapper.selectAs(CourseToTaihumed::getLevel,"level"); + wrapper.selectAs(CourseToTaihumed::getSelective,"selective"); + wrapper.leftJoin(CourseEntity.class,CourseEntity::getId, CourseToTaihumed::getCourseId); + wrapper.eq(CourseToTaihumed::getTaihumedId,params.get("taihumedId")); + wrapper.orderByAsc(CourseToTaihumed::getSort); + List courseEntities = courseToTaihumedService.listObjs(wrapper); + return R.ok().put("courseList",courseEntities); + } + + @RequestMapping("/getCourseListCanTaihumed") + public R getCourseListCanTaihumed(@RequestBody ParamTo param){ + List collect = courseToTaihumedService.list(new LambdaQueryWrapper() + .eq(CourseToTaihumed::getTaihumedId, param.getId())) + .stream().map(CourseToTaihumed::getCourseId).collect(Collectors.toList()); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + if (collect.size() != 0){ + wrapper.notIn(CourseEntity::getId,collect); + } + wrapper.like(StringUtils.isNotBlank(param.getKeywords()),CourseEntity::getTitle,param.getKeywords()); + Page page = courseService.page(new Page<>(param.getPage(), param.getLimit()), wrapper); + return R.ok().put("page",page); + } + + @RequestMapping("/bindCourseAndTaihumed") + public R bindCourseAndTaihumed(@RequestBody CourseToTaihumed courseToTaihumed){ + //去重 + CourseToTaihumed one = courseToTaihumedService.getOne(new LambdaQueryWrapper() + .eq(CourseToTaihumed::getCourseId, courseToTaihumed.getCourseId()) + .eq(CourseToTaihumed::getTaihumedId, courseToTaihumed.getTaihumedId())); + if(one != null){ + return R.error(501,"绑定失败,绑定关系已将存在"); + } + courseToTaihumedService.save(courseToTaihumed); + return R.ok(); + } + + @RequestMapping("/unbindCourseAndTaihumed") + public R unbindCourseAndTaihumed(@RequestBody CourseToTaihumed courseToTaihumed){ + boolean b = courseToTaihumedService.removeById(courseToTaihumed.getId()); + if(b){ + return R.ok(); + }else { + return R.error("error"); + } + } + + @RequestMapping("/updateCourseToTaihumedSort") + public R updateCourseToTaihumedSort(@RequestBody CourseToTaihumed courseToTaihumed){ + courseToTaihumedService.updateById(courseToTaihumed); + return R.ok(); + } + + + + + + private List courseTaihumeds(int id){ + List list = courseTaihumedService.list(new LambdaQueryWrapper().eq(CourseTaihumed::getPid, id)); + for (CourseTaihumed c : list){ + if(c.getIsLast()!=1){ + List so = this.courseTaihumeds(c.getId()); + c.setChildren(so); + } + } + return list; + } + + +}