diff --git a/src/main/java/com/peanut/modules/medical/controller/HomeController.java b/src/main/java/com/peanut/modules/medical/controller/HomeController.java index 7106f86a..a734538b 100644 --- a/src/main/java/com/peanut/modules/medical/controller/HomeController.java +++ b/src/main/java/com/peanut/modules/medical/controller/HomeController.java @@ -32,8 +32,15 @@ public class HomeController { //获取医学标签列表 @RequestMapping("/getMedicalLabels") public R getMedicalLabels(@RequestBody ParamTo param){ - List sociologyLabels = medicalService.getMedicalLabels(param.getId()); - return R.ok().put("labels",sociologyLabels); + List medicalLabels = medicalService.getMedicalLabels(param.getId()); + return R.ok().put("labels",medicalLabels); + } + + //获取医学标签树 + @RequestMapping("/getCourseMedicalTree") + public R getCourseMedicalTree(){ + List labelsTree = medicalService.getCourseMedicalTree(); + return R.ok().put("labels",labelsTree); } //获取医学标签下的课程列表 diff --git a/src/main/java/com/peanut/modules/medical/service/CourseMedicalService.java b/src/main/java/com/peanut/modules/medical/service/CourseMedicalService.java index eefec004..e8c4fd96 100644 --- a/src/main/java/com/peanut/modules/medical/service/CourseMedicalService.java +++ b/src/main/java/com/peanut/modules/medical/service/CourseMedicalService.java @@ -8,4 +8,6 @@ import java.util.List; public interface CourseMedicalService extends IService { List getMedicalLabels(Integer id); + + List getCourseMedicalTree(); } diff --git a/src/main/java/com/peanut/modules/medical/service/impl/CourseMedicalServiceImpl.java b/src/main/java/com/peanut/modules/medical/service/impl/CourseMedicalServiceImpl.java index 0cd67ee1..59f6c440 100644 --- a/src/main/java/com/peanut/modules/medical/service/impl/CourseMedicalServiceImpl.java +++ b/src/main/java/com/peanut/modules/medical/service/impl/CourseMedicalServiceImpl.java @@ -1,6 +1,7 @@ package com.peanut.modules.medical.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.peanut.modules.common.dao.CourseMedicineDao; import com.peanut.modules.common.entity.CourseMedicine; @@ -8,6 +9,7 @@ import com.peanut.modules.medical.service.CourseMedicalService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.List; +import java.util.stream.Collectors; @Slf4j @Service("medicineCourseMedicalService") @@ -21,4 +23,31 @@ public class CourseMedicalServiceImpl extends ServiceImpl list = this.list(wrapper); return list; } + + @Override + public List getCourseMedicalTree() { + List medicines = this.list(new QueryWrapper<>()); + List medicinesTree = medicines.stream().filter((courseMarketEntity) -> + courseMarketEntity.getPid() == 0 + ).map((medicine)->{ + medicine.setChildren(getMedicineChildrens(medicine,medicines)); + return medicine; + }).sorted((sort1,sort2)->{ + return (sort1.getSort() == null? 0 : sort1.getSort()) - (sort2.getSort()==null?0:sort2.getSort()); + }).collect(Collectors.toList()); + return medicinesTree; + } + + private List getMedicineChildrens(CourseMedicine root, List all){ + List children = all.stream().filter(courseMedicine -> { + return root.getId().equals(courseMedicine.getPid()); + }).map(courseMedicine -> { + courseMedicine.setChildren(getMedicineChildrens(courseMedicine, all)); + return courseMedicine; + }).sorted((sort1,sort2)->{ + return (sort1.getSort()==null?0:sort1.getSort()) - (sort2.getSort()==null?0:sort2.getSort()); + }).collect(Collectors.toList()); + return children; + } + }