From e616be7687a6d6a71febe9b6f440a5b72e0b20d6 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Thu, 16 May 2024 13:21:37 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=E4=B8=8B=E5=BE=97=E5=95=86=E5=93=81=E4=B9=A6=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BookLabelAndMarketController.java | 26 +++++++++++++++++++ .../common/entity/ShopProductToBookLabel.java | 2 ++ .../entity/ShopProductToBookMarket.java | 2 ++ 3 files changed, 30 insertions(+) diff --git a/src/main/java/com/peanut/modules/book/controller/BookLabelAndMarketController.java b/src/main/java/com/peanut/modules/book/controller/BookLabelAndMarketController.java index 23e0e580..b48b5b19 100644 --- a/src/main/java/com/peanut/modules/book/controller/BookLabelAndMarketController.java +++ b/src/main/java/com/peanut/modules/book/controller/BookLabelAndMarketController.java @@ -352,7 +352,33 @@ public class BookLabelAndMarketController { return R.ok(); } + /** + * 获取分类标签下得商品列表 + */ + @RequestMapping("/getShopProductListByLabelId") + public R getShopProductListByLabelId(String labelId){ + MPJLambdaWrapper wrapper = new MPJLambdaWrapper(); + wrapper.eq(ShopProductToBookLabel::getBookLabelId,labelId); + wrapper.leftJoin(ShopProduct.class,ShopProduct::getProductId,ShopProductToBookLabel::getProductId); + wrapper.selectAll(ShopProduct.class); + wrapper.orderByAsc(ShopProductToBookLabel::getSort); + List list = toLabelService.listMaps(wrapper); + return R.ok().put("result", list); + } + /** + * 获取营销标签下得商品列表 + */ + @RequestMapping("/getShopProductListByMarketId") + public R getShopProductListByMarketId(String marketId){ + MPJLambdaWrapper wrapper = new MPJLambdaWrapper(); + wrapper.eq(ShopProductToBookMarket::getBookMarketId,marketId); + wrapper.leftJoin(ShopProduct.class,ShopProduct::getProductId,ShopProductToBookMarket::getProductId); + wrapper.selectAll(ShopProduct.class); + wrapper.orderByAsc(ShopProductToBookMarket::getSort); + List list = toMarketService.listMaps(wrapper); + return R.ok().put("result", list); + } diff --git a/src/main/java/com/peanut/modules/common/entity/ShopProductToBookLabel.java b/src/main/java/com/peanut/modules/common/entity/ShopProductToBookLabel.java index 2cee2ba1..925e3d49 100644 --- a/src/main/java/com/peanut/modules/common/entity/ShopProductToBookLabel.java +++ b/src/main/java/com/peanut/modules/common/entity/ShopProductToBookLabel.java @@ -23,6 +23,8 @@ public class ShopProductToBookLabel implements Serializable { private Integer bookLabelId; + private Integer sort; + /** * 创建时间 */ diff --git a/src/main/java/com/peanut/modules/common/entity/ShopProductToBookMarket.java b/src/main/java/com/peanut/modules/common/entity/ShopProductToBookMarket.java index 41937587..ea0486e9 100644 --- a/src/main/java/com/peanut/modules/common/entity/ShopProductToBookMarket.java +++ b/src/main/java/com/peanut/modules/common/entity/ShopProductToBookMarket.java @@ -21,6 +21,8 @@ public class ShopProductToBookMarket implements Serializable { private Integer bookMarketId; + private Integer sort; + /** * 创建时间 */ From 17700e5b841481ebcb5fac68b0e6e09e3b5ae014 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Thu, 16 May 2024 15:34:05 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E5=8C=BB=E5=AD=A6?= =?UTF-8?q?=E6=A0=87=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 { +} From 4c8fff6bc01c3cea0a878e2728d08bb5ba329899 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Thu, 16 May 2024 15:39:11 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E5=8C=BB=E5=AD=A6?= =?UTF-8?q?=E6=A0=87=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CourseToMedicalServiceImpl.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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 index 552f157b..c9637d90 100644 --- a/src/main/java/com/peanut/modules/master/service/impl/CourseToMedicalServiceImpl.java +++ b/src/main/java/com/peanut/modules/master/service/impl/CourseToMedicalServiceImpl.java @@ -1,6 +1,8 @@ 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.CourseToMedicalDao; import com.peanut.modules.common.entity.CourseToMedical; import com.peanut.modules.master.service.CourseToMedicalService; @@ -10,4 +12,14 @@ import org.springframework.stereotype.Service; @Slf4j @Service("masterCourseToMedicalService") public class CourseToMedicalServiceImpl extends ServiceImpl implements CourseToMedicalService { + @Override + public R bindCourseAndMedical(CourseToMedical toMedical) { + //去重 + CourseToMedical one = this.getOne(new LambdaQueryWrapper().eq(CourseToMedical::getCourseId, toMedical.getCourseId()).eq(CourseToMedical::getMedicalId, toMedical.getMedicalId())); + if(one != null){ + return R.error(501,"绑定失败,绑定关系已将存在"); + } + this.save(toMedical); + return R.ok(); + } } From b50293835b4974868c3d7e12c5f2d9e1fe856abf Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Fri, 17 May 2024 09:58:34 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=90=B4=E9=97=A8=E5=8C=BB=E8=BF=B0-?= =?UTF-8?q?=E9=A6=96=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../medical/controller/CourseController.java | 10 +++ .../controller/CourseMedicalController.java | 11 --- .../medical/controller/HomeController.java | 74 +++++++++++++++++++ .../MedicalLabelAndMarketController.java | 55 +++++++++++++- .../medical/service/CourseMarketService.java | 11 +++ .../medical/service/CourseMedicalService.java | 11 +++ .../medical/service/CourseService.java | 16 +++- .../ShopProductMedicineLabelService.java | 4 + .../ShopProductMedicineMarketService.java | 4 + .../medical/service/ShopProductService.java | 7 ++ .../service/impl/CourseMarketServiceImpl.java | 47 ++++++++++++ .../impl/CourseMedicalServiceImpl.java | 24 ++++++ .../service/impl/CourseServiceImpl.java | 54 ++++++++++++++ .../ShopProductMedicineLabelServiceImpl.java | 34 +++++++++ .../ShopProductMedicineMarketServiceImpl.java | 34 +++++++++ .../service/impl/ShopProductServiceImpl.java | 13 ++++ 16 files changed, 396 insertions(+), 13 deletions(-) delete mode 100644 src/main/java/com/peanut/modules/medical/controller/CourseMedicalController.java create mode 100644 src/main/java/com/peanut/modules/medical/controller/HomeController.java create mode 100644 src/main/java/com/peanut/modules/medical/service/CourseMarketService.java create mode 100644 src/main/java/com/peanut/modules/medical/service/CourseMedicalService.java create mode 100644 src/main/java/com/peanut/modules/medical/service/ShopProductService.java create mode 100644 src/main/java/com/peanut/modules/medical/service/impl/CourseMarketServiceImpl.java create mode 100644 src/main/java/com/peanut/modules/medical/service/impl/CourseMedicalServiceImpl.java create mode 100644 src/main/java/com/peanut/modules/medical/service/impl/CourseServiceImpl.java create mode 100644 src/main/java/com/peanut/modules/medical/service/impl/ShopProductServiceImpl.java 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 bcb00083..4fe0a05c 100644 --- a/src/main/java/com/peanut/modules/medical/controller/CourseController.java +++ b/src/main/java/com/peanut/modules/medical/controller/CourseController.java @@ -1,11 +1,21 @@ package com.peanut.modules.medical.controller; +import com.peanut.common.utils.R; +import com.peanut.common.utils.ShiroUtils; +import com.peanut.modules.common.entity.CourseEntity; +import com.peanut.modules.common.to.ParamTo; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + @Slf4j @RestController("medicalCourse") @RequestMapping("medical/course") public class CourseController { + + + + } diff --git a/src/main/java/com/peanut/modules/medical/controller/CourseMedicalController.java b/src/main/java/com/peanut/modules/medical/controller/CourseMedicalController.java deleted file mode 100644 index 798543d6..00000000 --- a/src/main/java/com/peanut/modules/medical/controller/CourseMedicalController.java +++ /dev/null @@ -1,11 +0,0 @@ -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/HomeController.java b/src/main/java/com/peanut/modules/medical/controller/HomeController.java new file mode 100644 index 00000000..1d7dbc80 --- /dev/null +++ b/src/main/java/com/peanut/modules/medical/controller/HomeController.java @@ -0,0 +1,74 @@ +package com.peanut.modules.medical.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.peanut.common.utils.R; +import com.peanut.common.utils.ShiroUtils; +import com.peanut.modules.common.entity.CourseEntity; +import com.peanut.modules.common.entity.CourseMarketEntity; +import com.peanut.modules.common.entity.CourseMedical; +import com.peanut.modules.common.to.ParamTo; +import com.peanut.modules.medical.service.CourseMarketService; +import com.peanut.modules.medical.service.CourseMedicalService; +import com.peanut.modules.medical.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; + +@Slf4j +@RestController("medicalHome") +@RequestMapping("medical/home") +public class HomeController { + + @Autowired + private CourseService courseService; + @Autowired + private CourseMedicalService medicalService; + @Autowired + private CourseMarketService courseMarketService; + + //获取医学标签列表 + @RequestMapping("/getMedicalLabels") + public R getMedicalLabels(@RequestBody ParamTo param){ + List sociologyLabels = medicalService.getMedicalLabels(param.getId()); + return R.ok().put("labels",sociologyLabels); + } + + //获取医学标签下的课程列表 + @RequestMapping("/getMedicalCourseList") + public R getMedicalCourseList(@RequestBody ParamTo param){ + Page medicalCourseList = courseService.getMedicalCourseList(param); + return R.ok().put("courses",medicalCourseList); + } + + /** + * 营销标签树 + */ + @RequestMapping(path = "/courseMarketTree") + public R courseMarketTree() { + List labelsTree = courseMarketService.courseMarketTree(); + return R.ok().put("result", labelsTree); + } + + //获取营销标签下的课程列表 + @RequestMapping("/getMarketCourseList") + public R getMarketCourseList(@RequestBody ParamTo param){ + Page marketCourseList = courseService.getMarketCourseList(param); + return R.ok().put("courseList",marketCourseList); + } + + /** + * 获取用户最近学习课程列表 + * @return + */ + @RequestMapping("/getUserLateCourseList") + public R getUserLateCourseList(){ + ParamTo param = new ParamTo(); + Integer userId = ShiroUtils.getUId(); + param.setId(userId); + List userLateCourseList = courseService.getUserLateCourseList(param); + return R.ok().put("page",userLateCourseList); + } +} diff --git a/src/main/java/com/peanut/modules/medical/controller/MedicalLabelAndMarketController.java b/src/main/java/com/peanut/modules/medical/controller/MedicalLabelAndMarketController.java index 73902457..36653e77 100644 --- a/src/main/java/com/peanut/modules/medical/controller/MedicalLabelAndMarketController.java +++ b/src/main/java/com/peanut/modules/medical/controller/MedicalLabelAndMarketController.java @@ -1,14 +1,67 @@ package com.peanut.modules.medical.controller; +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.*; +import com.peanut.modules.medical.service.ShopProductMedicineLabelService; +import com.peanut.modules.medical.service.ShopProductMedicineMarketService; +import com.peanut.modules.medical.service.ShopProductService; 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; /** * 医学课程和营销标签 */ @Slf4j @RestController -@RequestMapping("book/labelAndMarket") +@RequestMapping("medical/labelAndMarket") public class MedicalLabelAndMarketController { + + @Autowired + private ShopProductMedicineLabelService labelService; + @Autowired + private ShopProductMedicineMarketService marketService; + @Autowired + private ShopProductService productService; + + /** + * 分类标签树 + */ + @RequestMapping(path = "/labelTree") + public R labelTree() { + List labelsTree = labelService.labelTree(); + return R.ok().put("result", labelsTree); + } + + /** + * 营销标签树 + */ + @RequestMapping(path = "/marketTree") + public R marketTree() { + List marketsTree = marketService.marketTree(); + return R.ok().put("result", marketsTree); + } + + /** + * 营销标签下商品列表 + */ + @RequestMapping("/getMarketShopProductList") + public R getToLabelList(@RequestBody Map params){ + MPJLambdaWrapper wrapper = new MPJLambdaWrapper(); + wrapper.selectAll(ShopProduct.class); + wrapper.rightJoin(ShopProductToMedicineMarket.class,ShopProductToMedicineMarket::getProductId,ShopProduct::getProductId); + if (params.containsKey("medicineMarketId")&&!"".equals(params.get("medicineMarketId").toString())){ + wrapper.eq(ShopProductToMedicineMarket::getMedicineMarketId,params.get("medicineMarketId").toString()); + } + Page page = productService.page(new Page<>( + Long.parseLong(params.get("current").toString()), Long.parseLong(params.get("limit").toString())),wrapper); + return R.ok().put("result", page); + } + } diff --git a/src/main/java/com/peanut/modules/medical/service/CourseMarketService.java b/src/main/java/com/peanut/modules/medical/service/CourseMarketService.java new file mode 100644 index 00000000..20951bae --- /dev/null +++ b/src/main/java/com/peanut/modules/medical/service/CourseMarketService.java @@ -0,0 +1,11 @@ +package com.peanut.modules.medical.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.peanut.modules.common.entity.CourseMarketEntity; + +import java.util.List; + +public interface CourseMarketService extends IService { + + List courseMarketTree(); +} diff --git a/src/main/java/com/peanut/modules/medical/service/CourseMedicalService.java b/src/main/java/com/peanut/modules/medical/service/CourseMedicalService.java new file mode 100644 index 00000000..0ae36a0d --- /dev/null +++ b/src/main/java/com/peanut/modules/medical/service/CourseMedicalService.java @@ -0,0 +1,11 @@ +package com.peanut.modules.medical.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.peanut.modules.common.entity.CourseMedical; + +import java.util.List; + +public interface CourseMedicalService extends IService { + + List getMedicalLabels(Integer id); +} diff --git a/src/main/java/com/peanut/modules/medical/service/CourseService.java b/src/main/java/com/peanut/modules/medical/service/CourseService.java index e9f1f896..f9fec9ac 100644 --- a/src/main/java/com/peanut/modules/medical/service/CourseService.java +++ b/src/main/java/com/peanut/modules/medical/service/CourseService.java @@ -1,4 +1,18 @@ package com.peanut.modules.medical.service; -public interface CourseService { +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.peanut.modules.common.entity.CourseEntity; +import com.peanut.modules.common.to.ParamTo; + +import java.util.List; + +public interface CourseService extends IService { + + Page getMedicalCourseList(ParamTo param); + + Page getMarketCourseList(ParamTo param); + + List getUserLateCourseList(ParamTo param); + } diff --git a/src/main/java/com/peanut/modules/medical/service/ShopProductMedicineLabelService.java b/src/main/java/com/peanut/modules/medical/service/ShopProductMedicineLabelService.java index 6ec7ebda..cf3c041f 100644 --- a/src/main/java/com/peanut/modules/medical/service/ShopProductMedicineLabelService.java +++ b/src/main/java/com/peanut/modules/medical/service/ShopProductMedicineLabelService.java @@ -3,5 +3,9 @@ package com.peanut.modules.medical.service; import com.baomidou.mybatisplus.extension.service.IService; import com.peanut.modules.common.entity.ShopProductMedicineLabel; +import java.util.List; + public interface ShopProductMedicineLabelService extends IService { + + List labelTree(); } diff --git a/src/main/java/com/peanut/modules/medical/service/ShopProductMedicineMarketService.java b/src/main/java/com/peanut/modules/medical/service/ShopProductMedicineMarketService.java index fa96176c..88ea4f30 100644 --- a/src/main/java/com/peanut/modules/medical/service/ShopProductMedicineMarketService.java +++ b/src/main/java/com/peanut/modules/medical/service/ShopProductMedicineMarketService.java @@ -3,5 +3,9 @@ package com.peanut.modules.medical.service; import com.baomidou.mybatisplus.extension.service.IService; import com.peanut.modules.common.entity.ShopProductMedicineMarket; +import java.util.List; + public interface ShopProductMedicineMarketService extends IService { + + List marketTree(); } diff --git a/src/main/java/com/peanut/modules/medical/service/ShopProductService.java b/src/main/java/com/peanut/modules/medical/service/ShopProductService.java new file mode 100644 index 00000000..35784664 --- /dev/null +++ b/src/main/java/com/peanut/modules/medical/service/ShopProductService.java @@ -0,0 +1,7 @@ +package com.peanut.modules.medical.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.peanut.modules.common.entity.ShopProduct; + +public interface ShopProductService extends IService { +} diff --git a/src/main/java/com/peanut/modules/medical/service/impl/CourseMarketServiceImpl.java b/src/main/java/com/peanut/modules/medical/service/impl/CourseMarketServiceImpl.java new file mode 100644 index 00000000..4858baf6 --- /dev/null +++ b/src/main/java/com/peanut/modules/medical/service/impl/CourseMarketServiceImpl.java @@ -0,0 +1,47 @@ +package com.peanut.modules.medical.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.peanut.modules.common.dao.CourseMarketDao; +import com.peanut.modules.common.entity.CourseMarketEntity; +import com.peanut.modules.medical.service.CourseMarketService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Collectors; + +@Slf4j +@Service("medicalCourseMarketService") +public class CourseMarketServiceImpl extends ServiceImpl implements CourseMarketService { + + @Autowired + private CourseMarketDao courseMarketDao; + + @Override + public List courseMarketTree() { + List markets = courseMarketDao.selectList(new QueryWrapper<>()); + List marketsTree = markets.stream().filter((courseMarketEntity) -> + courseMarketEntity.getPid() == 0 + ).map((market)->{ + market.setChildren(getMarketChildrens(market,markets)); + return market; + }).sorted((sort1,sort2)->{ + return (sort1.getSort() == null? 0 : sort1.getSort()) - (sort2.getSort()==null?0:sort2.getSort()); + }).collect(Collectors.toList()); + return marketsTree; + } + + private List getMarketChildrens(CourseMarketEntity root,List all){ + List children = all.stream().filter(courseMarketEntity -> { + return root.getId().equals(courseMarketEntity.getPid()); + }).map(courseMarketEntity -> { + courseMarketEntity.setChildren(getMarketChildrens(courseMarketEntity, all)); + return courseMarketEntity; + }).sorted((sort1,sort2)->{ + return (sort1.getSort()==null?0:sort1.getSort()) - (sort2.getSort()==null?0:sort2.getSort()); + }).collect(Collectors.toList()); + return children; + } +} 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 new file mode 100644 index 00000000..34f79fb9 --- /dev/null +++ b/src/main/java/com/peanut/modules/medical/service/impl/CourseMedicalServiceImpl.java @@ -0,0 +1,24 @@ +package com.peanut.modules.medical.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.peanut.modules.common.dao.CourseMedicalDao; +import com.peanut.modules.common.entity.CourseMedical; +import com.peanut.modules.medical.service.CourseMedicalService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import java.util.List; + +@Slf4j +@Service("medicineCourseMedicalService") +public class CourseMedicalServiceImpl extends ServiceImpl implements CourseMedicalService { + + @Override + public List getMedicalLabels(Integer id) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(CourseMedical::getPid,id); + wrapper.orderByAsc(CourseMedical::getSort); + List list = this.list(wrapper); + return list; + } +} diff --git a/src/main/java/com/peanut/modules/medical/service/impl/CourseServiceImpl.java b/src/main/java/com/peanut/modules/medical/service/impl/CourseServiceImpl.java new file mode 100644 index 00000000..c4bb4496 --- /dev/null +++ b/src/main/java/com/peanut/modules/medical/service/impl/CourseServiceImpl.java @@ -0,0 +1,54 @@ +package com.peanut.modules.medical.service.impl; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.peanut.modules.common.dao.CourseDao; +import com.peanut.modules.common.entity.CourseEntity; +import com.peanut.modules.common.entity.CourseToMarketEntity; +import com.peanut.modules.common.entity.CourseToMedical; +import com.peanut.modules.common.entity.UserToCourseEntity; +import com.peanut.modules.common.to.ParamTo; +import com.peanut.modules.medical.service.CourseService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Slf4j +@Service("medicalCourseService") +public class CourseServiceImpl extends ServiceImpl implements CourseService { + + @Override + public Page getMedicalCourseList(ParamTo param) { + MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); + wrapper.selectAll(CourseEntity.class); + wrapper.leftJoin(CourseToMedical.class,CourseToMedical::getCourseId,CourseEntity::getId); + wrapper.eq(CourseToMedical::getMedicalId,param.getId()); + Page courseEntityPage = this.getBaseMapper().selectJoinPage(new Page<>(param.getPage(), param.getLimit()),CourseEntity.class, wrapper); + return courseEntityPage; + } + + @Override + public Page getMarketCourseList(ParamTo param) { + MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); + wrapper.selectAll(CourseEntity.class); + wrapper.leftJoin(CourseToMarketEntity.class,CourseToMarketEntity::getCourseId,CourseEntity::getId); + wrapper.eq(CourseToMarketEntity::getMarketId,param.getId()); + Page courseEntityPage = this.getBaseMapper().selectJoinPage(new Page<>(param.getPage(), param.getLimit()), CourseEntity.class, wrapper); + return courseEntityPage; + } + + @Override + public List getUserLateCourseList(ParamTo param) { + MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); + wrapper.selectAll(CourseEntity.class); + wrapper.rightJoin(CourseToMedical.class,CourseToMedical::getCourseId,CourseEntity::getId); + wrapper.leftJoin(UserToCourseEntity.class,UserToCourseEntity::getCourseId,CourseEntity::getId); + wrapper.eq(UserToCourseEntity::getUserId,param.getId()); + wrapper.orderByDesc(UserToCourseEntity::getUpdateTime); + wrapper.last("Limit 4"); + List courseEntities = this.getBaseMapper().selectJoinList(CourseEntity.class, wrapper); + return courseEntities; + } +} diff --git a/src/main/java/com/peanut/modules/medical/service/impl/ShopProductMedicineLabelServiceImpl.java b/src/main/java/com/peanut/modules/medical/service/impl/ShopProductMedicineLabelServiceImpl.java index bdf11a0d..cb62f0d8 100644 --- a/src/main/java/com/peanut/modules/medical/service/impl/ShopProductMedicineLabelServiceImpl.java +++ b/src/main/java/com/peanut/modules/medical/service/impl/ShopProductMedicineLabelServiceImpl.java @@ -1,13 +1,47 @@ package com.peanut.modules.medical.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.peanut.modules.common.dao.ShopProductMedicineLabelDao; import com.peanut.modules.common.entity.ShopProductMedicineLabel; import com.peanut.modules.medical.service.ShopProductMedicineLabelService; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.stream.Collectors; + @Slf4j @Service("medicineShopProductMedicineLabelService") public class ShopProductMedicineLabelServiceImpl extends ServiceImpl implements ShopProductMedicineLabelService { + + @Autowired + private ShopProductMedicineLabelDao labelDao; + + @Override + public List labelTree() { + List labels = labelDao.selectList(new QueryWrapper<>()); + List labelsTree = labels.stream().filter((shopProductMedicineLabel) -> + shopProductMedicineLabel.getPid() == 0 + ).map((label)->{ + label.setChildren(getLabelChildrens(label,labels)); + return label; + }).sorted((label1,label2)->{ + return (label1.getSort() == null? 0 : label1.getSort()) - (label2.getSort()==null?0:label2.getSort()); + }).collect(Collectors.toList()); + return labelsTree; + } + + private List getLabelChildrens(ShopProductMedicineLabel root,List all){ + List children = all.stream().filter(shopProductMedicineLabel -> { + return root.getId().equals(shopProductMedicineLabel.getPid()); + }).map(shopProductMedicineLabel -> { + shopProductMedicineLabel.setChildren(getLabelChildrens(shopProductMedicineLabel, all)); + return shopProductMedicineLabel; + }).sorted((label1,label2)->{ + return (label1.getSort()==null?0:label1.getSort()) - (label2.getSort()==null?0:label2.getSort()); + }).collect(Collectors.toList()); + return children; + } } diff --git a/src/main/java/com/peanut/modules/medical/service/impl/ShopProductMedicineMarketServiceImpl.java b/src/main/java/com/peanut/modules/medical/service/impl/ShopProductMedicineMarketServiceImpl.java index 736afe93..30720806 100644 --- a/src/main/java/com/peanut/modules/medical/service/impl/ShopProductMedicineMarketServiceImpl.java +++ b/src/main/java/com/peanut/modules/medical/service/impl/ShopProductMedicineMarketServiceImpl.java @@ -1,13 +1,47 @@ package com.peanut.modules.medical.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.peanut.modules.common.dao.ShopProductMedicineMarketDao; import com.peanut.modules.common.entity.ShopProductMedicineMarket; import com.peanut.modules.medical.service.ShopProductMedicineMarketService; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.stream.Collectors; + @Slf4j @Service("medicineShopProductMedicineMarketService") public class ShopProductMedicineMarketServiceImpl extends ServiceImpl implements ShopProductMedicineMarketService { + + @Autowired + private ShopProductMedicineMarketDao marketDao; + + @Override + public List marketTree() { + List markets = marketDao.selectList(new QueryWrapper<>()); + List marketsTree = markets.stream().filter((shopProductMedicineMarket) -> + shopProductMedicineMarket.getPid() == 0 + ).map((market)->{ + market.setChildren(getMarketChildrens(market,markets)); + return market; + }).sorted((sort1,sort2)->{ + return (sort1.getSort() == null? 0 : sort1.getSort()) - (sort2.getSort()==null?0:sort2.getSort()); + }).collect(Collectors.toList()); + return marketsTree; + } + + private List getMarketChildrens(ShopProductMedicineMarket root,List all){ + List children = all.stream().filter(shopProductMedicineMarket -> { + return root.getId().equals(shopProductMedicineMarket.getPid()); + }).map(shopProductMedicineMarket -> { + shopProductMedicineMarket.setChildren(getMarketChildrens(shopProductMedicineMarket, all)); + return shopProductMedicineMarket; + }).sorted((sort1,sort2)->{ + return (sort1.getSort()==null?0:sort1.getSort()) - (sort2.getSort()==null?0:sort2.getSort()); + }).collect(Collectors.toList()); + return children; + } } diff --git a/src/main/java/com/peanut/modules/medical/service/impl/ShopProductServiceImpl.java b/src/main/java/com/peanut/modules/medical/service/impl/ShopProductServiceImpl.java new file mode 100644 index 00000000..5207ec32 --- /dev/null +++ b/src/main/java/com/peanut/modules/medical/service/impl/ShopProductServiceImpl.java @@ -0,0 +1,13 @@ +package com.peanut.modules.medical.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.peanut.modules.common.dao.ShopProductDao; +import com.peanut.modules.common.entity.ShopProduct; +import com.peanut.modules.medical.service.ShopProductService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +@Slf4j +@Service("medicalShopProductService") +public class ShopProductServiceImpl extends ServiceImpl implements ShopProductService { +}