From 0a8db2b2cc90741fb5d7cb7ae925c008359cbc6c Mon Sep 17 00:00:00 2001 From: wangjinlei <751475802@qq.com> Date: Thu, 21 Mar 2024 16:26:13 +0800 Subject: [PATCH] 1 --- .../modules/common/dao/CourseCategoryDao.java | 9 ++ .../peanut/modules/common/dao/CourseDao.java | 9 ++ .../common/dao/CourseSociologyDao.java | 9 ++ .../common/dao/CourseToCategoryDao.java | 9 ++ .../common/dao/CourseToSociologyDao.java | 9 ++ .../common/entity/CourseCategoryEntity.java | 31 ++++++ .../modules/common/entity/CourseEntity.java | 26 +++++ .../common/entity/CourseSociologyEntity.java | 27 +++++ .../common/entity/CourseToCategoryEntity.java | 24 ++++ .../entity/CourseToSociologyEntity.java | 24 ++++ .../master/controller/CourseController.java | 28 +++++ .../modules/master/service/CourseService.java | 12 ++ .../service/impl/CourseServiceImpl.java | 104 ++++++++++++++++++ .../medical/controller/CourseController.java | 7 ++ .../controller/CourseController.java | 2 +- 15 files changed, 329 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/peanut/modules/common/dao/CourseCategoryDao.java create mode 100644 src/main/java/com/peanut/modules/common/dao/CourseDao.java create mode 100644 src/main/java/com/peanut/modules/common/dao/CourseSociologyDao.java create mode 100644 src/main/java/com/peanut/modules/common/dao/CourseToCategoryDao.java create mode 100644 src/main/java/com/peanut/modules/common/dao/CourseToSociologyDao.java create mode 100644 src/main/java/com/peanut/modules/common/entity/CourseCategoryEntity.java create mode 100644 src/main/java/com/peanut/modules/common/entity/CourseEntity.java create mode 100644 src/main/java/com/peanut/modules/common/entity/CourseSociologyEntity.java create mode 100644 src/main/java/com/peanut/modules/common/entity/CourseToCategoryEntity.java create mode 100644 src/main/java/com/peanut/modules/common/entity/CourseToSociologyEntity.java create mode 100644 src/main/java/com/peanut/modules/master/controller/CourseController.java create mode 100644 src/main/java/com/peanut/modules/master/service/CourseService.java create mode 100644 src/main/java/com/peanut/modules/master/service/impl/CourseServiceImpl.java diff --git a/src/main/java/com/peanut/modules/common/dao/CourseCategoryDao.java b/src/main/java/com/peanut/modules/common/dao/CourseCategoryDao.java new file mode 100644 index 00000000..9ccd7b43 --- /dev/null +++ b/src/main/java/com/peanut/modules/common/dao/CourseCategoryDao.java @@ -0,0 +1,9 @@ +package com.peanut.modules.common.dao; + +import com.github.yulichang.base.MPJBaseMapper; +import com.peanut.modules.common.entity.CourseCategoryEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface CourseCategoryDao extends MPJBaseMapper { +} diff --git a/src/main/java/com/peanut/modules/common/dao/CourseDao.java b/src/main/java/com/peanut/modules/common/dao/CourseDao.java new file mode 100644 index 00000000..24f169b2 --- /dev/null +++ b/src/main/java/com/peanut/modules/common/dao/CourseDao.java @@ -0,0 +1,9 @@ +package com.peanut.modules.common.dao; + +import com.github.yulichang.base.MPJBaseMapper; +import com.peanut.modules.common.entity.CourseEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface CourseDao extends MPJBaseMapper { +} diff --git a/src/main/java/com/peanut/modules/common/dao/CourseSociologyDao.java b/src/main/java/com/peanut/modules/common/dao/CourseSociologyDao.java new file mode 100644 index 00000000..3ba9774f --- /dev/null +++ b/src/main/java/com/peanut/modules/common/dao/CourseSociologyDao.java @@ -0,0 +1,9 @@ +package com.peanut.modules.common.dao; + +import com.github.yulichang.base.MPJBaseMapper; +import com.peanut.modules.common.entity.CourseSociologyEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface CourseSociologyDao extends MPJBaseMapper { +} diff --git a/src/main/java/com/peanut/modules/common/dao/CourseToCategoryDao.java b/src/main/java/com/peanut/modules/common/dao/CourseToCategoryDao.java new file mode 100644 index 00000000..dcbb88f1 --- /dev/null +++ b/src/main/java/com/peanut/modules/common/dao/CourseToCategoryDao.java @@ -0,0 +1,9 @@ +package com.peanut.modules.common.dao; + +import com.github.yulichang.base.MPJBaseMapper; +import com.peanut.modules.common.entity.CourseToCategoryEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface CourseToCategoryDao extends MPJBaseMapper { + } diff --git a/src/main/java/com/peanut/modules/common/dao/CourseToSociologyDao.java b/src/main/java/com/peanut/modules/common/dao/CourseToSociologyDao.java new file mode 100644 index 00000000..004595e6 --- /dev/null +++ b/src/main/java/com/peanut/modules/common/dao/CourseToSociologyDao.java @@ -0,0 +1,9 @@ +package com.peanut.modules.common.dao; + +import com.github.yulichang.base.MPJBaseMapper; +import com.peanut.modules.common.entity.CourseToSociologyEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface CourseToSociologyDao extends MPJBaseMapper { +} diff --git a/src/main/java/com/peanut/modules/common/entity/CourseCategoryEntity.java b/src/main/java/com/peanut/modules/common/entity/CourseCategoryEntity.java new file mode 100644 index 00000000..78114dee --- /dev/null +++ b/src/main/java/com/peanut/modules/common/entity/CourseCategoryEntity.java @@ -0,0 +1,31 @@ +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_category") +public class CourseCategoryEntity { + + @TableId + private Integer id; + + private Integer pid; + + private String uid; + + private String title; + + private Integer isLast; + + private Integer sort; + + private Date createTime; + + @TableLogic + private Integer delFlag; +} diff --git a/src/main/java/com/peanut/modules/common/entity/CourseEntity.java b/src/main/java/com/peanut/modules/common/entity/CourseEntity.java new file mode 100644 index 00000000..aaea9ece --- /dev/null +++ b/src/main/java/com/peanut/modules/common/entity/CourseEntity.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") +public class CourseEntity { + + @TableId + private Integer id; + + private String uid; + + private String title; + + private Date createTime; + + @TableLogic + private Integer delFlag; +} diff --git a/src/main/java/com/peanut/modules/common/entity/CourseSociologyEntity.java b/src/main/java/com/peanut/modules/common/entity/CourseSociologyEntity.java new file mode 100644 index 00000000..f1594e7c --- /dev/null +++ b/src/main/java/com/peanut/modules/common/entity/CourseSociologyEntity.java @@ -0,0 +1,27 @@ +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_sociology") +public class CourseSociologyEntity { + + @TableId + private Integer id; + + private Integer pid; + + private Integer isLast; + + private String title; + + private Date createTime; + + @TableLogic + private Integer delFlag; +} diff --git a/src/main/java/com/peanut/modules/common/entity/CourseToCategoryEntity.java b/src/main/java/com/peanut/modules/common/entity/CourseToCategoryEntity.java new file mode 100644 index 00000000..452cddd2 --- /dev/null +++ b/src/main/java/com/peanut/modules/common/entity/CourseToCategoryEntity.java @@ -0,0 +1,24 @@ +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_category") +public class CourseToCategoryEntity { + @TableId + private Integer id; + + private Integer courseId; + + private Integer categoryId; + + private Date createTime; + + @TableLogic + private Integer delFlag; +} diff --git a/src/main/java/com/peanut/modules/common/entity/CourseToSociologyEntity.java b/src/main/java/com/peanut/modules/common/entity/CourseToSociologyEntity.java new file mode 100644 index 00000000..863cd9f4 --- /dev/null +++ b/src/main/java/com/peanut/modules/common/entity/CourseToSociologyEntity.java @@ -0,0 +1,24 @@ +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_sociology") +public class CourseToSociologyEntity { + @TableId + private Integer id; + + private Integer courseId; + + private Integer sociologyId; + + private Date createTime; + + @TableLogic + private Integer delFlag; +} diff --git a/src/main/java/com/peanut/modules/master/controller/CourseController.java b/src/main/java/com/peanut/modules/master/controller/CourseController.java new file mode 100644 index 00000000..b06024cb --- /dev/null +++ b/src/main/java/com/peanut/modules/master/controller/CourseController.java @@ -0,0 +1,28 @@ +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.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.Map; + +@Slf4j +@RestController("masterCourse") +@RequestMapping("master/course") +public class CourseController { + + @Autowired + private CourseService courseService; + + @RequestMapping("/getCourseList") + public R getCourseList(@RequestBody Map map){ + Page courseList = courseService.getCourseList(map); + return R.ok().put("page",courseList); + } +} diff --git a/src/main/java/com/peanut/modules/master/service/CourseService.java b/src/main/java/com/peanut/modules/master/service/CourseService.java new file mode 100644 index 00000000..ccda7bcd --- /dev/null +++ b/src/main/java/com/peanut/modules/master/service/CourseService.java @@ -0,0 +1,12 @@ +package com.peanut.modules.master.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.peanut.modules.common.entity.CourseEntity; + +import java.util.Map; + +public interface CourseService extends IService { + + Page getCourseList(Map map); +} 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 new file mode 100644 index 00000000..3857176e --- /dev/null +++ b/src/main/java/com/peanut/modules/master/service/impl/CourseServiceImpl.java @@ -0,0 +1,104 @@ +package com.peanut.modules.master.service.impl; + +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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.peanut.modules.common.dao.*; +import com.peanut.modules.common.entity.*; +import com.peanut.modules.master.service.CourseService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +@Service("masterCourseService") +public class CourseServiceImpl extends ServiceImpl implements CourseService { + @Autowired + private CourseCategoryDao courseCategoryDao; + @Autowired + private CourseToCategoryDao courseToCategoryDao; + @Autowired + private CourseSociologyDao courseSociologyDao; + @Autowired + private CourseToSociologyDao courseToSociologyDao; + + @Override + public Page getCourseList(Map map) { + Integer limit = Integer.valueOf(map.get("limit").toString()); + Integer page = Integer.valueOf(map.get("page").toString()); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + if(map.get("type").toString().equals("1")){ + Integer categoryId = Integer.valueOf(map.get("categoryId").toString()); + List collect; + if(categoryId==0){ + LambdaQueryWrapper courseCategoryEntityLambdaQueryWrapper = new LambdaQueryWrapper<>(); + courseCategoryEntityLambdaQueryWrapper.eq(CourseCategoryEntity::getIsLast,1); + collect = courseCategoryDao.selectList(courseCategoryEntityLambdaQueryWrapper).stream().map(CourseCategoryEntity::getId).collect(Collectors.toList()); + }else{ + collect = this.categoryIds(categoryId); + } + if(collect.size()>0){ + List collect1 = courseToCategoryDao.selectList(new LambdaQueryWrapper().in(CourseToCategoryEntity::getCategoryId, collect)).stream().map(CourseToCategoryEntity::getCourseId).collect(Collectors.toList()); + wrapper.in(collect1.size()>0,CourseEntity::getId,collect1); + }else{ + return null; + } + } else if (map.get("type").toString().equals("2")) { + Integer sociologyId = Integer.valueOf(map.get("sociologyId").toString()); + List c; + if(sociologyId==0){ + c = courseSociologyDao.selectList(new LambdaQueryWrapper().eq(CourseSociologyEntity::getIsLast,1)).stream().map(CourseSociologyEntity::getId).collect(Collectors.toList()); + }else{ + c = this.sociologyIds(sociologyId); + } + if(c.size()>0){ + List collect = courseToSociologyDao.selectList(new LambdaQueryWrapper().in(CourseToSociologyEntity::getSociologyId, c)).stream().map(CourseToSociologyEntity::getCourseId).collect(Collectors.toList()); + wrapper.in(collect.size()>0,CourseEntity::getId,collect); + }else{ + return null; + } + } + wrapper.like(CourseEntity::getTitle,map.get("keywords").toString()); + Page courseEntityPage = this.getBaseMapper().selectPage(new Page<>(page, limit), wrapper); + + return courseEntityPage; + } + + private List categoryIds(Integer id){ + ArrayList integers = new ArrayList<>(); + CourseCategoryEntity courseCategoryEntity = courseCategoryDao.selectById(id); + if(courseCategoryEntity.getIsLast()==1){ + integers.add(id); + }else{ + List courseCategoryEntities = courseCategoryDao.selectList(new LambdaQueryWrapper().eq(CourseCategoryEntity::getPid, id)); + for (CourseCategoryEntity c : courseCategoryEntities ){ + List integers1 = this.categoryIds(c.getId()); + integers.addAll(integers1); + } + } + return integers; + } + + private List sociologyIds(Integer id){ + ArrayList integers = new ArrayList<>(); + CourseSociologyEntity courseSociologyEntity = courseSociologyDao.selectById(id); + if(courseSociologyEntity.getIsLast()==1){ + integers.add(id); + }else{ + List courseSociologyEntities = courseSociologyDao.selectList(new LambdaQueryWrapper().eq(CourseSociologyEntity::getPid, id)); + for (CourseSociologyEntity c : courseSociologyEntities ){ + List integers1 = this.sociologyIds(c.getId()); + integers.addAll(integers1); + } + } + return integers; + } + + +} diff --git a/src/main/java/com/peanut/modules/medical/controller/CourseController.java b/src/main/java/com/peanut/modules/medical/controller/CourseController.java index f1c66dea..bcb00083 100644 --- a/src/main/java/com/peanut/modules/medical/controller/CourseController.java +++ b/src/main/java/com/peanut/modules/medical/controller/CourseController.java @@ -1,4 +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("medicalCourse") +@RequestMapping("medical/course") public class CourseController { } diff --git a/src/main/java/com/peanut/modules/sociology/controller/CourseController.java b/src/main/java/com/peanut/modules/sociology/controller/CourseController.java index 06d47dd0..457aaa0e 100644 --- a/src/main/java/com/peanut/modules/sociology/controller/CourseController.java +++ b/src/main/java/com/peanut/modules/sociology/controller/CourseController.java @@ -5,7 +5,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @Slf4j -@RestController +@RestController("sociologyCourse") @RequestMapping("sociology/course") public class CourseController {