diff --git a/book-product/src/main/java/com/bookstore/bookmall/product/controller/AttrGroupController.java b/book-product/src/main/java/com/bookstore/bookmall/product/controller/AttrGroupController.java index c13ce5e..daceec5 100644 --- a/book-product/src/main/java/com/bookstore/bookmall/product/controller/AttrGroupController.java +++ b/book-product/src/main/java/com/bookstore/bookmall/product/controller/AttrGroupController.java @@ -36,6 +36,7 @@ public class AttrGroupController { @Autowired private AttrService attrService; + //删除关联属性 ///product/attrgroup/attr/relation/delete @PostMapping("/attr/relation/delete") //自定义数据必须加@RequestBody @@ -44,7 +45,7 @@ public class AttrGroupController { return R.ok(); } - + //查找有关联的属性 ///product/attrgroup/{attrgroupId}/attr/relation @GetMapping("/{attrgroupId}/attr/relation") private R attrRelation(@PathVariable("attrgroupId") Long attrgroupId) { @@ -52,6 +53,14 @@ public class AttrGroupController { return R.ok().put("data",entities); } + //查找无关联属性 + //product/attrgroup/{attrgroupId}/noattr/ + @GetMapping("/{attrgroupId}/noattr/relation") + private R attrNoRelation(@PathVariable("attrgroupId") Long attrgroupId, + @RequestParam Map params /*这个是分页参数*/) { + PageUtils page = attrService.getNoRelationAttr(params, attrgroupId); + return R.ok().put("page",page); + } /** * 列表 diff --git a/book-product/src/main/java/com/bookstore/bookmall/product/service/AttrService.java b/book-product/src/main/java/com/bookstore/bookmall/product/service/AttrService.java index 47c9933..91cfe4a 100644 --- a/book-product/src/main/java/com/bookstore/bookmall/product/service/AttrService.java +++ b/book-product/src/main/java/com/bookstore/bookmall/product/service/AttrService.java @@ -29,6 +29,9 @@ public interface AttrService extends IService { void updateAttr(AttrVo attrVo); List getRelationAttr(Long attrgroupId); + + + PageUtils getNoRelationAttr(Map params, Long attrgroupId); } diff --git a/book-product/src/main/java/com/bookstore/bookmall/product/service/impl/AttrServiceImpl.java b/book-product/src/main/java/com/bookstore/bookmall/product/service/impl/AttrServiceImpl.java index 36e89d4..26f842b 100644 --- a/book-product/src/main/java/com/bookstore/bookmall/product/service/impl/AttrServiceImpl.java +++ b/book-product/src/main/java/com/bookstore/bookmall/product/service/impl/AttrServiceImpl.java @@ -201,6 +201,10 @@ public class AttrServiceImpl extends ServiceImpl implements return attr.getAttrId(); }).collect(Collectors.toList()); + if (attrIds==null || attrIds.size()==0) { + return null; + } + //查找返回同一组属性 Collection attrEntities = this.listByIds(attrIds); @@ -208,4 +212,52 @@ public class AttrServiceImpl extends ServiceImpl implements } + /* + * @Description: 获取当前分组没有关联的所有属性 + * @param: + * @return: + * @Author: + * @date: + */ + @Override + public PageUtils getNoRelationAttr(Map params, Long attrgroupId) { + //当前分组只能获取自己所属的分类里面所有属性 + AttrGroupEntity attrGroupEntity = attrGroupDao.selectById(attrgroupId); + //获取分类id + Long catelogId = attrGroupEntity.getCatelogId(); + //筛选出其他分组 + List groupEntities = attrGroupDao.selectList( + new QueryWrapper().eq("catelog_id", catelogId).ne("attr_group_id", attrgroupId)); + List collect = groupEntities.stream().map((entity) -> { + return entity.getAttrGroupId(); + }).collect(Collectors.toList()); + //这些分组的属性 + List relationEntities = RelationDao.selectList( + new QueryWrapper().in("attr_group_id", collect)); + List attrIds = relationEntities.stream().map((entity) -> { + return entity.getAttrId(); + }).collect(Collectors.toList()); + + //从当前分类的所有属性中移除这些属性 + //条件 + QueryWrapper queryWrapper = new QueryWrapper().eq("catelog_id", catelogId).eq( + "attr_type",ProductConstant.AttrEnum.ATTR_TYPE_BASE.getCode() ); + //关键字查找 + String key = (String) params.get("key"); + if (!StringUtils.isNullOrEmpty(key)) { + queryWrapper.and((wrapper)->{ + wrapper.eq("attr_id", key).or().like("attr_name", key); + }); + } + if (attrIds !=null && attrIds.size() > 0) { + queryWrapper.notIn("attr_id", attrIds); + } + + //分页查询 + IPage page = this.page(new Query().getPage(params), queryWrapper); + PageUtils pageUtils = new PageUtils(page); + return pageUtils; + } + + } \ No newline at end of file