From 17700e5b841481ebcb5fac68b0e6e09e3b5ae014 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Thu, 16 May 2024 15:34:05 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E5=8C=BB=E5=AD=A6=E6=A0=87?= =?UTF-8?q?=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/common/dao/CourseMedicalDao.java | 9 ++ .../common/dao/CourseToMedicalDao.java | 9 ++ .../modules/common/entity/CourseMedical.java | 33 +++++++ .../common/entity/CourseToMedical.java | 26 ++++++ .../controller/CourseMedicalController.java | 87 +++++++++++++++++++ .../master/service/CourseMedicalService.java | 14 +++ .../modules/master/service/CourseService.java | 4 + .../service/CourseToMedicalService.java | 10 +++ .../impl/CourseMedicalServiceImpl.java | 74 ++++++++++++++++ .../service/impl/CourseServiceImpl.java | 29 +++++++ .../impl/CourseToMedicalServiceImpl.java | 13 +++ .../controller/CourseMedicalController.java | 11 +++ .../MedicalLabelAndMarketController.java | 14 +++ 13 files changed, 333 insertions(+) create mode 100644 src/main/java/com/peanut/modules/common/dao/CourseMedicalDao.java create mode 100644 src/main/java/com/peanut/modules/common/dao/CourseToMedicalDao.java create mode 100644 src/main/java/com/peanut/modules/common/entity/CourseMedical.java create mode 100644 src/main/java/com/peanut/modules/common/entity/CourseToMedical.java create mode 100644 src/main/java/com/peanut/modules/master/controller/CourseMedicalController.java create mode 100644 src/main/java/com/peanut/modules/master/service/CourseMedicalService.java create mode 100644 src/main/java/com/peanut/modules/master/service/CourseToMedicalService.java create mode 100644 src/main/java/com/peanut/modules/master/service/impl/CourseMedicalServiceImpl.java create mode 100644 src/main/java/com/peanut/modules/master/service/impl/CourseToMedicalServiceImpl.java create mode 100644 src/main/java/com/peanut/modules/medical/controller/CourseMedicalController.java create mode 100644 src/main/java/com/peanut/modules/medical/controller/MedicalLabelAndMarketController.java diff --git a/src/main/java/com/peanut/modules/common/dao/CourseMedicalDao.java b/src/main/java/com/peanut/modules/common/dao/CourseMedicalDao.java new file mode 100644 index 00000000..d8df260f --- /dev/null +++ b/src/main/java/com/peanut/modules/common/dao/CourseMedicalDao.java @@ -0,0 +1,9 @@ +package com.peanut.modules.common.dao; + +import com.github.yulichang.base.MPJBaseMapper; +import com.peanut.modules.common.entity.CourseMedical; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface CourseMedicalDao extends MPJBaseMapper { +} diff --git a/src/main/java/com/peanut/modules/common/dao/CourseToMedicalDao.java b/src/main/java/com/peanut/modules/common/dao/CourseToMedicalDao.java new file mode 100644 index 00000000..ee29802a --- /dev/null +++ b/src/main/java/com/peanut/modules/common/dao/CourseToMedicalDao.java @@ -0,0 +1,9 @@ +package com.peanut.modules.common.dao; + +import com.github.yulichang.base.MPJBaseMapper; +import com.peanut.modules.common.entity.CourseToMedical; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface CourseToMedicalDao extends MPJBaseMapper { +} diff --git a/src/main/java/com/peanut/modules/common/entity/CourseMedical.java b/src/main/java/com/peanut/modules/common/entity/CourseMedical.java new file mode 100644 index 00000000..16a7d132 --- /dev/null +++ b/src/main/java/com/peanut/modules/common/entity/CourseMedical.java @@ -0,0 +1,33 @@ +package com.peanut.modules.common.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import java.util.Date; +import java.util.List; + +@Data +@TableName("course_medical") +public class CourseMedical { + + @TableId + private Integer id; + + private Integer pid; + + private Integer isLast; + + private String title; + + private Integer sort; + + private Date createTime; + + @TableLogic + private Integer delFlag; + + @TableField(exist = false) + private List children; +} \ No newline at end of file diff --git a/src/main/java/com/peanut/modules/common/entity/CourseToMedical.java b/src/main/java/com/peanut/modules/common/entity/CourseToMedical.java new file mode 100644 index 00000000..f2aa637a --- /dev/null +++ b/src/main/java/com/peanut/modules/common/entity/CourseToMedical.java @@ -0,0 +1,26 @@ +package com.peanut.modules.common.entity; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +@Data +@TableName("course_to_medical") +public class CourseToMedical { + @TableId + private Integer id; + + private Integer courseId; + + private Integer medicalId; + + private Integer sort; + + private Date createTime; + + @TableLogic + private Integer delFlag; +} diff --git a/src/main/java/com/peanut/modules/master/controller/CourseMedicalController.java b/src/main/java/com/peanut/modules/master/controller/CourseMedicalController.java new file mode 100644 index 00000000..c2ac455a --- /dev/null +++ b/src/main/java/com/peanut/modules/master/controller/CourseMedicalController.java @@ -0,0 +1,87 @@ +package com.peanut.modules.master.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.peanut.common.utils.R; +import com.peanut.modules.common.entity.CourseEntity; +import com.peanut.modules.common.entity.CourseMedical; +import com.peanut.modules.common.entity.CourseToMedical; +import com.peanut.modules.common.to.ParamTo; +import com.peanut.modules.master.service.CourseMedicalService; +import com.peanut.modules.master.service.CourseService; +import com.peanut.modules.master.service.CourseToMedicalService; +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; + +//课程医学标签管理 +@Slf4j +@RestController("masterCourseMedical") +@RequestMapping("master/courseMedical") +public class CourseMedicalController { + @Autowired + private CourseMedicalService medicalService; + @Autowired + private CourseToMedicalService toMedicalService; + @Autowired + private CourseService courseService; + + @RequestMapping("/getCourseMedicalList") + public R getCourseMedicalList(){ + List courseMedicalList = medicalService.getCourseMedicalList(); + return R.ok().put("Medicals",courseMedicalList); + } + + @RequestMapping("/addCourseMedical") + public R addCourseMedical(@RequestBody CourseMedical courseMedical){ + medicalService.save(courseMedical); + return R.ok().put("Medical",courseMedical); + } + + @RequestMapping("/delCourseMedical") + public R delCourseMedical(@RequestBody ParamTo param){ + return medicalService.delCourseMedical(param.getId()); + } + + @RequestMapping("/editCourseMedical") + public R editCourseMedical(@RequestBody CourseMedical courseMedical){ + return medicalService.editCourseMedical(courseMedical); + } + + @RequestMapping("/getCourseListForMedical") + public R getCourseListForMedical(@RequestBody ParamTo param){ + List courseListForMedical = courseService.getCourseListForMedical(param.getId()); + return R.ok().put("courseList",courseListForMedical); + } + + @RequestMapping("/getCourseListCanMedical") + public R getCourseListCanMedical(@RequestBody ParamTo param){ + Page courseListCanMedical = courseService.getCourseListCanMedical(param); + return R.ok().put("page",courseListCanMedical); + } + + @RequestMapping("/bindCourseAndMedical") + public R bindCourseAndMedical(@RequestBody CourseToMedical toMedical){ + return toMedicalService.bindCourseAndMedical(toMedical); + } + + @RequestMapping("/unbindCourseAndMedical") + public R unbindCourseAndMedical(@RequestBody CourseToMedical toMedical){ + boolean b = toMedicalService.removeById(toMedical.getId()); + if(b){ + return R.ok(); + }else { + return R.error("error"); + } + } + + @RequestMapping("/updateCourseToMedicalSort") + public R updateCourseToMedicalSort(@RequestBody CourseToMedical toMedical){ + toMedicalService.updateById(toMedical); + return R.ok(); + } + + +} diff --git a/src/main/java/com/peanut/modules/master/service/CourseMedicalService.java b/src/main/java/com/peanut/modules/master/service/CourseMedicalService.java new file mode 100644 index 00000000..71f75c28 --- /dev/null +++ b/src/main/java/com/peanut/modules/master/service/CourseMedicalService.java @@ -0,0 +1,14 @@ +package com.peanut.modules.master.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.peanut.common.utils.R; +import com.peanut.modules.common.entity.CourseMedical; +import java.util.List; + +public interface CourseMedicalService extends IService { + List getCourseMedicalList(); + + R delCourseMedical(int id); + + R editCourseMedical(CourseMedical courseMedical); +} diff --git a/src/main/java/com/peanut/modules/master/service/CourseService.java b/src/main/java/com/peanut/modules/master/service/CourseService.java index 098115a5..d5d77421 100644 --- a/src/main/java/com/peanut/modules/master/service/CourseService.java +++ b/src/main/java/com/peanut/modules/master/service/CourseService.java @@ -19,5 +19,9 @@ public interface CourseService extends IService { Page getCourseListCanSociology(ParamTo param); + List getCourseListForMedical(int medicalId); + + Page getCourseListCanMedical(ParamTo param); + void testCourse(); } diff --git a/src/main/java/com/peanut/modules/master/service/CourseToMedicalService.java b/src/main/java/com/peanut/modules/master/service/CourseToMedicalService.java new file mode 100644 index 00000000..435a2fe2 --- /dev/null +++ b/src/main/java/com/peanut/modules/master/service/CourseToMedicalService.java @@ -0,0 +1,10 @@ +package com.peanut.modules.master.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.peanut.common.utils.R; +import com.peanut.modules.common.entity.CourseToMedical; + +public interface CourseToMedicalService extends IService { + + R bindCourseAndMedical(CourseToMedical toMedical); +} diff --git a/src/main/java/com/peanut/modules/master/service/impl/CourseMedicalServiceImpl.java b/src/main/java/com/peanut/modules/master/service/impl/CourseMedicalServiceImpl.java new file mode 100644 index 00000000..1bff6e88 --- /dev/null +++ b/src/main/java/com/peanut/modules/master/service/impl/CourseMedicalServiceImpl.java @@ -0,0 +1,74 @@ +package com.peanut.modules.master.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.peanut.common.utils.R; +import com.peanut.modules.common.dao.CourseMedicalDao; +import com.peanut.modules.common.dao.CourseToMedicalDao; +import com.peanut.modules.common.entity.CourseMedical; +import com.peanut.modules.common.entity.CourseToMedical; +import com.peanut.modules.master.service.CourseMedicalService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Slf4j +@Service("masterCourseMedicalService") +public class CourseMedicalServiceImpl extends ServiceImpl implements CourseMedicalService { + + @Autowired + private CourseToMedicalDao toMedicalDao; + + @Override + public List getCourseMedicalList() { + return this.medicals(0); + } + + @Override + public R delCourseMedical(int id) { + //查看下一级是否存在 + int count = this.count(new LambdaQueryWrapper().eq(CourseMedical::getPid, id)); + if(count>0){ + return R.error(501,"删除失败,请先删除子项目后再尝试"); + } + //查看绑定关系是否存在 + Integer integer = toMedicalDao.selectCount(new LambdaQueryWrapper().eq(CourseToMedical::getMedicalId, id)); + if(integer>0){ + return R.error(502,"删除失败,请先解绑课程与国学标签的绑定关系"); + } + this.removeById(id); + return R.ok(); + } + + @Override + public R editCourseMedical(CourseMedical courseMedical) { + CourseMedical old = this.getById(courseMedical.getId()); + if(old.getIsLast()==0&&courseMedical.getIsLast()==1){ + CourseMedical one = this.getOne(new LambdaQueryWrapper().eq(CourseMedical::getPid, courseMedical.getId())); + if(one!=null){ + return R.error(501,"更新失败,请先清空此项的下级标签,才能将此标签变成终极标签"); + } + } + if(old.getIsLast()==1&&courseMedical.getIsLast()==0){ + CourseToMedical courseToSociologyEntity = toMedicalDao.selectOne(new LambdaQueryWrapper().eq(CourseToMedical::getMedicalId, courseMedical.getId())); + if(courseToSociologyEntity!=null){ + return R.error(502,"更新失败,请先把此项与课程的关联关系清空后才可把此标签变成普通标签"); + } + } + this.updateById(courseMedical); + return R.ok().put("sociology",courseMedical); + } + + private List medicals(int id){ + List list = this.list(new LambdaQueryWrapper().eq(CourseMedical::getPid, id)); + for (CourseMedical c : list){ + if(c.getIsLast()!=1){ + List so = this.medicals(c.getId()); + c.setChildren(so); + } + } + return list; + } +} diff --git a/src/main/java/com/peanut/modules/master/service/impl/CourseServiceImpl.java b/src/main/java/com/peanut/modules/master/service/impl/CourseServiceImpl.java index 37b27c4d..0d57c4ff 100644 --- a/src/main/java/com/peanut/modules/master/service/impl/CourseServiceImpl.java +++ b/src/main/java/com/peanut/modules/master/service/impl/CourseServiceImpl.java @@ -32,6 +32,10 @@ public class CourseServiceImpl extends ServiceImpl impl @Autowired private CourseToSociologyDao courseToSociologyDao; @Autowired + private CourseMedicalDao medicalDao; + @Autowired + private CourseToMedicalDao toMedicalDao; + @Autowired private CourseCatalogueDao courseCatalogueDao; @Autowired private ShopProductDao shopProductDao; @@ -123,6 +127,31 @@ public class CourseServiceImpl extends ServiceImpl impl return page; } + @Override + public List getCourseListForMedical(int medicalId) { + MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); + wrapper.selectAll(CourseEntity.class); + wrapper.selectAs(CourseToMedical::getId,"bindId"); + wrapper.selectAs(CourseToMedical::getSort,"toSociologySort"); + wrapper.leftJoin(CourseEntity.class,CourseEntity::getId,CourseToMedical::getCourseId); + wrapper.eq(CourseToMedical::getMedicalId,medicalId); + wrapper.orderByAsc(CourseToMedical::getSort); + List courseEntities = toMedicalDao.selectJoinList(CourseEntity.class, wrapper); + return courseEntities; + } + + @Override + public Page getCourseListCanMedical(ParamTo param) { + List collect = toMedicalDao.selectList(new LambdaQueryWrapper().eq(CourseToMedical::getMedicalId, param.getId())).stream().map(CourseToMedical::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 = this.page(new Page<>(param.getPage(), param.getLimit()), wrapper); + return page; + } + @Override public void testCourse() { diff --git a/src/main/java/com/peanut/modules/master/service/impl/CourseToMedicalServiceImpl.java b/src/main/java/com/peanut/modules/master/service/impl/CourseToMedicalServiceImpl.java new file mode 100644 index 00000000..552f157b --- /dev/null +++ b/src/main/java/com/peanut/modules/master/service/impl/CourseToMedicalServiceImpl.java @@ -0,0 +1,13 @@ +package com.peanut.modules.master.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.peanut.modules.common.dao.CourseToMedicalDao; +import com.peanut.modules.common.entity.CourseToMedical; +import com.peanut.modules.master.service.CourseToMedicalService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +@Slf4j +@Service("masterCourseToMedicalService") +public class CourseToMedicalServiceImpl extends ServiceImpl implements CourseToMedicalService { +} diff --git a/src/main/java/com/peanut/modules/medical/controller/CourseMedicalController.java b/src/main/java/com/peanut/modules/medical/controller/CourseMedicalController.java new file mode 100644 index 00000000..798543d6 --- /dev/null +++ b/src/main/java/com/peanut/modules/medical/controller/CourseMedicalController.java @@ -0,0 +1,11 @@ +package com.peanut.modules.medical.controller; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Slf4j +@RestController("medicalCourseMedical") +@RequestMapping("medical/courseMedical") +public class CourseMedicalController { +} diff --git a/src/main/java/com/peanut/modules/medical/controller/MedicalLabelAndMarketController.java b/src/main/java/com/peanut/modules/medical/controller/MedicalLabelAndMarketController.java new file mode 100644 index 00000000..73902457 --- /dev/null +++ b/src/main/java/com/peanut/modules/medical/controller/MedicalLabelAndMarketController.java @@ -0,0 +1,14 @@ +package com.peanut.modules.medical.controller; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 医学课程和营销标签 + */ +@Slf4j +@RestController +@RequestMapping("book/labelAndMarket") +public class MedicalLabelAndMarketController { +}