diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java b/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java index b8edadac..75d22f1d 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java @@ -31,6 +31,8 @@ public class GoodsController extends BaseController { @Resource private DeptGoodsCategoryService deptGoodsCategoryService; @Resource + private GoodsCategoryService goodsCategoryService; + @Resource private GoodsImgsService goodsImgsService; @Resource private GoodsAreaService goodsAreaService; @@ -65,6 +67,21 @@ public class GoodsController extends BaseController { @ResponseBody public TableDataInfo appList(@RequestBody Goods goods) { startPage(); + + // 判断类目id是否为第三级,不是的话需要找到所有符合条件的第三级类目id作为新的条件 + if (goods.getDeptGoodsCategoryId() != null) { + GoodsCategory goodsCategory = goodsCategoryService.selectById(goods.getDeptGoodsCategoryId()); + if (goodsCategory.getLevel() == 0) { + goods.setDeptGoodsCategoryId(null); + } else if (goodsCategory.getLevel() == 1) { + GoodsCategory params = new GoodsCategory(); + params.setParentCategoryId(goodsCategory.getGoodsCategoryId()); + List filteredCategory = goodsCategoryService.selectGoodsCategoryList(params); + List filteredCategoryIds = filteredCategory.stream().map(GoodsCategory::getGoodsCategoryId).collect(Collectors.toList()); + goods.setDeptGoodsCategoryId(null); + goods.setDeptGoodsCategoryIds(filteredCategoryIds); + } + } List list = goodsService.selectGoodsList(goods); list.forEach(one -> { // 补全商品 diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsDeptCategoryController.java b/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsDeptCategoryController.java index 8b829df8..1947bc7f 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsDeptCategoryController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsDeptCategoryController.java @@ -15,9 +15,11 @@ import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; @Controller @@ -63,6 +65,29 @@ public class GoodsDeptCategoryController extends BaseController { } + @PostMapping("/app/listByStep") + @ResponseBody + public AjaxResult appListByStep(@RequestBody DeptGoodsCategory deptGoodsCategory) { + List resList = new ArrayList(); + try { + if (deptGoodsCategory.getIsAllNode() == null || !deptGoodsCategory.getIsAllNode()) { + List list = deptGoodsCategoryService.listByStep(deptGoodsCategory); + if (!CollectionUtils.isEmpty(list)) { + DeptGoodsCategory allGoodsNode = new DeptGoodsCategory(); + allGoodsNode.setGoodsCategoryName("全部"); + allGoodsNode.setIsAllNode(true); + resList.add(allGoodsNode); + resList.addAll(list); + } + } + return AjaxResult.success(resList); + }catch (Exception e){ + logger.error(e.getMessage()); + return AjaxResult.error(ExceptionUtil.getExceptionMessage(e)); + } + + } + @RequiresPermissions("goods:deptcategory:edit") @GetMapping("/edit/{id}") public String edit(@PathVariable("id") Long id, ModelMap mmap) { diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/worker/WorkerController.java b/ghy-admin/src/main/java/com/ghy/web/controller/worker/WorkerController.java index ff8d9ba7..43537cd2 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/worker/WorkerController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/worker/WorkerController.java @@ -9,6 +9,8 @@ import com.ghy.common.enums.GoodsStatus; import com.ghy.common.enums.WorkerStatus; import com.ghy.common.utils.ExceptionUtil; import com.ghy.goods.domain.Goods; +import com.ghy.goods.domain.GoodsCategory; +import com.ghy.goods.service.GoodsCategoryService; import com.ghy.goods.service.GoodsService; import com.ghy.web.pojo.vo.WorkerListRequest; import com.ghy.web.pojo.vo.WorkerListResponse; @@ -55,6 +57,9 @@ public class WorkerController extends BaseController { @Autowired private GoodsService goodsService; + @Autowired + private GoodsCategoryService goodsCategoryService; + @Autowired private WorkerBankService workerBankService; @@ -128,7 +133,22 @@ public class WorkerController extends BaseController { List workerIdsByArea = workerAreaList.stream().map(WorkerArea::getWorkerId).collect(Collectors.toList()); // 查询满足技能条件的师傅技能记录 WorkerGoodsCategory workerGoodsCategory = new WorkerGoodsCategory(); - workerGoodsCategory.setGoodsCategoryId(workerListRequest.getGoodsCategoryId()); + // 判断类目id是否为第三级,不是的话需要找到所有符合条件的第三级类目id作为新的条件 + if (workerListRequest.getGoodsCategoryId() != null) { + GoodsCategory goodsCategory = goodsCategoryService.selectById(workerListRequest.getGoodsCategoryId()); + if (goodsCategory.getLevel() == 0) { + workerGoodsCategory.setGoodsCategoryId(null); + } else if (goodsCategory.getLevel() == 1) { + GoodsCategory params = new GoodsCategory(); + params.setParentCategoryId(goodsCategory.getGoodsCategoryId()); + List filteredCategory = goodsCategoryService.selectGoodsCategoryList(params); + List filteredCategoryIds = filteredCategory.stream().map(GoodsCategory::getGoodsCategoryId).collect(Collectors.toList()); + workerGoodsCategory.setGoodsCategoryId(null); + workerGoodsCategory.setGoodsCategoryIds(filteredCategoryIds); + } else { + workerGoodsCategory.setGoodsCategoryId(workerListRequest.getGoodsCategoryId()); + } + } List workerGoodsCategoryList = workerGoodsCategoryService.getWorkerGoodsCategory(workerGoodsCategory); List workerIdsByCategory = workerGoodsCategoryList.stream().map(WorkerGoodsCategory::getWorkerId).collect(Collectors.toList()); // 两个list中的workerid取交集 diff --git a/ghy-goods/src/main/java/com/ghy/goods/domain/DeptGoodsCategory.java b/ghy-goods/src/main/java/com/ghy/goods/domain/DeptGoodsCategory.java index 15d74253..991545a9 100644 --- a/ghy-goods/src/main/java/com/ghy/goods/domain/DeptGoodsCategory.java +++ b/ghy-goods/src/main/java/com/ghy/goods/domain/DeptGoodsCategory.java @@ -20,7 +20,7 @@ public class DeptGoodsCategory extends GoodsCategory { @Excel(name = "分公司id", cellType = Excel.ColumnType.NUMERIC) private Long deptId; - + @Excel(name = "分公司备注类目名称", cellType = Excel.ColumnType.STRING) private String deptCategoryName; @@ -52,4 +52,5 @@ public class DeptGoodsCategory extends GoodsCategory { private List child; + private Boolean isAllNode; } diff --git a/ghy-goods/src/main/java/com/ghy/goods/domain/Goods.java b/ghy-goods/src/main/java/com/ghy/goods/domain/Goods.java index e390305f..8257ad62 100644 --- a/ghy-goods/src/main/java/com/ghy/goods/domain/Goods.java +++ b/ghy-goods/src/main/java/com/ghy/goods/domain/Goods.java @@ -39,6 +39,8 @@ public class Goods extends BaseEntity { @Excel(name = "类别id,必须是关联到系统的第三级目录") private Long deptGoodsCategoryId; + private List deptGoodsCategoryIds; + @Excel(name = "商品图片", cellType = Excel.ColumnType.IMAGE) private String goodsImgUrl; diff --git a/ghy-goods/src/main/java/com/ghy/goods/service/GoodsCategoryService.java b/ghy-goods/src/main/java/com/ghy/goods/service/GoodsCategoryService.java index fddc5255..eb56a2eb 100644 --- a/ghy-goods/src/main/java/com/ghy/goods/service/GoodsCategoryService.java +++ b/ghy-goods/src/main/java/com/ghy/goods/service/GoodsCategoryService.java @@ -33,7 +33,6 @@ public interface GoodsCategoryService { */ List selectGoodsCategoryList(GoodsCategory goodsCategory); - /** * 查询类目管理树 * diff --git a/ghy-goods/src/main/resources/mapper/goods/GoodsCategoryMapper.xml b/ghy-goods/src/main/resources/mapper/goods/GoodsCategoryMapper.xml index 71371548..e1aee2aa 100644 --- a/ghy-goods/src/main/resources/mapper/goods/GoodsCategoryMapper.xml +++ b/ghy-goods/src/main/resources/mapper/goods/GoodsCategoryMapper.xml @@ -33,6 +33,9 @@ AND goods_category_name LIKE concat('%', #{goodsCategoryName}, '%') + + AND parent_category_id = #{parentCategoryId} + AND status = #{status} @@ -108,4 +111,4 @@ #{goodsCategoryId} - \ No newline at end of file + diff --git a/ghy-goods/src/main/resources/mapper/goods/GoodsMapper.xml b/ghy-goods/src/main/resources/mapper/goods/GoodsMapper.xml index 4ede7966..e2e1042b 100644 --- a/ghy-goods/src/main/resources/mapper/goods/GoodsMapper.xml +++ b/ghy-goods/src/main/resources/mapper/goods/GoodsMapper.xml @@ -94,6 +94,11 @@ AND dept_goods_category_id = #{deptGoodsCategoryId} + + + #{deptGoodsCategoryId} + + AND country_area_id = #{areaId} diff --git a/ghy-worker/src/main/java/com/ghy/worker/domain/WorkerGoodsCategory.java b/ghy-worker/src/main/java/com/ghy/worker/domain/WorkerGoodsCategory.java index f3eada0d..81e75c12 100644 --- a/ghy-worker/src/main/java/com/ghy/worker/domain/WorkerGoodsCategory.java +++ b/ghy-worker/src/main/java/com/ghy/worker/domain/WorkerGoodsCategory.java @@ -3,6 +3,8 @@ package com.ghy.worker.domain; import com.ghy.common.core.domain.BaseEntity; import lombok.Data; +import java.util.List; + /** * 师傅服务类目 * @@ -27,4 +29,6 @@ public class WorkerGoodsCategory extends BaseEntity { private Long goodsCategoryId; private String goodsCategoryName; + + private List goodsCategoryIds; } diff --git a/ghy-worker/src/main/resources/mapper/worker/WorkerGoodsCategoryMapper.xml b/ghy-worker/src/main/resources/mapper/worker/WorkerGoodsCategoryMapper.xml index a8216fdb..138dbc49 100644 --- a/ghy-worker/src/main/resources/mapper/worker/WorkerGoodsCategoryMapper.xml +++ b/ghy-worker/src/main/resources/mapper/worker/WorkerGoodsCategoryMapper.xml @@ -56,6 +56,11 @@ AND wgc.goods_category_id = #{goodsCategoryId} + + + #{goodsCategoryId} + +