diff --git a/src/main/java/com/peanut/modules/common/entity/CourseEntity.java b/src/main/java/com/peanut/modules/common/entity/CourseEntity.java index 368162e6..9086f791 100644 --- a/src/main/java/com/peanut/modules/common/entity/CourseEntity.java +++ b/src/main/java/com/peanut/modules/common/entity/CourseEntity.java @@ -25,6 +25,8 @@ public class CourseEntity { private String image; + private String content; + private Date createTime; @TableLogic diff --git a/src/main/java/com/peanut/modules/common/entity/ShopProductBookLabel.java b/src/main/java/com/peanut/modules/common/entity/ShopProductBookLabel.java index 9724df7c..04fb4668 100644 --- a/src/main/java/com/peanut/modules/common/entity/ShopProductBookLabel.java +++ b/src/main/java/com/peanut/modules/common/entity/ShopProductBookLabel.java @@ -48,6 +48,8 @@ public class ShopProductBookLabel implements Serializable { @TableField(exist = false) private List children; + @TableField(exist = false) + private boolean Select; } diff --git a/src/main/java/com/peanut/modules/common/entity/ShopProductBookMarket.java b/src/main/java/com/peanut/modules/common/entity/ShopProductBookMarket.java index a747d7d1..5239bafa 100644 --- a/src/main/java/com/peanut/modules/common/entity/ShopProductBookMarket.java +++ b/src/main/java/com/peanut/modules/common/entity/ShopProductBookMarket.java @@ -48,6 +48,8 @@ public class ShopProductBookMarket implements Serializable { @TableField(exist = false) private List children; + @TableField(exist = false) + private boolean select; diff --git a/src/main/java/com/peanut/modules/common/entity/ShopProductMedicineLabel.java b/src/main/java/com/peanut/modules/common/entity/ShopProductMedicineLabel.java index 57c66e79..f0e0ad3c 100644 --- a/src/main/java/com/peanut/modules/common/entity/ShopProductMedicineLabel.java +++ b/src/main/java/com/peanut/modules/common/entity/ShopProductMedicineLabel.java @@ -48,5 +48,7 @@ public class ShopProductMedicineLabel implements Serializable { @TableField(exist = false) private List children; + @TableField(exist = false) + private boolean select; } diff --git a/src/main/java/com/peanut/modules/common/entity/ShopProductMedicineMarket.java b/src/main/java/com/peanut/modules/common/entity/ShopProductMedicineMarket.java index 61511a11..7dc7cceb 100644 --- a/src/main/java/com/peanut/modules/common/entity/ShopProductMedicineMarket.java +++ b/src/main/java/com/peanut/modules/common/entity/ShopProductMedicineMarket.java @@ -48,5 +48,7 @@ public class ShopProductMedicineMarket implements Serializable { @TableField(exist = false) private List children; + @TableField(exist = false) + private boolean select; } \ No newline at end of file diff --git a/src/main/java/com/peanut/modules/common/entity/ShopProductSociologyLabel.java b/src/main/java/com/peanut/modules/common/entity/ShopProductSociologyLabel.java index 68b15ae0..313ff347 100644 --- a/src/main/java/com/peanut/modules/common/entity/ShopProductSociologyLabel.java +++ b/src/main/java/com/peanut/modules/common/entity/ShopProductSociologyLabel.java @@ -47,5 +47,7 @@ public class ShopProductSociologyLabel implements Serializable { @TableField(exist = false) private List children; + @TableField(exist = false) + private boolean select; } diff --git a/src/main/java/com/peanut/modules/common/entity/ShopProductSociologyMarket.java b/src/main/java/com/peanut/modules/common/entity/ShopProductSociologyMarket.java index 129edaed..c7ab176c 100644 --- a/src/main/java/com/peanut/modules/common/entity/ShopProductSociologyMarket.java +++ b/src/main/java/com/peanut/modules/common/entity/ShopProductSociologyMarket.java @@ -47,5 +47,7 @@ public class ShopProductSociologyMarket implements Serializable { @TableField(exist = false) private List children; + @TableField(exist = false) + private boolean select; } \ No newline at end of file diff --git a/src/main/java/com/peanut/modules/master/controller/CourseController.java b/src/main/java/com/peanut/modules/master/controller/CourseController.java index 2a2c471e..58c774fa 100644 --- a/src/main/java/com/peanut/modules/master/controller/CourseController.java +++ b/src/main/java/com/peanut/modules/master/controller/CourseController.java @@ -59,6 +59,12 @@ public class CourseController { return R.ok(); } + @RequestMapping("/getCoursedetail") + public R getCoursedetail(@RequestBody ParamTo param){ + CourseEntity course = courseService.getById(param.getId()); + return R.ok().put("course",course); + } + @RequestMapping("/getCourseCatalogues") public R getCourseCatalogues(@RequestBody ParamTo param){ List courseCatalogues = courseCatalogueService.getCourseCatalogues(param.getId()); diff --git a/src/main/java/com/peanut/modules/master/controller/ShopProductController.java b/src/main/java/com/peanut/modules/master/controller/ShopProductController.java index e9dd9311..18fa76a4 100644 --- a/src/main/java/com/peanut/modules/master/controller/ShopProductController.java +++ b/src/main/java/com/peanut/modules/master/controller/ShopProductController.java @@ -52,4 +52,12 @@ public class ShopProductController { return R.ok(); } + @RequestMapping("/getProductToLabel") + public R getProductToLabel(@RequestBody Map map){ + Map productId = shopProductService.getProductToLabel(map.get("productId")); + return R.ok().put("data",productId); + } + + + } diff --git a/src/main/java/com/peanut/modules/master/service/ShopProductService.java b/src/main/java/com/peanut/modules/master/service/ShopProductService.java index f3a86a5f..b3480af4 100644 --- a/src/main/java/com/peanut/modules/master/service/ShopProductService.java +++ b/src/main/java/com/peanut/modules/master/service/ShopProductService.java @@ -8,4 +8,6 @@ import java.util.Map; public interface ShopProductService extends IService { Map getProductDetail(Integer productId); + + Map getProductToLabel(Integer productId); } diff --git a/src/main/java/com/peanut/modules/master/service/impl/ShopProductServiceImpl.java b/src/main/java/com/peanut/modules/master/service/impl/ShopProductServiceImpl.java index e0bd27be..4dc06884 100644 --- a/src/main/java/com/peanut/modules/master/service/impl/ShopProductServiceImpl.java +++ b/src/main/java/com/peanut/modules/master/service/impl/ShopProductServiceImpl.java @@ -1,18 +1,47 @@ package com.peanut.modules.master.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.ShopProductDao; -import com.peanut.modules.common.entity.ShopProduct; +import com.peanut.modules.common.dao.*; +import com.peanut.modules.common.entity.*; import com.peanut.modules.master.service.ShopProductService; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.HashMap; +import java.util.List; import java.util.Map; +import java.util.stream.Collectors; @Slf4j @Service("masterShopProductService") public class ShopProductServiceImpl extends ServiceImpl implements ShopProductService { + @Autowired + private ShopProductToBookLabelDao shopProductToBookLabelDao; + @Autowired + private ShopProductBookLabelDao shopProductBookLabelDao; + @Autowired + private ShopProductToBookMarketDao shopProductToBookMarketDao; + @Autowired + private ShopProductBookMarketDao shopProductBookMarketDao; + @Autowired + private ShopProductToMedicineLabelDao shopProductToMedicineLabelDao; + @Autowired + private ShopProductMedicineLabelDao shopProductMedicineLabelDao; + @Autowired + private ShopProductToMedicineMarketDao shopProductToMedicineMarketDao; + @Autowired + private ShopProductMedicineMarketDao shopProductMedicineMarketDao; + @Autowired + private ShopProductToSociologyLabelDao shopProductToSociologyLabelDao; + @Autowired + private ShopProductSociologyLabelDao shopProductSociologyLabelDao; + @Autowired + private ShopProductToSociologyMarketDao shopProductToSociologyMarketDao; + @Autowired + private ShopProductSociologyMarketDao shopProductSociologyMarketDao; @Override public Map getProductDetail(Integer productId) { @@ -21,4 +50,190 @@ public class ShopProductServiceImpl extends ServiceImpl getProductToLabel(Integer productId) { + HashMap flag = new HashMap<>(); + //图书标签 + List bookLabelIds = shopProductToBookLabelDao.selectList(new LambdaQueryWrapper().eq(ShopProductToBookLabel::getProductId, productId)).stream().map(ShopProductToBookLabel::getBookLabelId).collect(Collectors.toList()); + List shopProductBookLabels = shopProductBookLabelDao.selectList(null); + List bookLabel = shopProductBookLabels.stream().filter((shopProductBookLabel -> shopProductBookLabel.getPid() == 0)) + .map((l) -> { + if(l.getIsLast()==1){ + l.setSelect(bookLabelIds.contains(l.getId())); + } + l.setChildren(getBookLabelChildrens(l, shopProductBookLabels,bookLabelIds)); + return l; + }).sorted((label1,label2)->{ + return (label1.getSort()==null?0:label1.getSort()) - (label2.getSort()==null?0:label2.getSort()); + }).collect(Collectors.toList()); + flag.put("bookLabel",bookLabel); + //图书运营标签 + List bookMarketIds = shopProductToBookMarketDao.selectList(new LambdaQueryWrapper().eq(ShopProductToBookMarket::getProductId, productId)).stream().map(ShopProductToBookMarket::getBookMarketId).collect(Collectors.toList()); + List shopProductBookMarkets = shopProductBookMarketDao.selectList(null); + List bookMarket = shopProductBookMarkets.stream().filter(shopProductBookMarket -> shopProductBookMarket.getPid() == 0) + .map((m) -> { + if (m.getIsLast() == 1) { + m.setSelect(bookMarketIds.contains(m.getId())); + } + m.setChildren(getBookMarketChildrens(m, shopProductBookMarkets, bookMarketIds)); + return m; + }).sorted((label1, label2) -> { + return (label1.getSort() == null ? 0 : label1.getSort()) - (label2.getSort() == null ? 0 : label2.getSort()); + }).collect(Collectors.toList()); + flag.put("bookMarket",bookMarket); + //国学标签 + List sociologyLabelIds = shopProductToSociologyLabelDao.selectList(new LambdaQueryWrapper().eq(ShopProductToSociologyLabel::getProductId, productId)).stream().map(ShopProductToSociologyLabel::getSociologyLabelId).collect(Collectors.toList()); + List shopProductSociologyLabels = shopProductSociologyLabelDao.selectList(null); + List sociologyLabel = shopProductSociologyLabels.stream().filter(m -> m.getPid() == 0) + .map((m) -> { + if (m.getIsLast() == 1) { + m.setSelect(sociologyLabelIds.contains(m.getId())); + } + m.setChildren(getSociologyLabelChildrens(m, shopProductSociologyLabels, sociologyLabelIds)); + return m; + }).sorted((label1, label2) -> { + return (label1.getSort() == null ? 0 : label1.getSort()) - (label2.getSort() == null ? 0 : label2.getSort()); + }).collect(Collectors.toList()); + flag.put("sociologyLabel",sociologyLabel); + //国学运营标签 + List sociologyMarketIds = shopProductToSociologyMarketDao.selectList(new LambdaQueryWrapper().eq(ShopProductToSociologyMarket::getProductId, productId)).stream().map(ShopProductToSociologyMarket::getSociologyMarketId).collect(Collectors.toList()); + List shopProductSociologyMarkets = shopProductSociologyMarketDao.selectList(null); + List sociologyMarket = shopProductSociologyMarkets.stream().filter(m -> m.getPid() == 0) + .map((m) -> { + if (m.getIsLast() == 1) { + m.setSelect(sociologyMarketIds.contains(m.getId())); + } + m.setChildren(getSociologyMarketChildrens(m, shopProductSociologyMarkets, sociologyMarketIds)); + return m; + }).sorted((label1, label2) -> { + return (label1.getSort() == null ? 0 : label1.getSort()) - (label2.getSort() == null ? 0 : label2.getSort()); + }).collect(Collectors.toList()); + flag.put("sociologyMarket",sociologyMarket); + //医学标签 + List medicineLabelIds = shopProductToMedicineLabelDao.selectList(new LambdaQueryWrapper().eq(ShopProductToMedicineLabel::getProductId, productId)).stream().map(ShopProductToMedicineLabel::getMedicineLabelId).collect(Collectors.toList()); + List shopProductMedicineLabels = shopProductMedicineLabelDao.selectList(null); + List medicineLabel = shopProductMedicineLabels.stream().filter(m -> m.getPid() == 0) + .map((m) -> { + if (m.getIsLast() == 1) { + m.setSelect(medicineLabelIds.contains(m.getId())); + } + m.setChildren(getMedicineLabelChildrens(m, shopProductMedicineLabels, medicineLabelIds)); + return m; + }).sorted((label1, label2) -> { + return (label1.getSort() == null ? 0 : label1.getSort()) - (label2.getSort() == null ? 0 : label2.getSort()); + }).collect(Collectors.toList()); + flag.put("medicineLabel",medicineLabel); + //医学运营标签 + List medicineMarketIds = shopProductToMedicineMarketDao.selectList(new LambdaQueryWrapper().eq(ShopProductToMedicineMarket::getProductId, productId)).stream().map(ShopProductToMedicineMarket::getMedicineMarketId).collect(Collectors.toList()); + List shopProductMedicineMarkets = shopProductMedicineMarketDao.selectList(null); + List medicineMarket = shopProductMedicineMarkets.stream().filter(m -> m.getPid() == 0) + .map((m) -> { + if (m.getIsLast() == 1) { + m.setSelect(medicineMarketIds.contains(m.getId())); + } + m.setChildren(getMedicineMarketChildrens(m, shopProductMedicineMarkets, medicineMarketIds)); + return m; + }).sorted((label1, label2) -> { + return (label1.getSort() == null ? 0 : label1.getSort()) - (label2.getSort() == null ? 0 : label2.getSort()); + }).collect(Collectors.toList()); + flag.put("medicineMarket",medicineMarket); + + return flag; + } + + private List getBookLabelChildrens(ShopProductBookLabel root,List all,List bookLabelIds){ + List children = all.stream().filter(shopProductBookLabel -> { + return root.getId().equals(shopProductBookLabel.getPid()); + }).map(l -> { + if(l.getIsLast()==1){ + l.setSelect(bookLabelIds.contains(l.getId())); + } + l.setChildren(getBookLabelChildrens(l, all,bookLabelIds)); + return l; + }).sorted((label1,label2)->{ + return (label1.getSort()==null?0:label1.getSort()) - (label2.getSort()==null?0:label2.getSort()); + }).collect(Collectors.toList()); + return children; + } + + private List getBookMarketChildrens(ShopProductBookMarket market,List all,List bookMarketIds){ + List children = all.stream().filter((m) -> { + return m.getPid().equals(market.getId()); + }) + .map((m) -> { + if (m.getIsLast() == 1) { + m.setSelect(bookMarketIds.contains(m.getId())); + } + m.setChildren(getBookMarketChildrens(m, all, bookMarketIds)); + return m; + }).sorted((label1, label2) -> { + return (label1.getSort() == null ? 0 : label1.getSort()) - (label2.getSort() == null ? 0 : label2.getSort()); + }).collect(Collectors.toList()); + return children; + } + + private List getSociologyLabelChildrens(ShopProductSociologyLabel root,List all,List ids){ + List children = all.stream().filter((m) -> { + return m.getPid().equals(root.getId()); + }) + .map((m) -> { + if (m.getIsLast() == 1) { + m.setSelect(ids.contains(m.getId())); + } + m.setChildren(getSociologyLabelChildrens(m, all, ids)); + return m; + }).sorted((label1, label2) -> { + return (label1.getSort() == null ? 0 : label1.getSort()) - (label2.getSort() == null ? 0 : label2.getSort()); + }).collect(Collectors.toList()); + return children; + } + + private List getSociologyMarketChildrens(ShopProductSociologyMarket root,List all,List ids){ + List children = all.stream().filter((m) -> { + return m.getPid().equals(root.getId()); + }) + .map((m) -> { + if (m.getIsLast() == 1) { + m.setSelect(ids.contains(m.getId())); + } + m.setChildren(getSociologyMarketChildrens(m, all, ids)); + return m; + }).sorted((label1, label2) -> { + return (label1.getSort() == null ? 0 : label1.getSort()) - (label2.getSort() == null ? 0 : label2.getSort()); + }).collect(Collectors.toList()); + return children; + } + + private List getMedicineLabelChildrens(ShopProductMedicineLabel root,List all,List ids){ + List children = all.stream().filter((m) -> { + return m.getPid().equals(root.getId()); + }) + .map((m) -> { + if (m.getIsLast() == 1) { + m.setSelect(ids.contains(m.getId())); + } + m.setChildren(getMedicineLabelChildrens(m, all, ids)); + return m; + }).sorted((label1, label2) -> { + return (label1.getSort() == null ? 0 : label1.getSort()) - (label2.getSort() == null ? 0 : label2.getSort()); + }).collect(Collectors.toList()); + return children; + } + + private List getMedicineMarketChildrens(ShopProductMedicineMarket root,List all,List ids){ + List children = all.stream().filter((m) -> { + return m.getPid().equals(root.getId()); + }) + .map((m) -> { + if (m.getIsLast() == 1) { + m.setSelect(ids.contains(m.getId())); + } + m.setChildren(getMedicineMarketChildrens(m, all, ids)); + return m; + }).sorted((label1, label2) -> { + return (label1.getSort() == null ? 0 : label1.getSort()) - (label2.getSort() == null ? 0 : label2.getSort()); + }).collect(Collectors.toList()); + return children; + } }